68 lines
2.4 KiB
Markdown
Executable file
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/>.
|