Single-Page Markdown Website

Create a nice single-page documentation website from one or more Markdown files

Features#

Quick start#

Requires Node.js.

$ npx --yes -- single-page-markdown-website '*.md' --open

The above command does the following:

Configuration#

Configuration is via the "single-page-markdown-website" key of your package.json file.

{
  "single-page-markdown-website": {
    "baseUrl": "https://yuanqing.github.io/single-page-markdown-website/",
    "title": "Single-Page Markdown Website",
    "description": "Create a nice single-page documentation website from one or more Markdown files",
    "toc": true,
    "sections": true,
    "links": [
      {
        "text": "GitHub",
        "url": "https://github.com/yuanqing/single-page-markdown-website"
      }
    ],
    "faviconImage": "media/favicon.svg",
    "shareImage": "media/share.png"
  }
}

"baseUrl"#

(null or string)

The base URL of the single-page website.

"title"#

(null or string)

The title of the page.

"description"#

(null or string)

The meta description of the page.

"toc"#

(boolean)

Whether to render a Table of Contents.

"sections"#

(boolean)

Whether to render sections shortcuts in the menu. (Sections are the level-one headers (#) in the Markdown.)

(Array<{ text: string, url: string }>)

A list of links to add to the menu.

"faviconImage"#

(null or string)

The URL or file path of the favicon image to use.

"shareImage"#

(null or string)

The URL or file path of the share image to use.

"version"#

(null or string)

The version number to show beside the title.

Tips#

Including files#

Use the following syntax to include the entire contents of a local file foo.md in your Markdown:


./foo.md

Note that an empty line is required immediately before and after the file path.

You can also specify a glob to include multiple files:


./bar/*.md

Deploying to GitHub Pages#

Deploy your single-page website to GitHub Pages via one of the following two ways:

  1. Commit the ./build directory and push your changes. Then, set the ./build directory as the publishing source in your GitHub repository settings.

  2. Use the gh-pages CLI to deploy the ./build directory to the gh-pages branch:

    $ npx --yes -- gh-pages --dist build
    

    Then, set the gh-pages branch as the publishing source in your GitHub repository settings.

Deploying to Cloudflare Pages#

To deploy your single-page website to Cloudflare Pages, use the following settings in your build configuration:

CLI#


  Create a nice single-page documentation website from one or more Markdown files.

  Usage:
    $ single-page-markdown-website <files> [options]

  Arguments:
    <files>  One or more globs of Markdown files. Defaults to 'README.md'.

  Options:
    -h, --help     Print this message.
    -p, --open     Whether to open the generated page in the default web
                   browser. Defaults to 'false'.
    -o, --output   Set the output directory. Defaults to './build'.
    -v, --version  Print the version.
    -w, --watch    Whether to watch for changes and regenerate the page.
                   Defaults to 'false'.

  Examples:
    $ single-page-markdown-website
    $ single-page-markdown-website '*.md'
    $ single-page-markdown-website --open
    $ single-page-markdown-website --output dist
    $ single-page-markdown-website --watch

Single-Page Markdown Website v0.0.25