mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
e67ed10aab
[ci skip]
98 lines
3.4 KiB
Plaintext
98 lines
3.4 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. Code/API docs in haskell source files as haddock comments:
|
|
|
|
hledger*/**/*.hs haddock module and function docs in most source files
|
|
|
|
4. 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)
|
|
|
|
5. 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
|
|
|
|
The text/man/info manuals are embedded in the hledger executable, so a
|
|
rebuild of that now will pick up the latest manuals:
|
|
|
|
$ stack build hledger
|
|
|
|
The website uses the markdown manuals. This copies them 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) which adds tables of contents and renders everything as html
|
|
with the site header/footer.
|
|
|
|
$ ./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.
|