tree: e48a9995652ff10ac36b74b61ff00015387da27e [path history] [tgz]
  1. .bowerrc
  2. Makefile
  3. README.md
  4. bower.json
  5. build_release
  6. go/
  7. package.json
  8. res/
  9. sys/
  10. templates/
  11. vm.go
doc/README.md

docserver

A super simple Markdown (CommonMark) server in Go.

This application serves up processed Markdown files that are stored in a Git repository. It allows push-to-deploy for updating Markdown files, i.e. every 15 minutes the server pulls the Markdown repo to head.

The application also supports previewing CLs against the Markdown repository. Just append ?cl={Reitveld_issue_number} to any URL and you can see what the file will render with the changes from that CL.

Design

The docserver presumes the Git repository that contains the Markdown files will exists under the /site directory in the repo. Each directory should have an index.md file which is the content for that directory, and any number of .md files beyond the index.md file which are the contents of a directory. Other assetts may appear in the directory structure and will be served over HTTP as files. See below for an example directory layout:

  site
  ├── dev
  │   ├── contrib
  │   │   ├── codereviews.md
  │   │   └── index.md
  │   └── index.md
  ├── index.md
  ├── logo.png
  ├── roles.md
  ├── roles.png
  ├── user
  │   ├── api.md
  │   ├── download.md
  │   ├── index.md
  │   ├── issue-tracker.md
  │   └── quick
  │       ├── index.md
  │       └── linux.md
  └── xtra
      └── index.md

The server will build a navigation menu for the site by walking the directory structure in alphabetical order and will use each Markdown documents first line as the title of the document in the navigation bar.