Hypertext sites generator
Find a file
2023-06-08 21:58:14 +02:00
LICENSE Initialize repository 2021-10-09 20:13:55 +02:00
mkht.php Fix HTML title when no site title 2023-06-08 21:58:14 +02:00
README.md Generate Atom feeds (+ delete Parsedown) 2023-05-30 22:36:40 +02:00
style.css Use plain CSS instead of Less 2023-05-31 02:40:31 +02:00

mkht.php

mkht.php is a PHP script for building Gemini, Markdown and HTML/CSS sites from source documents in Gemini, Markdown Extra, HTML, PHP, CSS and Less.

Usage

Place your pages tree in /src/*/*.(gmi|md).

Optional files:

  • /config.ini
  • /style.less
  • /logo.png
  • /head.inc.html
  • /footer.inc.html

mkht.php <site path> <destination>

destination is optionnal and can be:

  • onion if you want links ending with .onion when available

Input

Pages in /src can use Gemini (if using gmi extension), Markdown, HTML and PHP.

Files starting with a dot or not ending in .gmi, .md or .html are ignored.

Files containing draft in their name are ignored for Atom feeds.

Output

  • /*/*.gmi (if using .gmi extension in /src)
  • /*/*.md
  • /*/*.html
  • /*/*.gz

Note that format translation is only done in the following order: Gemini > Markdown > HTML, which means that the last of these formats you will use will be the first that will be readable by hypertext browsers. (PHP is always executed first.)

Data persistence

IDs are attributed to titles according to their content, therefor modifying a title breaks links to page sections.

For atom feeds

  • Make sure modification timestamps of source files are preserved. For example, cp --preserve=timestamps must be used instead of just cp when backing up or migrating.
  • Renaming/moving a page creates a new page and delete the older.

External dependencies

  • PHP
  • gzip
  • pandoc

Internal libraries used

Name Description Repository
less.php Less compiler in PHP https://github.com/wikimedia/less.php

License

AGPLv3+

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.