tool for generating HTML from gemtext.
| src/gmirator | ||
| tests | ||
| config.json | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
Gmirator
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.
TODO
- concatenate header + gmi2html + footer
- allow some special characters to start a
<p>- like the
*for emphasis or~~for a strikethrough
- like the
- write the
gen_gmifunction - make the line "---\n" of the footer only present in the code, not in the footer file
- make a config file for things like
- certain variables should be made
CONSTANTin the__init__.py
- certain variables should be made
- also update the "/gemlog/index.gmi" with the list of articles
- write the sync features
- test the
gen gmiandgen htmlfeatures- write tests for it
- move config file to
~/.configwith placeholder values- check for a config file in
~/.config
- check for a config file in
- maybe save the old Bash script somewhere for posterity ?
- reorganise the directory where the content is
- replace
prints withlogging - make a call graph
- rewrite
process_fileto make it easier to test
My setup
My current folder structure for my capsule+website looks something like this:
myinternet
├── assets
│ ├── favicon.ico
│ └── style.css
├── content
│ ├── gemlog
│ │ └── 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
This is only meant as a reference if my code isn't clear enough and had too much implicits