blob: cb6ab1e15c5e57da04f8fde29aa6a1d090d9a817 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#! /usr/bin/env python3
# -*- coding: utf-8 -*
import os
import shutil
from jinja2 import Environment, FileSystemLoader, select_autoescape
from post import Post
from feed import Feed
def recreate_workdir(basedir):
if os.path.exists(basedir):
shutil.rmtree(basedir)
os.makedirs(basedir)
def find_posts(template, basedir):
posts = []
for subdir in os.listdir(basedir):
posts.append(Post(template, os.path.join(basedir, subdir)))
return posts
def generate_blog(include_drafts=False):
env = Environment(loader=FileSystemLoader(searchpath="templates"),
autoescape=select_autoescape())
posts = find_posts(env.get_template("post.html"),
os.path.join("posts", "public"))
if include_drafts:
drafts = find_posts(env.get_template("post.html"),
os.path.join("posts", "drafts"))
posts.extend(drafts)
workdir = "remote"
recreate_workdir(workdir)
for post in posts:
post.generate(workdir)
feed = Feed(env.get_template("feed.html"), posts)
feed.generate(workdir)
def main():
generate_blog(include_drafts=True)
if __name__ == "__main__":
main()
|