diff --git a/README.md b/README.md
index 269deae..4fac3b0 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,19 @@
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, especially the way
-I structure the directory where my content lives.
+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.
## TODO
@@ -23,12 +34,14 @@ I structure the directory where my content lives.
- [ ] 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:
```
-my-internet
+myinternet
├── assets
│ ├── favicon.ico
│ └── style.css
@@ -37,9 +50,20 @@ my-internet
│ │ └── index.gmi
│ ├── index.gmi
│ └── projects.gmi
-├── footer.gmi
-├── html-output
-└── html-parts
- ├── footer-part.html
- └── header-part.html
+├── 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
```
+
+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 d5a01bb..28bd070 100644
--- a/config.json
+++ b/config.json
@@ -1,11 +1,11 @@
{
- "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"
+ "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"
}
diff --git a/src/gmirator/__init__.py b/src/gmirator/__init__.py
index 7a67d4a..d466b4a 100644
--- a/src/gmirator/__init__.py
+++ b/src/gmirator/__init__.py
@@ -7,13 +7,14 @@ cfg_file = xdg_path if xdg_path.exists() else "config.json"
with open(cfg_file) as f:
config = json.load(f)
-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"
+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"])
-REM_HTML = config["rem_html"]
-REM_GMI = config["rem_gmi"]
-RPORT = config["port"]
+GMI_FOOTER = DIR_GMI_HELPER / "footer.gmi"
+
+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 5ebadde..b56168d 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 a49c6ce..c69ca57 100644
--- a/tests/test_generate.py
+++ b/tests/test_generate.py
@@ -1,3 +1,4 @@
+import re
from gmirator.generate import (
process_file,
process_list,
@@ -11,13 +12,26 @@ 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) == ("