Parcourir la source

added readme to describe the expectations of the application

Casey DeLorme il y a 10 ans
Parent
commit
01d999607c
1 fichiers modifiés avec 101 ajouts et 0 suppressions
  1. 101 0
      readme.md

+ 101 - 0
readme.md

@@ -0,0 +1,101 @@
+
+# staticmd
+
+This is a golang project for a command that generates static html output from markdown documents and a template.  It's purpose is to make it easy to convert large folders in bulk, as well as single-page support.  It works for simple static content websites, as well as documentation.
+
+
+## alternatives
+
+I was lazy this time and haven't checked, but there exist a few tools in other languages like [node; harp.js](http://harpjs.com/).
+
+
+## sales pitch
+
+The aim of this tool is to provide a simple command with sensible flags that will generate:
+
+- a full website
+- a relative-path local readme
+- a single file with an automated table of contents
+
+It depends on:
+
+- a user-supplied template
+- a bunch of markdown files
+
+It supplies the template with convenient output, such as:
+
+- top level navigation
+- asset versioning
+
+Its options include:
+
+- template path
+- input path
+- output path
+- single-page output
+- relative links
+- debug mode
+- cpu profiling
+
+
+**Behavior:**
+
+The template path is the only required parameter, and an example will be included with the project source.
+
+It assumes the input path is the execution directory.
+
+It assumes an output path of `public/` relative to the execution path.
+
+Single page output will combine all files in the input path into a single output; something akin to a "book".  When this flag is selected the full table of contents is listed first; depth is applied based on the folder layout, and in the order which it was parsed.
+
+By default the application assumes absolute path starting at the parent directory.  The relative links option is for multi-page output (it is ignored when run in single-page mode) and will provide relative links to files and folders, including full paths (ex. it will not assume `/` points to `/index.html` and will fully generate the appropriate path).
+
+If run within a repository it will attempt to grab the short-hash from git as a version, otherwise it will use a unix timestamp.
+
+In a github fashion it assumes `readme.html` as the primary index; it will automatically prepend a table of contents to the `readme.md` or `index.md` files if either exists, otherwise it will create an `index.html` with just the relative files.
+
+For multiple page generation it utilizies concurrency.  _When run in single-page mode it cannot build concurrently._
+
+
+**It does not come with:**
+
+- abstractions
+- interfaces
+- unit tests
+
+
+## usage
+
+Install the command:
+
+    go get github.com/cdelorme/staticmd
+
+In this example we can generate a single-page document for easier printing and sharing:
+
+    staticmd -t template.tmpl -s -c src/
+
+**The above command will generate a single file from the template using files inside `src/`.**
+
+_For further details on command line operation, use the `--help` flag._
+
+
+### template file
+
+A single template file can be used to generate all pages; even in single-page mode.
+
+The following variables are provided to the template file:
+
+- depth
+- version
+- navigation
+- content
+
+The `depth` property is for links you supply, such as to css and js assets.
+
+The `version` tag allows you to prevent caching of changed assets, such as css and js, but can also be supplied.
+
+The `navigation` is a set of top-level links.  In single-page mode the navigation is omitted.
+
+The `content` is the file contents converted to html, and may include prepended table of contents if the page is a `readme`, `index`, or from single-page mode output.
+
+_Any binary assets such as images should be hosted on a CDN and have full paths.  If you need to supply a full offline version then use the single-page mode with this tool and print to pdf._