blob: 2f03fc5cc8b3055fd2b5f845e7182bac0e08a4b8 [file] [log] [blame] [view]
# 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.
## Running locally
Requirements:
1. [Go](https://golang.org)
2. [Node](https://nodejs.org/)
Clone this repo:
git clone https://skia.googlesource.com/buildbot
Then build the executable:
cd buildbot/docserverk
make
Now run docserverk from within the docserverk directory. If $GOPATH/bin is in
your $PATH then you can run:
docserverk --logtostderr --local
otherwise run:
$GOPATH/bin/docserverk --logtostderr --local
The server will eventually log "Ready to serve" at which point you can visit
http://localhost:8000