diff --git a/blog.json b/blog.json index cbb9fef..72f42eb 100644 --- a/blog.json +++ b/blog.json @@ -402,6 +402,14 @@ "time": 1663613948.515744, "keywords": "wpa linux wpa_supplicant wifi network kernel fix rtw rtl rtw8821ce rtl8821ce wifi-driver", "hidden": false + }, + "ari-web-browser-compatibility": { + "title": "QXJpLXdlYiBicm93c2VyIGNvbXBhdGliaWxpdHk=", + "content": "TWFya2luZyBzeXN0ZW06CgotICAgeSAtLSBGdWxseSB3b3JrcyB3aXRoIG5vIGZsYXdzCi0gICBtIC0tIFZlcnkgbWlub3IgZmxhd3MsIGRvbid0IGFmZmVjdCBhbnl0aGluZwotICAgayAtLSBLaW5kYSB3b3JrcywgYWZmZWN0cyBzbGlnaHRseSBtZWRpdW0KLSAgIG4gLS0gRG9lcyBub3Qgd29yayBhdCBhbGwKCkFzIG9mIDIwMjIvMDkvMjAgb24gbGF0ZXN0IHZlcnNpb25zIG9mIHRoZXNlIGJyb3dzZXJzIHN1cHBvcnQKYXJpLXdlYiBzdWJkb21haW5zIGluIHRoZXNlIHdheXM6CgotICAgQ2hyb21pdW06CiAgICAtICAgd3d3OiB5CiAgICAtICAgZmlsZXM6IG0gW1VuaW1wb3J0YW50IGhlYWRlciBlcnJvcl0KICAgIC0gICBibG9nOiB5CiAgICAtICAgbGVnYWN5LmJsb2c6IG0gW1VuaW1wb3J0YW50IGhlYWRlciBlcnJvcl0KICAgIC0gICBzY2hvb2w6IHkKICAgIC0gICB1c2VyOiB5CiAgICAtICAgMzogeQotICAgRGlsbG86CiAgICAtICAgd3d3OiBuIFtEaXNhYmxlZCBKYXZhU2NyaXB0XQogICAgLSAgIGZpbGVzOiB5CiAgICAtICAgYmxvZzogeQogICAgLSAgIGxlZ2FjeS5ibG9nOiB5CiAgICAtICAgc2Nob29sOiB5CiAgICAtICAgdXNlcjogbiBbRGlzYWJsZWQgSmF2YVNjcmlwdF0KICAgIC0gICAzOiBrIFtEaXNwbGF5cyB0aGUgYmFyZSBIVE1MLCBubyBjb3VudGVyXQotICAgRmlyZWZveDoKICAgIC0gICB3d3c6IHkKICAgIC0gICBmaWxlczogeQogICAgLSAgIGJsb2c6IHkKICAgIC0gICBsZWdhY3kuYmxvZzogeQogICAgLSAgIHNjaG9vbDogeQogICAgLSAgIHVzZXI6IHkKICAgIC0gICAzOiB5Ci0gICBMaWJyZXdvbGY6CiAgICAtICAgd3d3OiB5CiAgICAtICAgZmlsZXM6IHkKICAgIC0gICBibG9nOiB5CiAgICAtICAgbGVnYWN5LmJsb2c6IHkKICAgIC0gICBzY2hvb2w6IHkKICAgIC0gICB1c2VyOiB5CiAgICAtICAgMzogeQotICAgRWRnZToKICAgIC0gICB3d3c6IHkKICAgIC0gICBmaWxlczogbSBbVW5pbXBvcnRhbnQgaGVhZGVyIGVycm9yXQogICAgLSAgIGJsb2c6IHkKICAgIC0gICBsZWdhY3kuYmxvZzogbSBbVW5pbXBvcnRhbnQgaGVhZGVyIGVycm9yXQogICAgLSAgIHNjaG9vbDogeQogICAgLSAgIHVzZXI6IHkKICAgIC0gICAzOiB5Ci0gICBRdXRlYnJvd3NlcjoKICAgIC0gICB3d3c6IHkKICAgIC0gICBmaWxlczogeQogICAgLSAgIGJsb2c6IHkKICAgIC0gICBsZWdhY3kuYmxvZzogeQogICAgLSAgIHNjaG9vbDogeQogICAgLSAgIHVzZXI6IHkKICAgIC0gICAzOiB5Ci0gICBMeW54OgogICAgLSAgIHd3dzogbiBbRGlzYWJsZWQgSmF2YVNjcmlwdF0KICAgIC0gICBmaWxlczogeQogICAgLSAgIGJsb2c6IHkKICAgIC0gICBsZWdhY3kuYmxvZzogeQogICAgLSAgIHNjaG9vbDogeQogICAgLSAgIHVzZXI6IG4gW0Rpc2FibGVkIEphdmFTY3JpcHRdCiAgICAtICAgMzogayBbRGlzcGxheXMgdGhlIGJhcmUgSFRNTCwgbm8gY291bnRlcl0KCi0tLQoKNyBUZXN0cyBwZXIgYnJvd3NlcjoKCi0gICBHVUkgYnJvd3NlcnM6CgogICAgLSAgIENocm9taXVtOgogICAgICAgIC0gICBOb3QgY291bnRpbmcgbWlub3I6IDcvNwogICAgICAgIC0gICBDb3VudGluZyBtaW5vcjogNS83CiAgICAtICAgRGlsbG86CiAgICAgICAgLSAgIE5vdCBjb3VudGluZyBtaW5vcjogNC83CiAgICAgICAgLSAgIENvdW50aW5nIG1pbm9yOiA0LzcKICAgIC0gICBGaXJlZm94OgogICAgICAgIC0gICBOb3QgY291bnRpbmcgbWlub3I6IDcvNwogICAgICAgIC0gICBDb3VudGluZyBtaW5vcjogNy83CiAgICAtICAgTGlicmV3b2xmOgogICAgICAgIC0gICBOb3QgY291bnRpbmcgbWlub3I6IDcvNwogICAgICAgIC0gICBDb3VudGluZyBtaW5vcjogNy83CiAgICAtICAgRWRnZToKICAgICAgICAtICAgTm90IGNvdW50aW5nIG1pbm9yOiA1LzcKICAgICAgICAtICAgQ291bnRpbmcgbWlub3I6IDcvNwogICAgLSAgIFF1dGVicm93c2VyOgoKICAgICAgICAtICAgTm90IGNvdW50aW5nIG1pbm9yOiA3LzcKICAgICAgICAtICAgQ291bnRpbmcgbWlub3I6IDcvNwoKICAgIC0gICBUb3RhbCBzY29yZToKCiAgICAgICAgLSAgIFdpdGhvdXQgbWlub3I6IDM3LzQyICg4OC4wOTUyMzgwOTUyMzgwOSUpCiAgICAgICAgLSAgIFdpdGggbWlub3I6IDM3LzQyICg4OC4wOTUyMzgwOTUyMzgwOSUpCiAgICAgICAgLSAgIEF2ZXJhZ2U6IDM3LzQyICg4OC4wOTUyMzgwOTUyMzgwOSUpCgogICAgLSAgIEF2ZXJhZ2Ugc2NvcmU6CiAgICAgICAgLSAgIFdpdGhvdXQgbWlub3I6IDYuMTY2NjY2NjY2NjY2NjY3CiAgICAgICAgLSAgIFdpdGggbWlub3I6IDYuMTY2NjY2NjY2NjY2NjY3CiAgICAgICAgLSAgIEF2ZXJhZ2U6IDYuMTY2NjY2NjY2NjY2NjY3CgotICAgVFVJIGJyb3dzZXJzOgoKICAgIC0gICBMeW54OgoKICAgICAgICAtICAgTm90IGNvdW50aW5nIG1pbm9yOiA0LzcKICAgICAgICAtICAgQ291bnRpbmcgbWlub3I6IDQvNwoKICAgIC0gICBUb3RhbCBzY29yZToKCiAgICAgICAgLSAgIFdpdGhvdXQgbWlub3I6IDQvNyAoNTcuMTQyODU3MTQyODU3MTQlKQogICAgICAgIC0gICBXaXRoIG1pbm9yOiA0LzcgKDU3LjE0Mjg1NzE0Mjg1NzE0JSkKICAgICAgICAtICAgQXZlcmFnZTogNC83ICg1Ny4xNDI4NTcxNDI4NTcxNCUpCgogICAgLSAgIEF2ZXJhZ2Ugc2NvcmU6CiAgICAgICAgLSAgIFdpdGhvdXQgbWlub3I6IDQKICAgICAgICAtICAgV2l0aCBtaW5vcjogNAogICAgICAgIC0gICBBdmVyYWdlOiA0CgotLS0KCkNvbmNsdXNpb246CgotICAgQXZlcmFnZSB0b3RhbDoKCiAgICAtICAgV2l0aG91dCBtaW5vcjogNjEvODQgKDcyLjYxOTA0NzYxOTA0NzYyJSkKICAgIC0gICBXaXRoIG1pbm9yOiA2MS84NCAoNzIuNjE5MDQ3NjE5MDQ3NjIlKQogICAgLSAgIEF2ZXJhZ2U6IDYxLzg0ICg3Mi42MTkwNDc2MTkwNDc2MiUpCgotICAgQXZlcmFnZSBzY29yZToKICAgIC0gICBXaXRob3V0IG1pbm9yOiA1LjA4MzMzMzMzMzMzMzMzNAogICAgLSAgIFdpdGggbWlub3I6IDUuMDgzMzMzMzMzMzMzMzM0CiAgICAtICAgQXZlcmFnZTogNS4wODMzMzMzMzMzMzMzMzQK", + "version": 1, + "time": 1663636905.053169, + "keywords": "mark marking average math support browser google chrome chromium firefox", + "hidden": false } } } \ No newline at end of file diff --git a/scripts/blog b/scripts/blog index 41df105..6afea50 100755 --- a/scripts/blog +++ b/scripts/blog @@ -10,7 +10,9 @@ from base64 import b64decode, b64encode from datetime import datetime from glob import iglob from html import escape as html_escape +from shutil import copy as copy_file from shutil import rmtree +from tempfile import gettempdir from threading import Thread from timeit import default_timer as code_timer from typing import Dict, List, Optional, Set, Tuple @@ -165,6 +167,19 @@ def yesno(cond: bool) -> str: return "Yes" if cond else "No" +def tmp_path(path: str) -> str: + return os.path.join(gettempdir(), path) + + +def editor(config: Dict, file: str) -> None: + tmp_editcfg: str = tmp_path(".editorconfig") + + if os.path.islink(tmp_editcfg): + copy_file(".editorconfig", tmp_editcfg) + + os.system(config["editor-command"] % file) + + def sanitise_title(title: str, titleset: Dict) -> str: _title: str = "" @@ -259,10 +274,10 @@ def new_blog(config: Dict) -> Tuple[int, Dict]: "keywords": "", } - file: str = f"/tmp/{s_title}.md" + file: str = tmp_path(f"{s_title}.md") open(file, "w").close() - os.system(config["editor-command"] % file) + editor(config, file) if not os.path.isfile(file): return log(f"{file!r} does not exist"), config @@ -509,12 +524,12 @@ def edit_keywords(blog: str, config: Dict) -> int: def edit_content(blog: str, config: Dict) -> int: - file: str = f"/tmp/{blog}.md" + file: str = tmp_path(f"{blog}.md") with open(file, "w") as blog_md: blog_md.write(b64decode(config["blogs"][blog]["content"]).decode()) - os.system(config["editor-command"] % (file)) + editor(config, file) with open(file, "r") as blog_md_new: content: str = blog_md_new.read()