thp/doc-generator
2023-04-14 10:17:24 -05:00
..
markdown/en [Compiler] Begin refactor of type checking 2023-04-14 10:17:24 -05:00
src [Web] Replace TOML with YAML for markdown indexing 2023-04-13 20:21:03 -05:00
static [Web] Replace TOML with YAML for markdown indexing 2023-04-13 20:21:03 -05:00
.gitignore [Web] Minimal compilation from MD to HTML 2023-03-28 18:43:46 -05:00
Cargo.lock [Web] Replace TOML with YAML for markdown indexing 2023-04-13 20:21:03 -05:00
Cargo.toml [Web] Begin migration from TOML to YAML for the documentation tree 2023-04-13 14:02:59 -05:00
README.md [Web] Use a TOML file to index the markdown files 2023-04-12 21:15:00 -05:00

Doc-generator

Here is the documentation of the language in markdown, and a program to generate static HTML files from them.

src folder

Rust code to generate HTML files from MD files.

The binary is called like:

generator --input /path/to/markdown/folder/ --output /path/to/static/folder/

markdown folder

Contains the Markdown. All files inside are expected to be UTF-8 encoded markdown, and have the .md file extension.

Indexing

doc-generator will not search for .md files. Instead, it will search for .toml files, which index all the markdown files. This is used to generate the file hierarchy and previous/next links in the documentation.

This file must be named index.toml, must be the only TOML file in its folder, and must follow the following schema:

# Tipically index
entry-point = "file-without-extension"

[folder-1]
section-name = "Display name for the folder"
# Markdown files, without the .md extension
children = [
    "file1",
    "file2",
]

Markdown extensions

The markdown follows the CommonMark specification, but certain code blocks contain custom behaviour:

meta

A code block with language meta contains text in TOML format that indicates metadata for the current page.

```meta
title: "Title of the page"
description: "Description of the page"
```
  • title: Used to create the title of the page with the format {title} - Misti
  • description: The description of the page, placed in a <meta> element in the <head>

static folder

Contains CSS, JS, and HTML templates. Here the MD files are written to after being converted.

There must be a template.html file inside this folder. This file will be used to generate the HTML from MD files.

Inside template.html there must be a string {{markdown}}:

<!-- Some html -->
    {{markdown}}
<!-- More html -->

This string, {{markdown}}, will be replaced with the HTML generated from Markdown

dist folder

Coming soon, this folder will contain all HTML, CSS & JS minified after running a script.