mkht.php/README.md
2023-05-30 22:36:40 +02:00

68 lines
2.4 KiB
Markdown
Executable file

# 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+](LICENSE)
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/>.