blob: cd8e906834fc93007573589c5db0f447afbd0bbd (
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
54
55
56
57
58
59
|
#! /usr/bin/env python3
# -*- coding: utf-8 -*
import os
import shutil
import argparse
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 copy_share(workdir):
for filename in os.listdir("share"):
source = os.path.join("share", filename)
destination = os.path.join(workdir, filename)
shutil.copy(source, destination)
def generate_blog():
env = Environment(loader=FileSystemLoader(searchpath="templates"),
autoescape=select_autoescape())
posts = find_posts(env.get_template("post.html"), "posts")
posts = sorted(posts, key=lambda x: x.metadata.date)
workdir = "remote"
recreate_workdir(workdir)
for post in posts:
post.generate(workdir)
feed = Feed(env.get_template("feed.html"), posts)
feed.generate(workdir)
copy_share(workdir)
def main():
generate_blog()
if __name__ == "__main__":
main()
|