typeset/README.md
2022-07-02 05:35:56 +00:00

48 lines
4.1 KiB
Markdown

# typeset
Quick and dirty static site generator
## How to use
1. Create a folder where you will store your markdown and configuration files. One good option is to use whatever folder you're gonna store your output posts in and create a subdirectory.
2. In that folder, create the following files:
- `typeset.toml`
- `index.html`
- `template.html`
3. In `typeset.toml`, enter the following keys.
| Key | Value |
|----------------|---------------------------------------------------------------------------------------------------------------|
| schema_version | For Typeset 0.1.0, this should be 1. |
| name | The name of the blog. Currently unused. |
| index | The filename of the index page. Should be `index.html`. |
| template | The filename of the template. Should be `template.html`. |
| page_title | The pattern to use for page titles. Currently unused. |
| input | Regex to select pages to input as markdown. I recommend `.md#`. |
| output | The output directory for the index, template, and posts. If in a subdirectory 1 level deep, use "..". |
| ref_from_index | Currently unused, but must be set. |
| time_format | Format string for the time. See [this page](https://docs.rs/chrono/0.4.19/chrono/format/strftime/index.html). |
4. In `index.html`, create HTML for the page which will show a list of links to all posts. Create only 1 link to a post, and instead of an `<a>` element to link to the post, type the following:
```html
<meta typeset="index-entry" content="n"/>
```
where the n in the value of the `content` field is equal to how many levels up is the unit that should be repeated per post.
5. In `template.html`, create HTML for an individal post. In lieu of the actual name and contents of the post, use the following tags instead:
| Key | Value |
|----------------------------------------------|----------------------------------------------------------------------------------------------------------|
| `<meta typeset="page-title" content="..."/>` | Use in place of a `<title>` element. In the content attribute, a $ will be replaced with the page title. |
| `<meta typeset="title"/>` | The page title, in text form. |
| `<meta typeset="date"/>` | The post's publication date. |
| `<meta typeset="body"/>` | The text component of the page, in text form. **Do not use a `<body>` tag!!** |
6. Create a markdown file. Before you begin writing, insert the following lines (with the ... changed based on your needs, but with the quotes still present):
| Key | Value |
|-------------------|------------------------------------------------------------------------------------|
| title = "..." | The title of the page. |
| published = "..." | The publication date of the page. MUST be in the format specified in typeset.toml! |
7. Insert line breaks, and begin writing.
8. Once you're done writing all your posts, simply enter the directory containing your posts, template, index, and typeset.toml files, and run `typeset`.
9. Your index in HTML form as well as all your posts should come out nicely!
10. If they don't, it's probably a bug. Open an issue, if you would.