typeup - a markup language that gets out of your way

# h1
###### h6
Headers (1-6) are just like Markdown
=# title
Titles set the metadata attribute title and the document title in HTML, groff and LaTeX, rather than just being a header
Styling is similar to markdown but bolding only uses 1 wrapping character
[link https://skuz.xyz]
Text enclosed in [] becomes a link. The last word in the bracket is the hyperlink, the rest is the text
![alt text https://placekitten.com/200/200]
Images are as in markdown - links prefixed with a !
| quote

Single-line quotes are not joined. Multiline quotes are not prefixed and behave like paragraphs
package main

import (

func main(){
    fmt.Println("hello world")
Multiline code is as in Markdown, with less thorny delimiters
Instead of prefixing each item with + or manually numbering items, lists are enclosed. Unordered lists are enclosed with [] and ordered lists are enclosed with {}. Nesting is done by simply inserting lists, instead of indentation. The indentation in this example is only for aesthetic purposes. It is meaningless as typeup strips all whitespace from the start of the line
name,statically typed,GC,compiled

Language: Family
Irish: Celtic
Kannada: Dravidian
Swahili: Bantu
Tables are enclosed, whatever-you-want separated values. There is no dividing row between the header and body - the first row becomes the header row. Any delimiter can be chosen so CSV data and colon separated lists can be wrapped without changes.
@{key = value}

key = value
typeup has a built-in metadata format instead of using YAML/TOML frontmatter. It is simply keys associated with values. Some, such as title are used by renderers. Metadata can be retrieved at the command-line

Get started

The reference implementation of typeup is written in Janet and lives here. It is work-in-progress but can parse all syntax elements

  1. Install Janet (see also the official guide)

  2. Packaging status
  3. Install the package:
    sudo jpm install 'https://git.sr.ht/~skuzzymiglet/typeup-janet'


typeup <output format> (reads standard input, writes to standard output)
typeup < my-document.tup > output-file.html

For a playground in the terminal, try i

Output formats

Planned output formats

Planned features

Other links