Help for reporting options is now also defined once in lib.m4
(in addition to CliOptions.hs). Also fixed some duplication of general
options in docs. hledger-* manuals now include the full list of general
and reporting options; we assume that any inapplicable options get
harmlessly ignored and that this will not surprise users.
Goal:
Generate man pages and web docs from one source.
Current plan:
The master docs for each package are now the pandoc-style
manpage-markdown files in the package directories -
hledger/hledger.1.md, hledger-lib/hledger_journal.5.md, etc.
Parts of these will be marked as web-only, and parts as man-only, using
divs recognisable by custom pandoc filters.
When generating man pages we strip the web-only parts, and all html
blocks, inline html and hyperlinks.
When generating web docs we strip the man-only parts and apply any other
tweaks needed for easy presentation, perhaps combining them into a
single web page similar to the old user manual.
Shake:
This was hard to do with GNU Make, and so I've introduced Shake, which
is working very well. Both coexist for now but it's probably time to
switch.
You can now toggle showing only cleared items in the accounts and
register screens, with C (like the command-line flag).
The f key has been changed to F for consistency (we don't have this as a
command-line flag, though we could, though Ledger uses it for something
different).
Screen titles have been tweaked, eg switching the cyan and yellow.
Screen help has been squeezed to fit better in 80 columns.
This doesn't yet quite install its deps when you run it from the
makefile, you may have to run the script directly to get the deps
(hakyll, pandoc) installed.
There are now six man pages, one for each main executable and file
format, generated from markdown by the mighty pandoc. They are basically
the content of the user manual, split up and moved into the appropriate
package directory. I've also committed the generated man files.
The man pages' markdown source (hledger/hledger.1.md,
hledger-lib/hledger_journal.5.md etc.) are now the master documentation
files. The plan is to concatenate them (with a little munging) to form
the all-in-one user manual for the website, at release time. This also
separates the hledger.org user manual from the latest doc commits, which
should simplify website management.
The balance command's --format option (in single-column mode) can now
adjust the rendering of multi-line strings, such as amounts with multiple
commodities. To control this, begin the format string with one of:
%_ - renders on multiple lines, bottom-aligned (the default)
%^ - renders on multiple lines, top-aligned
%, - render on one line, comma-separated
Also the final total (and the line above it) now adapt themselves to a
custom format.
Simpler and clearer. We now have "transaction prices" (recorded as part
of transaction amounts) and "market prices" (recorded with P
directives). Both are matters of historical record, also this avoids
confusion with the balance command's "historical balances".
Here are hpack package.yaml files for the other hledger cabal files.
These remove a lot of human-error-prone duplication.
They are not used yet as hpack isn't quite mature enough -
when it supports flags and benchmarks we will probably switch.
hakyll-std's cabal file is now generated by hpack from an easier yaml
config file, which looks like a valuable timesaver. "make gencabalfiles"
will regenerate this cabal file (and soon the others) when needed.
- less styling on inline and block pre and code elements by default
- different styles for journal (green), timelog (yellow), csv
rules (blue), and shell examples (black/bordered/bold)
- shrink pre blocks to fit their content. I used display:inline-block
for this, so some care is needed when you want a line break between
adjacent pre's.
A transaction/posting status of ! (pending) was effectively equivalent
to * (cleared). Now it's a separate state, not matched by --cleared.
The new Ledger-compatible --pending flag matches it, and so does
--uncleared. The equivalent search queries are now status:*, status:!
and status: (the old status:1 and status:0 spellings are deprecated).
Since we interpret --uncleared and status: as "any state except cleared",
it's not currently possible to match things which are neither cleared
nor pending.
The regex account aliases added in 0.24 trip up people switching between
hledger and Ledger. (Also they are currently slow).
This change makes the old non-regex aliases the default; they are
unsurprising, useful, and pretty close in functionality to Ledger's.
The new regex aliases are also available; they must be enclosed in
forward slashes. Ledger effectively ignores these, which is ok.
Also clarify docs, refactor, and use the same parser for alias
directives and alias options