hastyscribe icon indicating copy to clipboard operation
hastyscribe copied to clipboard

Self-contained markdown compiler generating self-contained HTML documents

Nimble

release license

HastyScribe

HastyScribe is a simple command-line program able to convert markdown files into HTML files.

Usage

hastyscribe filename-or-glob-expression [ <options> ]

Where:

  • filename-or-glob-expression is a valid file or glob expression that will be compiled into HTML.
  • The following options are supported:
    • --field/<field>=<value> causes HastyScribe to set a custom field to a specific value.
    • --notoc causes HastyScribe to output HTML documents without automatically generating a Table of Contents at the start.
    • --user-css=<file> causes HastyScribe to insert the contents of the specified local file as a CSS stylesheet.
    • --user-js=<file> causes HastyScribe to insert the contents of the specified local file as a Javascript script.
    • --output-file=<file> causes HastyScribe to write output to a local file (Use --output-file=- to output to standard output).
    • --watermark=<file> causes HastyScribe to embed and display an image as a watermark throughout the document.
    • --fragment causes HastyScribe to output just an HTML fragment instead of a full document, without embedding any image, font or stylesheet.
    • --dump=all|styles|fonts causes HastyScribe to dump all resources/stylesheets/fonts to the current directory.
    • --help causes HastyScribe to display the usage information and quit.

FAQs

Why is HastyScribe different from other markdown converters?

Because:

  • It is a cross-platform, self-contained executable file.
  • It can generate standalone HTML files.
  • It comes with its own stylesheet, which is automatically embedded into every HTML document, along with all the needed web fonts.
  • It is built on top of Discount, which means that besides standard markdown you also get:
    • strikethrough
    • automatic Table of Contents generation
    • SmartyPants substitutions
    • paragraph centering
    • image sizes
    • definition lists
    • alphabetic lists
    • pseudo-protocols to generate span tags with arbitrary CSS classes, abbr tags, and anchors
    • class blocks
    • tables
    • fenced code blocks
    • Pandoc-style document headers
  • It automatically embeds any referenced image as data URI.
  • It has supports for text snippets, custom fields, and substitution macros.

What can I use it for?

HastyScribe is best suited to produce self-contained documents such as essays, meeting notes, project status documents, and articles.

What language is HastyScribe implemented in?

HastyScribe is implemented in Nim, a very expressive language that compiles to C and is able to generate small, standalone and self-contained executable files.

How do I build HastyScribe from source?

  1. Download and install Nim.
  2. Download and build Nifty, and put it somewhere in your $PATH.
  3. Clone the HastyScribe repository.
  4. Navigate to the HastyScribe repository local folder.
  5. Run nifty install to download HastyScribe's dependencies.
  6. Run nifty build discount to build the Discount markdown library.
  7. Run nim c -d:release hastyscribe.nim.