mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-27 20:36:07 +03:00
89 lines
3.1 KiB
Plaintext
89 lines
3.1 KiB
Plaintext
HLEDGER_SRC/doc - starting point for hledger documentation files.
|
|
|
|
|
|
hledger doc files can be divided into several groups:
|
|
|
|
1. Project admin/dev notes not published on the website.
|
|
These are kept in this directory (doc/). They include:
|
|
|
|
doc/finance/ project finances
|
|
doc/hcar/ Haskell Community and Activities Report entries
|
|
doc/lib.m4 common macros used in package manuals
|
|
doc/manpage.* misc. templates for rendering package manuals
|
|
doc/mockups/ exploratory developer mockups
|
|
doc/profs/ a place for long-term profiling/performance data
|
|
|
|
2. Project doc files required to be in the top directory:
|
|
|
|
README.md the main project readme, displayed on github
|
|
LICENSE the default project license
|
|
|
|
3. Per-package descriptions, readmes, changelogs, and reference manuals.
|
|
These are in the respective package directories:
|
|
|
|
hledger*/package.yaml source for package metadata (description, etc.)
|
|
hledger*/README package readme, displayed on hackage
|
|
hledger*/CHANGES package changelog, displayed on hackage
|
|
hledger*/hledger*.m4.md package manual source file(s)
|
|
|
|
4. The project website and additional docs - home page, FAQ, tutorials,
|
|
how-tos, developer guide, etc. These are in the site directory:
|
|
|
|
site/ hledger.org website content, templates, assets
|
|
|
|
|
|
Workflows:
|
|
|
|
The manuals and website are rendered from the top directory,
|
|
primarily using Shake. First, build Shake:
|
|
|
|
$ make Shake
|
|
|
|
Then render the per-package manuals from markdown-m4 source files (*.m4.md)
|
|
to text, man, info, and markdown formats. This requires some unix tools
|
|
such as m4:
|
|
|
|
$ ./Shake manuals
|
|
|
|
Then render the website. This copies the manuals' markdown files into
|
|
the website, edits them for web display, concatenates them to form the
|
|
one-page manual, and runs hakyll-std (a generic hakyll script, included)
|
|
to render everything as html and add site header/footer,
|
|
tables of contents, etc.:
|
|
|
|
$ ./Shake website
|
|
|
|
View the rendered website ("open" is mac-specific; use your equivalent):
|
|
|
|
$ open site/_site/index.html
|
|
|
|
Or run hakyll in preview mode, regenerating html when source changes:
|
|
|
|
$ make site-preview
|
|
$ open http://localhost:8000
|
|
|
|
Example workflow: edit doc source files, run Shake website in another window,
|
|
wait for to hakyll rebuild html files, manually reload pages in browser.
|
|
Occasionally hakyll will get confused, to fix it: ctrl-c, make site-clean site-preview .
|
|
|
|
You can automate the browser page reloading by running a livereloadx proxy.
|
|
In another window:
|
|
|
|
$ make site-reload
|
|
$ open http://localhost:8001 # if the make file didn't do it
|
|
|
|
|
|
Misc. notes:
|
|
|
|
Changelogs are plain text, but started including some markdown formatting
|
|
from 1.0. Should make consistent.
|
|
|
|
Changelogs started mentioning committer names from 2017/1,
|
|
for hledger-ui-1.1.1 (because they won't appear on the release notes).
|
|
Could do it just for minor releases but might as well do it for all.
|
|
Could do it for past releases but no pressing need.
|
|
|
|
In site/release-notes.md, we stopped mentioning minor releases
|
|
around 0.27. The old minor releases should probably be removed
|
|
or promoted to the same heading level as major releases.
|