]> xn--ix-yja.es Git - alex.git/commitdiff
Sluggify
authoralex <alex@pdp7.net>
Sat, 12 Mar 2022 13:04:07 +0000 (14:04 +0100)
committeralex <alex@pdp7.net>
Sat, 12 Mar 2022 13:04:07 +0000 (14:04 +0100)
from_old_blog.py

index f35ce241e793ce84c827a24219985e9b5a8dbda5..6f56c01cdc62b54df1cd47e4b68a5581a36ddebb 100644 (file)
@@ -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"])