diff options
Diffstat (limited to 'from_old_blog.py')
| -rw-r--r-- | from_old_blog.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/from_old_blog.py b/from_old_blog.py index f35ce241..6f56c01c 100644 --- a/from_old_blog.py +++ b/from_old_blog.py @@ -1,6 +1,30 @@ +import pathlib +import re import yaml +def slug(s): + orig = s + s = re.sub(r"""[*\^/\-":+#.,¿?¡!()[\]'%]+""", " ", s) + s = s.strip() + s = re.sub(" +", "_", s) + s = s.lower() + acc = { + "áà": "a", + "éè": "e", + "íì": "i", + "óò": "o", + "úùü": "u", + "ñ": "n", + "ç": "c", + } + for ds, r in acc.items(): + for d in ds: + s = s.replace(d, r) + assert re.match("^[a-z0-9_]+$", s), (orig, s) + return s + + with open("post.yml") as f: posts = yaml.load(f) @@ -8,4 +32,8 @@ posts = [dict(post) for post in posts] for post in posts: post["post"] = post["post"].encode("iso-8859-1").decode("utf8") - post["title"] = post["title"].encode("iso-8859-1").decode("utf8")
\ No newline at end of file + post["title"] = post["title"].encode("iso-8859-1").decode("utf8") + + y,m,d = post["posted"].split(" ")[0].split("-") + + p = pathlib.Path("content") / y / m / d / slug(post["title"]) |
