diff --git a/README.md b/README.md index 4fac3b0..269deae 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,8 @@ This tool was made so I could write my content only in `gmi` and publish both a gemini capsule and a website. -For now, this is very rudimentary and things are bound to change... and break from -version to version. - -## Features - -- generates HTML from gemtext -- can synchronise your files with your server using rsync - -## Notes on usage - -Good practice for gemini dictates that we don't use multiple `h1` titles in one page -and for that reason, the last (and therefore the first) `h1` title encountered will -be used as the title of the HTML page. +For now, this is very rudimentary and things are bound to change, especially the way +I structure the directory where my content lives. ## TODO @@ -34,14 +23,12 @@ be used as the title of the HTML page. - [ ] move config file to `~/.config` with placeholder values - [X] check for a config file in `~/.config` - [ ] maybe save the old Bash script somewhere for posterity ? -- [ ] reorganise the directory where the content is ## My setup - My current folder structure for my capsule+website looks something like this: ``` -myinternet +my-internet ├── assets │ ├── favicon.ico │ └── style.css @@ -50,20 +37,9 @@ myinternet │ │ └── index.gmi │ ├── index.gmi │ └── projects.gmi -├── gmi-helper -│ └── footer.gmi -├── html-helper -│ ├── footer-part.html -│ └── header-part.html -├── README.md -└── web - ├── favicon.ico - ├── gemlog - │ └── index.html - ├── index.html - ├── projects.html - └── style.css +├── footer.gmi +├── html-output +└── html-parts + ├── footer-part.html + └── header-part.html ``` - -This is only meant as a reference if my code isn't clear enough and had too much -implicits diff --git a/config.json b/config.json index 28bd070..d5a01bb 100644 --- a/config.json +++ b/config.json @@ -1,11 +1,11 @@ { - "dir_assets" : "path/to/assets", - "dir_gmi_content" : "path/to/content", - "dir_gmi_helper" : "path/to/gmi-helper", - "dir_html_helper" : "path/to/html-helper", - "dir_html_out" : "path/to/web", - "rem_gmi" : "remote_server:path/to/gmi", - "rem_html" : "remote_server:path/to/gmi", - "port" : "1312" + "workdir" : "where/your/sources/live", + "dir_assets" : "assets", + "dir_source" : "content", + "dir_helper" : "html-parts", + "dir_o_html" : "html-output", + "rem_gmi" : "your/remote/gemini/path", + "rem_html" : "your/remote/html/path", + "port" : "1312" } diff --git a/src/gmirator/__init__.py b/src/gmirator/__init__.py index d466b4a..7a67d4a 100644 --- a/src/gmirator/__init__.py +++ b/src/gmirator/__init__.py @@ -7,14 +7,13 @@ cfg_file = xdg_path if xdg_path.exists() else "config.json" with open(cfg_file) as f: config = json.load(f) -DIR_ASSETS = Path(config["dir_assets"]) -DIR_SOURCE = Path(config["dir_gmi_content"]) -DIR_GMI_HELPER = Path(config["dir_gmi_helper"]) -DIR_HELPER = Path(config["dir_html_helper"]) -DIR_O_HTML = Path(config["dir_html_out"]) +WORKDIR = Path(config["workdir"]) +DIR_ASSETS = WORKDIR / config["dir_assets"] +DIR_SOURCE = WORKDIR / config["dir_source"] +DIR_HELPER = WORKDIR / config["dir_helper"] +DIR_O_HTML = WORKDIR / config["dir_o_html"] +GMI_FOOTER = WORKDIR / "footer.gmi" -GMI_FOOTER = DIR_GMI_HELPER / "footer.gmi" - -REM_HTML = config["rem_html"] -REM_GMI = config["rem_gmi"] -RPORT = config["port"] +REM_HTML = config["rem_html"] +REM_GMI = config["rem_gmi"] +RPORT = config["port"] diff --git a/src/gmirator/generate.py b/src/gmirator/generate.py index b56168d..5ebadde 100644 --- a/src/gmirator/generate.py +++ b/src/gmirator/generate.py @@ -156,7 +156,7 @@ def process_inline(line: str): def repl_url(matchobj: re.Match): url, text = matchobj.groupdict().values() - if not re.findall(r'(http|gemini)', url): + if not re.findall(r'=> (http|gemini)', url): url = re.sub(r'gmi$', r'html', url) return f'=> {text if text else url}
\n' diff --git a/tests/test_generate.py b/tests/test_generate.py index c69ca57..a49c6ce 100644 --- a/tests/test_generate.py +++ b/tests/test_generate.py @@ -1,4 +1,3 @@ -import re from gmirator.generate import ( process_file, process_list, @@ -12,26 +11,13 @@ def test_process_file(): pass def test_process_list(): - test_str = "this is a line outside a list" - assert process_list(test_str, True) == ("\n\n", False) - assert process_list(test_str, False) == (test_str, False) - test_str = "* this is a list item" - assert process_list(test_str, True) == ("
  • this is a list item
  • ", True) - assert process_list(test_str, False) == ("