aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralex <alex@pdp7.net>2022-03-12 14:04:07 +0100
committeralex <alex@pdp7.net>2022-03-12 14:04:07 +0100
commitfa3de0b9c71a385beb880d4d425e1d96b4293e71 (patch)
treeb4283d9e30ead60e7d3e2004d5c0707355e100ec
parente87642e5faf6f8e36db097cbda940042a449f239 (diff)
Sluggify
-rw-r--r--from_old_blog.py30
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"])