;doc: update manuals

This commit is contained in:
Simon Michael 2023-12-01 17:25:00 -10:00
parent 6cfeb65d7b
commit e90483a75a
11 changed files with 3685 additions and 4515 deletions

View File

@ -1,2 +1,2 @@
m4_dnl Date to show in man pages. Updated by "Shake manuals" m4_dnl Date to show in man pages. Updated by "Shake manuals"
m4_define({{_monthyear_}}, {{November 2023}})m4_dnl m4_define({{_monthyear_}}, {{December 2023}})m4_dnl

View File

@ -1,2 +1,2 @@
m4_dnl Date to show in man pages. Updated by "Shake manuals" m4_dnl Date to show in man pages. Updated by "Shake manuals"
m4_define({{_monthyear_}}, {{November 2023}})m4_dnl m4_define({{_monthyear_}}, {{December 2023}})m4_dnl

View File

@ -1,20 +1,17 @@
.TH "HLEDGER-UI" "1" "November 2023" "hledger-ui-1.31.99 " "hledger User Manuals" .TH "HLEDGER-UI" "1" "December 2023" "hledger-ui-1.31.99 " "hledger User Manuals"
.SH NAME .SH NAME
.PP
hledger-ui - robust, friendly plain text accounting (TUI version) hledger-ui - robust, friendly plain text accounting (TUI version)
.SH SYNOPSIS .SH SYNOPSIS
.PP \f[CR]hledger-ui [OPTS] [QUERYARGS]\f[R]
\f[V]hledger-ui [OPTS] [QUERYARGS]\f[R]
.PD 0 .PD 0
.P .P
.PD .PD
\f[V]hledger ui -- [OPTS] [QUERYARGS]\f[R] \f[CR]hledger ui -- [OPTS] [QUERYARGS]\f[R]
.SH DESCRIPTION .SH DESCRIPTION
.PP
This manual is for hledger\[aq]s terminal interface, version 1.31.99. This manual is for hledger\[aq]s terminal interface, version 1.31.99.
See also the hledger manual for common concepts and file formats. See also the hledger manual for common concepts and file formats.
.PP .PP
@ -31,9 +28,9 @@ It is easier than hledger\[aq]s command-line interface, and sometimes
quicker and more convenient than the web interface. quicker and more convenient than the web interface.
.PP .PP
Like hledger, it reads from (and appends to) a journal file specified by Like hledger, it reads from (and appends to) a journal file specified by
the \f[V]LEDGER_FILE\f[R] environment variable (defaulting to the \f[CR]LEDGER_FILE\f[R] environment variable (defaulting to
\f[V]$HOME/.hledger.journal\f[R]); or you can specify files with \f[CR]$HOME/.hledger.journal\f[R]); or you can specify files with
\f[V]-f\f[R] options. \f[CR]-f\f[R] options.
It can also read timeclock files, timedot files, or any CSV/SSV/TSV file It can also read timeclock files, timedot files, or any CSV/SSV/TSV file
with a date field. with a date field.
(See hledger(1) -> Input for details.) (See hledger(1) -> Input for details.)
@ -44,187 +41,186 @@ They can be revealed, along with any rule-generated periodic
transactions, by pressing the F key (or starting with --forecast) to transactions, by pressing the F key (or starting with --forecast) to
enable \[dq]forecast mode\[dq]. enable \[dq]forecast mode\[dq].
.SH OPTIONS .SH OPTIONS
.PP
Any QUERYARGS are interpreted as a hledger search query which filters Any QUERYARGS are interpreted as a hledger search query which filters
the data. the data.
.PP .PP
hledger-ui provides the following options: hledger-ui provides the following options:
.TP .TP
\f[V]-w --watch\f[R] \f[CR]-w --watch\f[R]
watch for data and date changes and reload automatically watch for data and date changes and reload automatically
.TP .TP
\f[V]--theme=default|terminal|greenterm\f[R] \f[CR]--theme=default|terminal|greenterm\f[R]
use this custom display theme use this custom display theme
.TP .TP
\f[V]--menu\f[R] \f[CR]--menu\f[R]
start in the menu screen start in the menu screen
.TP .TP
\f[V]--cash\f[R] \f[CR]--cash\f[R]
start in the cash accounts screen start in the cash accounts screen
.TP .TP
\f[V]--bs\f[R] \f[CR]--bs\f[R]
start in the balance sheet accounts screen start in the balance sheet accounts screen
.TP .TP
\f[V]--is\f[R] \f[CR]--is\f[R]
start in the income statement accounts screen start in the income statement accounts screen
.TP .TP
\f[V]--all\f[R] \f[CR]--all\f[R]
start in the all accounts screen start in the all accounts screen
.TP .TP
\f[V]--register=ACCTREGEX\f[R] \f[CR]--register=ACCTREGEX\f[R]
start in the (first) matched account\[aq]s register screen start in the (first) matched account\[aq]s register screen
.TP .TP
\f[V]--change\f[R] \f[CR]--change\f[R]
show period balances (changes) at startup instead of historical balances show period balances (changes) at startup instead of historical balances
.TP .TP
\f[V]-l --flat\f[R] \f[CR]-l --flat\f[R]
show accounts as a flat list (default) show accounts as a flat list (default)
.TP .TP
\f[V]-t --tree\f[R] \f[CR]-t --tree\f[R]
show accounts as a tree show accounts as a tree
.PP .PP
hledger-ui also supports many of hledger\[aq]s general options (and the hledger-ui also supports many of hledger\[aq]s general options (and the
hledger manual\[aq]s command line tips also apply here): hledger manual\[aq]s command line tips also apply here):
.SS General help options .SS General help options
.TP .TP
\f[V]-h --help\f[R] \f[CR]-h --help\f[R]
show general or COMMAND help show general or COMMAND help
.TP .TP
\f[V]--man\f[R] \f[CR]--man\f[R]
show general or COMMAND user manual with man show general or COMMAND user manual with man
.TP .TP
\f[V]--info\f[R] \f[CR]--info\f[R]
show general or COMMAND user manual with info show general or COMMAND user manual with info
.TP .TP
\f[V]--version\f[R] \f[CR]--version\f[R]
show general or ADDONCMD version show general or ADDONCMD version
.TP .TP
\f[V]--debug[=N]\f[R] \f[CR]--debug[=N]\f[R]
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
.SS General input options .SS General input options
.TP .TP
\f[V]-f FILE --file=FILE\f[R] \f[CR]-f FILE --file=FILE\f[R]
use a different input file. use a different input file.
For stdin, use - (default: \f[V]$LEDGER_FILE\f[R] or For stdin, use - (default: \f[CR]$LEDGER_FILE\f[R] or
\f[V]$HOME/.hledger.journal\f[R]) \f[CR]$HOME/.hledger.journal\f[R])
.TP .TP
\f[V]--rules-file=RULESFILE\f[R] \f[CR]--rules-file=RULESFILE\f[R]
Conversion rules file to use when reading CSV (default: FILE.rules) Conversion rules file to use when reading CSV (default: FILE.rules)
.TP .TP
\f[V]--separator=CHAR\f[R] \f[CR]--separator=CHAR\f[R]
Field separator to expect when reading CSV (default: \[aq],\[aq]) Field separator to expect when reading CSV (default: \[aq],\[aq])
.TP .TP
\f[V]--alias=OLD=NEW\f[R] \f[CR]--alias=OLD=NEW\f[R]
rename accounts named OLD to NEW rename accounts named OLD to NEW
.TP .TP
\f[V]--anon\f[R] \f[CR]--anon\f[R]
anonymize accounts and payees anonymize accounts and payees
.TP .TP
\f[V]--pivot FIELDNAME\f[R] \f[CR]--pivot FIELDNAME\f[R]
use some other field or tag for the account name use some other field or tag for the account name
.TP .TP
\f[V]-I --ignore-assertions\f[R] \f[CR]-I --ignore-assertions\f[R]
disable balance assertion checks (note: does not disable balance disable balance assertion checks (note: does not disable balance
assignments) assignments)
.TP .TP
\f[V]-s --strict\f[R] \f[CR]-s --strict\f[R]
do extra error checking (check that all posted accounts are declared) do extra error checking (check that all posted accounts are declared)
.SS General reporting options .SS General reporting options
.TP .TP
\f[V]-b --begin=DATE\f[R] \f[CR]-b --begin=DATE\f[R]
include postings/txns on or after this date (will be adjusted to include postings/txns on or after this date (will be adjusted to
preceding subperiod start when using a report interval) preceding subperiod start when using a report interval)
.TP .TP
\f[V]-e --end=DATE\f[R] \f[CR]-e --end=DATE\f[R]
include postings/txns before this date (will be adjusted to following include postings/txns before this date (will be adjusted to following
subperiod end when using a report interval) subperiod end when using a report interval)
.TP .TP
\f[V]-D --daily\f[R] \f[CR]-D --daily\f[R]
multiperiod/multicolumn report by day multiperiod/multicolumn report by day
.TP .TP
\f[V]-W --weekly\f[R] \f[CR]-W --weekly\f[R]
multiperiod/multicolumn report by week multiperiod/multicolumn report by week
.TP .TP
\f[V]-M --monthly\f[R] \f[CR]-M --monthly\f[R]
multiperiod/multicolumn report by month multiperiod/multicolumn report by month
.TP .TP
\f[V]-Q --quarterly\f[R] \f[CR]-Q --quarterly\f[R]
multiperiod/multicolumn report by quarter multiperiod/multicolumn report by quarter
.TP .TP
\f[V]-Y --yearly\f[R] \f[CR]-Y --yearly\f[R]
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
.TP .TP
\f[V]-p --period=PERIODEXP\f[R] \f[CR]-p --period=PERIODEXP\f[R]
set start date, end date, and/or reporting interval all at once using set start date, end date, and/or reporting interval all at once using
period expressions syntax period expressions syntax
.TP .TP
\f[V]--date2\f[R] \f[CR]--date2\f[R]
match the secondary date instead (see command help for other effects) match the secondary date instead (see command help for other effects)
.TP .TP
\f[V]--today=DATE\f[R] \f[CR]--today=DATE\f[R]
override today\[aq]s date (affects relative smart dates, for override today\[aq]s date (affects relative smart dates, for
tests/examples) tests/examples)
.TP .TP
\f[V]-U --unmarked\f[R] \f[CR]-U --unmarked\f[R]
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
.TP .TP
\f[V]-P --pending\f[R] \f[CR]-P --pending\f[R]
include only pending postings/txns include only pending postings/txns
.TP .TP
\f[V]-C --cleared\f[R] \f[CR]-C --cleared\f[R]
include only cleared postings/txns include only cleared postings/txns
.TP .TP
\f[V]-R --real\f[R] \f[CR]-R --real\f[R]
include only non-virtual postings include only non-virtual postings
.TP .TP
\f[V]-NUM --depth=NUM\f[R] \f[CR]-NUM --depth=NUM\f[R]
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
.TP .TP
\f[V]-E --empty\f[R] \f[CR]-E --empty\f[R]
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
.TP .TP
\f[V]-B --cost\f[R] \f[CR]-B --cost\f[R]
convert amounts to their cost/selling amount at transaction time convert amounts to their cost/selling amount at transaction time
.TP .TP
\f[V]-V --market\f[R] \f[CR]-V --market\f[R]
convert amounts to their market value in default valuation commodities convert amounts to their market value in default valuation commodities
.TP .TP
\f[V]-X --exchange=COMM\f[R] \f[CR]-X --exchange=COMM\f[R]
convert amounts to their market value in commodity COMM convert amounts to their market value in commodity COMM
.TP .TP
\f[V]--value\f[R] \f[CR]--value\f[R]
convert amounts to cost or market value, more flexibly than -B/-V/-X convert amounts to cost or market value, more flexibly than -B/-V/-X
.TP .TP
\f[V]--infer-equity\f[R] \f[CR]--infer-equity\f[R]
infer conversion equity postings from costs infer conversion equity postings from costs
.TP .TP
\f[V]--infer-costs\f[R] \f[CR]--infer-costs\f[R]
infer costs from conversion equity postings infer costs from conversion equity postings
.TP .TP
\f[V]--infer-market-prices\f[R] \f[CR]--infer-market-prices\f[R]
use costs as additional market prices, as if they were P directives use costs as additional market prices, as if they were P directives
.TP .TP
\f[V]--forecast\f[R] \f[CR]--forecast\f[R]
generate transactions from periodic rules, generate transactions from periodic rules,
between the latest recorded txn and 6 months from today, between the latest recorded txn and 6 months from today,
or during the specified PERIOD (= is required). or during the specified PERIOD (= is required).
Auto posting rules will be applied to these transactions as well. Auto posting rules will be applied to these transactions as well.
Also, in hledger-ui make future-dated transactions visible. Also, in hledger-ui make future-dated transactions visible.
.TP .TP
\f[V]--auto\f[R] \f[CR]--auto\f[R]
generate extra postings by applying auto posting rules to all txns (not generate extra postings by applying auto posting rules to all txns (not
just forecast txns) just forecast txns)
.TP .TP
\f[V]--verbose-tags\f[R] \f[CR]--verbose-tags\f[R]
add visible tags indicating transactions or postings which have been add visible tags indicating transactions or postings which have been
generated/modified generated/modified
.TP .TP
\f[V]--commodity-style\f[R] \f[CR]--commodity-style\f[R]
Override the commodity style in the output for the specified commodity. Override the commodity style in the output for the specified commodity.
For example \[aq]EUR1.000,00\[aq]. For example \[aq]EUR1.000,00\[aq].
.TP .TP
\f[V]--color=WHEN (or --colour=WHEN)\f[R] \f[CR]--color=WHEN (or --colour=WHEN)\f[R]
Should color-supporting commands use ANSI color codes in text output. Should color-supporting commands use ANSI color codes in text output.
\[aq]auto\[aq] (default): whenever stdout seems to be a color-supporting \[aq]auto\[aq] (default): whenever stdout seems to be a color-supporting
terminal. terminal.
@ -233,7 +229,7 @@ into \[aq]less -R\[aq].
\[aq]never\[aq] or \[aq]no\[aq]: never. \[aq]never\[aq] or \[aq]no\[aq]: never.
A NO_COLOR environment variable overrides this. A NO_COLOR environment variable overrides this.
.TP .TP
\f[V]--pretty[=WHEN]\f[R] \f[CR]--pretty[=WHEN]\f[R]
Show prettier output, e.g. Show prettier output, e.g.
using unicode box-drawing characters. using unicode box-drawing characters.
Accepts \[aq]yes\[aq] (the default) or \[aq]no\[aq] (\[aq]y\[aq], Accepts \[aq]yes\[aq] (the default) or \[aq]no\[aq] (\[aq]y\[aq],
@ -246,7 +242,6 @@ last one takes precedence.
.PP .PP
Some reporting options can also be written as query arguments. Some reporting options can also be written as query arguments.
.SH MOUSE .SH MOUSE
.PP
In most modern terminals, you can navigate through the screens with a In most modern terminals, you can navigate through the screens with a
mouse or touchpad: mouse or touchpad:
.IP \[bu] 2 .IP \[bu] 2
@ -256,166 +251,159 @@ Click on list items to go deeper
.IP \[bu] 2 .IP \[bu] 2
Click on the left margin (column 0) to go back. Click on the left margin (column 0) to go back.
.SH KEYS .SH KEYS
.PP
Keyboard gives more control. Keyboard gives more control.
.PP .PP
\f[V]?\f[R] shows a help dialog listing all keys. \f[CR]?\f[R] shows a help dialog listing all keys.
(Some of these also appear in the quick help at the bottom of each (Some of these also appear in the quick help at the bottom of each
screen.) screen.)
Press \f[V]?\f[R] again (or \f[V]ESCAPE\f[R], or \f[V]LEFT\f[R], or Press \f[CR]?\f[R] again (or \f[CR]ESCAPE\f[R], or \f[CR]LEFT\f[R], or
\f[V]q\f[R]) to close it. \f[CR]q\f[R]) to close it.
The following keys work on most screens: The following keys work on most screens:
.PP .PP
The cursor keys navigate: \f[V]RIGHT\f[R] or \f[V]ENTER\f[R] goes The cursor keys navigate: \f[CR]RIGHT\f[R] or \f[CR]ENTER\f[R] goes
deeper, \f[V]LEFT\f[R] returns to the previous screen, deeper, \f[CR]LEFT\f[R] returns to the previous screen,
\f[V]UP\f[R]/\f[V]DOWN\f[R]/\f[V]PGUP\f[R]/\f[V]PGDN\f[R]/\f[V]HOME\f[R]/\f[V]END\f[R] \f[CR]UP\f[R]/\f[CR]DOWN\f[R]/\f[CR]PGUP\f[R]/\f[CR]PGDN\f[R]/\f[CR]HOME\f[R]/\f[CR]END\f[R]
move up and down through lists. move up and down through lists.
Emacs-style Emacs-style
(\f[V]CTRL-p\f[R]/\f[V]CTRL-n\f[R]/\f[V]CTRL-f\f[R]/\f[V]CTRL-b\f[R]) (\f[CR]CTRL-p\f[R]/\f[CR]CTRL-n\f[R]/\f[CR]CTRL-f\f[R]/\f[CR]CTRL-b\f[R])
and VI-style (\f[V]k\f[R],\f[V]j\f[R],\f[V]l\f[R],\f[V]h\f[R]) movement and VI-style (\f[CR]k\f[R],\f[CR]j\f[R],\f[CR]l\f[R],\f[CR]h\f[R])
keys are also supported. movement keys are also supported.
A tip: movement speed is limited by your keyboard repeat rate, to move A tip: movement speed is limited by your keyboard repeat rate, to move
faster you may want to adjust it. faster you may want to adjust it.
(If you\[aq]re on a mac, the karabiner app is one way to do that.) (If you\[aq]re on a mac, the karabiner app is one way to do that.)
.PP .PP
With shift pressed, the cursor keys adjust the report period, limiting With shift pressed, the cursor keys adjust the report period, limiting
the transactions to be shown (by default, all are shown). the transactions to be shown (by default, all are shown).
\f[V]SHIFT-DOWN/UP\f[R] steps downward and upward through these standard \f[CR]SHIFT-DOWN/UP\f[R] steps downward and upward through these
report period durations: year, quarter, month, week, day. standard report period durations: year, quarter, month, week, day.
Then, \f[V]SHIFT-LEFT/RIGHT\f[R] moves to the previous/next period. Then, \f[CR]SHIFT-LEFT/RIGHT\f[R] moves to the previous/next period.
\f[V]T\f[R] sets the report period to today. \f[CR]T\f[R] sets the report period to today.
With the \f[V]-w/--watch\f[R] option, when viewing a \[dq]current\[dq] With the \f[CR]-w/--watch\f[R] option, when viewing a \[dq]current\[dq]
period (the current day, week, month, quarter, or year), the period will period (the current day, week, month, quarter, or year), the period will
move automatically to track the current date. move automatically to track the current date.
To set a non-standard period, you can use \f[V]/\f[R] and a To set a non-standard period, you can use \f[CR]/\f[R] and a
\f[V]date:\f[R] query. \f[CR]date:\f[R] query.
.PP .PP
(Mac users: SHIFT-DOWN/UP keys do not work by default in Terminal, as of (Mac users: SHIFT-DOWN/UP keys do not work by default in Terminal, as of
MacOS Monterey. MacOS Monterey.
You can configure them as follows: open Terminal, press CMD-comma to You can configure them as follows: open Terminal, press CMD-comma to
open preferences, click Profiles, select your current terminal profile open preferences, click Profiles, select your current terminal profile
on the left, click Keyboard on the right, click + and add this for on the left, click Keyboard on the right, click + and add this for
Shift-Down: \f[V]\[rs]033[1;2B\f[R], click + and add this for Shift-Up: Shift-Down: \f[CR]\[rs]033[1;2B\f[R], click + and add this for Shift-Up:
\f[V]\[rs]033[1;2A\f[R]. \f[CR]\[rs]033[1;2A\f[R].
Press the Escape key to enter the \f[V]\[rs]033\f[R] part, you can\[aq]t Press the Escape key to enter the \f[CR]\[rs]033\f[R] part, you
type it directly.) can\[aq]t type it directly.)
.PP .PP
\f[V]/\f[R] lets you set a general filter query limiting the data shown, \f[CR]/\f[R] lets you set a general filter query limiting the data
using the same query terms as in hledger and hledger-web. shown, using the same query terms as in hledger and hledger-web.
While editing the query, you can use CTRL-a/e/d/k, BS, cursor keys; While editing the query, you can use CTRL-a/e/d/k, BS, cursor keys;
press \f[V]ENTER\f[R] to set it, or \f[V]ESCAPE\f[R]to cancel. press \f[CR]ENTER\f[R] to set it, or \f[CR]ESCAPE\f[R]to cancel.
There are also keys for quickly adjusting some common filters like There are also keys for quickly adjusting some common filters like
account depth and transaction status (see below). account depth and transaction status (see below).
\f[V]BACKSPACE\f[R] or \f[V]DELETE\f[R] removes all filters, showing all \f[CR]BACKSPACE\f[R] or \f[CR]DELETE\f[R] removes all filters, showing
transactions. all transactions.
.PP .PP
As mentioned above, by default hledger-ui hides future transactions - As mentioned above, by default hledger-ui hides future transactions -
both ordinary transactions recorded in the journal, and periodic both ordinary transactions recorded in the journal, and periodic
transactions generated by rule. transactions generated by rule.
\f[V]F\f[R] toggles forecast mode, in which future/forecasted \f[CR]F\f[R] toggles forecast mode, in which future/forecasted
transactions are shown. transactions are shown.
.PP .PP
\f[V]ESCAPE\f[R] resets the UI state and jumps back to the top screen, \f[CR]ESCAPE\f[R] resets the UI state and jumps back to the top screen,
restoring the app\[aq]s initial state at startup. restoring the app\[aq]s initial state at startup.
Or, it cancels minibuffer data entry or the help dialog. Or, it cancels minibuffer data entry or the help dialog.
.PP .PP
\f[V]CTRL-l\f[R] redraws the screen and centers the selection if \f[CR]CTRL-l\f[R] redraws the screen and centers the selection if
possible (selections near the top won\[aq]t be centered, since we possible (selections near the top won\[aq]t be centered, since we
don\[aq]t scroll above the top). don\[aq]t scroll above the top).
.PP .PP
\f[V]g\f[R] reloads from the data file(s) and updates the current screen \f[CR]g\f[R] reloads from the data file(s) and updates the current
and any previous screens. screen and any previous screens.
(With large files, this could cause a noticeable pause.) (With large files, this could cause a noticeable pause.)
.PP .PP
\f[V]I\f[R] toggles balance assertion checking. \f[CR]I\f[R] toggles balance assertion checking.
Disabling balance assertions temporarily can be useful for Disabling balance assertions temporarily can be useful for
troubleshooting. troubleshooting.
.PP .PP
\f[V]a\f[R] runs command-line hledger\[aq]s add command, and reloads the \f[CR]a\f[R] runs command-line hledger\[aq]s add command, and reloads
updated file. the updated file.
This allows some basic data entry. This allows some basic data entry.
.PP .PP
\f[V]A\f[R] is like \f[V]a\f[R], but runs the hledger-iadd tool, which \f[CR]A\f[R] is like \f[CR]a\f[R], but runs the hledger-iadd tool, which
provides a terminal interface. provides a terminal interface.
This key will be available if \f[V]hledger-iadd\f[R] is installed in This key will be available if \f[CR]hledger-iadd\f[R] is installed in
$path. $path.
.PP .PP
\f[V]E\f[R] runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default \f[CR]E\f[R] runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default
(\f[V]emacsclient -a \[dq]\[dq] -nw\f[R]) on the journal file. (\f[CR]emacsclient -a \[dq]\[dq] -nw\f[R]) on the journal file.
With some editors (emacs, vi), the cursor will be positioned at the With some editors (emacs, vi), the cursor will be positioned at the
current transaction when invoked from the register and transaction current transaction when invoked from the register and transaction
screens, and at the error location (if possible) when invoked from the screens, and at the error location (if possible) when invoked from the
error screen. error screen.
.PP .PP
\f[V]B\f[R] toggles cost mode, showing amounts converted to their \f[CR]B\f[R] toggles cost mode, showing amounts converted to their
cost\[aq]s commodity (see hledger manual > Cost reporting. cost\[aq]s commodity (see hledger manual > Cost reporting.
.PP .PP
\f[V]V\f[R] toggles value mode, showing amounts converted to their \f[CR]V\f[R] toggles value mode, showing amounts converted to their
market value (see hledger manual > Valuation flag). market value (see hledger manual > Valuation flag).
More specifically, More specifically,
.IP "1." 3 .IP "1." 3
By default, the \f[V]V\f[R] key toggles showing end value By default, the \f[CR]V\f[R] key toggles showing end value
(\f[V]--value=end\f[R]) on or off. (\f[CR]--value=end\f[R]) on or off.
The valuation date will be the report end date if specified, otherwise The valuation date will be the report end date if specified, otherwise
today. today.
.IP "2." 3 .IP "2." 3
If you started hledger-ui with some other valuation (such as If you started hledger-ui with some other valuation (such as
\f[V]--value=then,EUR\f[R]), the \f[V]V\f[R] key toggles that off or on. \f[CR]--value=then,EUR\f[R]), the \f[CR]V\f[R] key toggles that off or
on.
.PP .PP
Cost/value tips: - When showing end value, you can change the report end Cost/value tips: - When showing end value, you can change the report end
date without restarting, by pressing \f[V]/\f[R] and adding a query like date without restarting, by pressing \f[CR]/\f[R] and adding a query
\f[V]date:..YYYY-MM-DD\f[R]. like \f[CR]date:..YYYY-MM-DD\f[R].
- Either cost mode, or value mode, can be active, but not both at once. - Either cost mode, or value mode, can be active, but not both at once.
Cost mode takes precedence. Cost mode takes precedence.
- There\[aq]s not yet any visual indicator that cost or value mode is - There\[aq]s not yet any visual indicator that cost or value mode is
active, other than the amount values. active, other than the amount values.
.PP .PP
\f[V]q\f[R] quits the application. \f[CR]q\f[R] quits the application.
.PP .PP
Additional screen-specific keys are described below. Additional screen-specific keys are described below.
.SH SCREENS .SH SCREENS
.PP
At startup, hledger-ui shows a menu screen by default. At startup, hledger-ui shows a menu screen by default.
From here you can navigate to other screens using the cursor keys: From here you can navigate to other screens using the cursor keys:
\f[V]UP\f[R]/\f[V]DOWN\f[R] to select, \f[V]RIGHT\f[R] to move to the \f[CR]UP\f[R]/\f[CR]DOWN\f[R] to select, \f[CR]RIGHT\f[R] to move to the
selected screen, \f[V]LEFT\f[R] to return to the previous screen. selected screen, \f[CR]LEFT\f[R] to return to the previous screen.
Or you can use \f[V]ESC\f[R] to return directly to the top menu screen. Or you can use \f[CR]ESC\f[R] to return directly to the top menu screen.
.PP .PP
You can also use a command line flag to specific a different startup You can also use a command line flag to specific a different startup
screen (\f[V]--cs\f[R], \f[V]--bs\f[R], \f[V]--is\f[R], \f[V]--all\f[R], screen (\f[CR]--cs\f[R], \f[CR]--bs\f[R], \f[CR]--is\f[R],
or \f[V]--register=ACCT\f[R]). \f[CR]--all\f[R], or \f[CR]--register=ACCT\f[R]).
.SS Menu .SS Menu
.PP
This is the top-most screen. This is the top-most screen.
From here you can navigate to several screens listing accounts of From here you can navigate to several screens listing accounts of
various types. various types.
Note some of these may not show anything until you have configured Note some of these may not show anything until you have configured
account types. account types.
.SS Cash accounts .SS Cash accounts
.PP
This screen shows \[dq]cash\[dq] (ie, liquid asset) accounts (like This screen shows \[dq]cash\[dq] (ie, liquid asset) accounts (like
\f[V]hledger balancesheet type:c\f[R]). \f[CR]hledger balancesheet type:c\f[R]).
It always shows balances (historical ending balances on the date shown It always shows balances (historical ending balances on the date shown
in the title line). in the title line).
.SS Balance sheet accounts .SS Balance sheet accounts
.PP
This screen shows asset, liability and equity accounts (like This screen shows asset, liability and equity accounts (like
\f[V]hledger balancesheetequity\f[R]). \f[CR]hledger balancesheetequity\f[R]).
It always shows balances. It always shows balances.
.SS Income statement accounts .SS Income statement accounts
.PP
This screen shows revenue and expense accounts (like This screen shows revenue and expense accounts (like
\f[V]hledger incomestatement\f[R]). \f[CR]hledger incomestatement\f[R]).
It always shows changes (balance changes in the period shown in the It always shows changes (balance changes in the period shown in the
title line). title line).
.SS All accounts .SS All accounts
.PP
This screen shows all accounts in your journal (unless filtered by a This screen shows all accounts in your journal (unless filtered by a
query; like \f[V]hledger balance\f[R]). query; like \f[CR]hledger balance\f[R]).
It shows balances by default; you can toggle showing changes with the It shows balances by default; you can toggle showing changes with the
\f[V]H\f[R] key. \f[CR]H\f[R] key.
.SS Register .SS Register
.PP
This screen shows the transactions affecting a particular account. This screen shows the transactions affecting a particular account.
Each line represents one transaction, and shows: Each line represents one transaction, and shows:
.IP \[bu] 2 .IP \[bu] 2
@ -427,7 +415,7 @@ the overall change to the current account\[aq]s balance; positive for an
inflow to this account, negative for an outflow. inflow to this account, negative for an outflow.
.IP \[bu] 2 .IP \[bu] 2
the running total after the transaction. the running total after the transaction.
With the \f[V]H\f[R] key you can toggle between With the \f[CR]H\f[R] key you can toggle between
.RS 2 .RS 2
.IP \[bu] 2 .IP \[bu] 2
the period total, which is from just the transactions displayed the period total, which is from just the transactions displayed
@ -441,7 +429,7 @@ bank\[aq]s website, eg) if not disturbed by a query.
.PP .PP
Note, this screen combines each transaction\[aq]s in-period postings to Note, this screen combines each transaction\[aq]s in-period postings to
a single line item, dated with the earliest in-period transaction or a single line item, dated with the earliest in-period transaction or
posting date (like hledger\[aq]s \f[V]aregister\f[R]). posting date (like hledger\[aq]s \f[CR]aregister\f[R]).
So custom posting dates can cause the running balance to be temporarily So custom posting dates can cause the running balance to be temporarily
inaccurate. inaccurate.
(See hledger manual > aregister and posting dates.) (See hledger manual > aregister and posting dates.)
@ -452,25 +440,24 @@ in list mode but this account has subaccounts which are not shown due to
a depth limit. a depth limit.
In other words, the register always shows the transactions contributing In other words, the register always shows the transactions contributing
to the balance shown on the accounts screen. to the balance shown on the accounts screen.
Tree mode/list mode can be toggled with \f[V]t\f[R] here also. Tree mode/list mode can be toggled with \f[CR]t\f[R] here also.
.PP .PP
\f[V]U\f[R] toggles filtering by unmarked status, showing or hiding \f[CR]U\f[R] toggles filtering by unmarked status, showing or hiding
unmarked transactions. unmarked transactions.
Similarly, \f[V]P\f[R] toggles pending transactions, and \f[V]C\f[R] Similarly, \f[CR]P\f[R] toggles pending transactions, and \f[CR]C\f[R]
toggles cleared transactions. toggles cleared transactions.
(By default, transactions with all statuses are shown; if you activate (By default, transactions with all statuses are shown; if you activate
one or two status filters, only those transactions are shown; and if you one or two status filters, only those transactions are shown; and if you
activate all three, the filter is removed.) activate all three, the filter is removed.)
.PP .PP
\f[V]R\f[R] toggles real mode, in which virtual postings are ignored. \f[CR]R\f[R] toggles real mode, in which virtual postings are ignored.
.PP .PP
\f[V]z\f[R] toggles nonzero mode, in which only transactions posting a \f[CR]z\f[R] toggles nonzero mode, in which only transactions posting a
nonzero change are shown (hledger-ui shows zero items by default, unlike nonzero change are shown (hledger-ui shows zero items by default, unlike
command-line hledger). command-line hledger).
.PP .PP
Press \f[V]RIGHT\f[R] to view the selected transaction in detail. Press \f[CR]RIGHT\f[R] to view the selected transaction in detail.
.SS Transaction .SS Transaction
.PP
This screen shows a single transaction, as a general journal entry, This screen shows a single transaction, as a general journal entry,
similar to hledger\[aq]s print command and journal format similar to hledger\[aq]s print command and journal format
(hledger_journal(5)). (hledger_journal(5)).
@ -480,7 +467,7 @@ description, comments, along with all of its account postings are shown.
Simple transactions have two postings, but there can be more (or in Simple transactions have two postings, but there can be more (or in
certain cases, fewer). certain cases, fewer).
.PP .PP
\f[V]UP\f[R] and \f[V]DOWN\f[R] will step through all transactions \f[CR]UP\f[R] and \f[CR]DOWN\f[R] will step through all transactions
listed in the previous account register screen. listed in the previous account register screen.
In the title bar, the numbers in parentheses show your position within In the title bar, the numbers in parentheses show your position within
that account register. that account register.
@ -490,19 +477,18 @@ The #N number preceding them is the transaction\[aq]s position within
the complete unfiltered journal, which is a more stable id (at least the complete unfiltered journal, which is a more stable id (at least
until the next reload). until the next reload).
.PP .PP
On this screen (and the register screen), the \f[V]E\f[R] key will open On this screen (and the register screen), the \f[CR]E\f[R] key will open
your text editor with the cursor positioned at the current transaction your text editor with the cursor positioned at the current transaction
if possible. if possible.
.PP .PP
This screen has a limitation with showing file updates: it will not show This screen has a limitation with showing file updates: it will not show
them until you exit and re-enter it. them until you exit and re-enter it.
So eg to see the effect of using the \f[V]E\f[R] key, currently you So eg to see the effect of using the \f[CR]E\f[R] key, currently you
must: - press \f[V]E\f[R], edit and save the file, then exit the editor, must: - press \f[CR]E\f[R], edit and save the file, then exit the
returning to hledger-ui - press \f[V]g\f[R] to reload the file (or use editor, returning to hledger-ui - press \f[CR]g\f[R] to reload the file
\f[V]-w/--watch\f[R] mode) - press \f[V]LEFT\f[R] then \f[V]RIGHT\f[R] (or use \f[CR]-w/--watch\f[R] mode) - press \f[CR]LEFT\f[R] then
to exit and re-enter the transaction screen. \f[CR]RIGHT\f[R] to exit and re-enter the transaction screen.
.SS Error .SS Error
.PP
This screen will appear if there is a problem, such as a parse error, This screen will appear if there is a problem, such as a parse error,
when you press g to reload. when you press g to reload.
Once you have fixed the problem, press g again to reload and resume Once you have fixed the problem, press g again to reload and resume
@ -510,9 +496,8 @@ normal operation.
(Or, you can press escape to cancel the reload attempt.) (Or, you can press escape to cancel the reload attempt.)
.SH TIPS .SH TIPS
.SS Watch mode .SS Watch mode
.PP
One of hledger-ui\[aq]s best features is the auto-reloading One of hledger-ui\[aq]s best features is the auto-reloading
\f[V]-w/--watch\f[R] mode. \f[CR]-w/--watch\f[R] mode.
With this flag, it will update the display automatically whenever With this flag, it will update the display automatically whenever
changes are saved to the data files. changes are saved to the data files.
.PP .PP
@ -521,11 +506,9 @@ A good workflow is to have your bank\[aq]s online register open in a
browser window, for reference; the journal file open in an editor browser window, for reference; the journal file open in an editor
window; and hledger-ui in watch mode in a terminal window, eg: window; and hledger-ui in watch mode in a terminal window, eg:
.IP .IP
.nf .EX
\f[C]
$ hledger-ui --watch --register checking -C $ hledger-ui --watch --register checking -C
\f[R] .EE
.fi
.PP .PP
As you mark things cleared in the editor, you can see the effect As you mark things cleared in the editor, you can see the effect
immediately without having to context switch. immediately without having to context switch.
@ -533,7 +516,7 @@ This leaves more mental bandwidth for your accounting.
Of course you can still interact with hledger-ui when needed, eg to Of course you can still interact with hledger-ui when needed, eg to
toggle cleared mode, or to explore the history. toggle cleared mode, or to explore the history.
.PP .PP
There are currently some limitations with \f[V]--watch\f[R]: There are currently some limitations with \f[CR]--watch\f[R]:
.PP .PP
It may not work correctly for you, depending on platform or system It may not work correctly for you, depending on platform or system
configuration. configuration.
@ -541,49 +524,46 @@ configuration.
.PP .PP
At least on mac, there can be a slow build-up of CPU usage over time, At least on mac, there can be a slow build-up of CPU usage over time,
until the program is restarted (or, suspending and restarting with until the program is restarted (or, suspending and restarting with
\f[V]CTRL-z\f[R] \f[V]fg\f[R] may be enough). \f[CR]CTRL-z\f[R] \f[CR]fg\f[R] may be enough).
.PP .PP
It will not detect file changes made by certain editors, such as It will not detect file changes made by certain editors, such as
Jetbrains IDEs or \f[V]gedit\f[R], or on certain less common Jetbrains IDEs or \f[CR]gedit\f[R], or on certain less common
filesystems. filesystems.
(To work around, press \f[V]g\f[R] to reload manually, or try (To work around, press \f[CR]g\f[R] to reload manually, or try
#1617\[aq]s \f[V]fs.inotify.max_user_watches\f[R] workaround and let us #1617\[aq]s \f[CR]fs.inotify.max_user_watches\f[R] workaround and let us
know.) know.)
.PP .PP
If you are viewing files mounted from another machine, the system clocks If you are viewing files mounted from another machine, the system clocks
on both machines should be roughly in agreement. on both machines should be roughly in agreement.
.SS Debug output .SS Debug output
.PP You can add \f[CR]--debug[=N]\f[R] to the command line to log debug
You can add \f[V]--debug[=N]\f[R] to the command line to log debug
output. output.
This will be logged to the file \f[V]hledger-ui.log\f[R] in the current This will be logged to the file \f[CR]hledger-ui.log\f[R] in the current
directory. directory.
N ranges from 1 (least output, the default) to 9 (maximum output). N ranges from 1 (least output, the default) to 9 (maximum output).
.SH ENVIRONMENT .SH ENVIRONMENT
.PP
\f[B]COLUMNS\f[R] The screen width to use. \f[B]COLUMNS\f[R] The screen width to use.
Default: the full terminal width. Default: the full terminal width.
.PP .PP
\f[B]LEDGER_FILE\f[R] The main journal file to use when not specified \f[B]LEDGER_FILE\f[R] The main journal file to use when not specified
with \f[V]-f/--file\f[R]. with \f[CR]-f/--file\f[R].
Default: \f[V]$HOME/.hledger.journal\f[R]. Default: \f[CR]$HOME/.hledger.journal\f[R].
.SH BUGS .SH BUGS
.PP
We welcome bug reports in the hledger issue tracker (shortcut: We welcome bug reports in the hledger issue tracker (shortcut:
http://bugs.hledger.org), or on the #hledger chat or hledger mail list http://bugs.hledger.org), or on the #hledger chat or hledger mail list
(https://hledger.org/support). (https://hledger.org/support).
.PP .PP
Some known issues: Some known issues:
.PP .PP
\f[V]-f-\f[R] doesn\[aq]t work (hledger-ui can\[aq]t read from stdin). \f[CR]-f-\f[R] doesn\[aq]t work (hledger-ui can\[aq]t read from stdin).
.PP .PP
If you press \f[V]g\f[R] with large files, there could be a noticeable If you press \f[CR]g\f[R] with large files, there could be a noticeable
pause. pause.
.PP .PP
The Transaction screen does not update from file changes until you exit The Transaction screen does not update from file changes until you exit
and re-endter it (see SCREENS > Transaction above). and re-endter it (see SCREENS > Transaction above).
.PP .PP
\f[V]--watch\f[R] is not yet fully robust on all platforms (see Watch \f[CR]--watch\f[R] is not yet fully robust on all platforms (see Watch
mode above). mode above).

View File

@ -537,4 +537,4 @@ LICENSE
SEE ALSO SEE ALSO
hledger(1), hledger-ui(1), hledger-web(1), ledger(1) hledger(1), hledger-ui(1), hledger-web(1), ledger(1)
hledger-ui-1.31.99 November 2023 HLEDGER-UI(1) hledger-ui-1.31.99 December 2023 HLEDGER-UI(1)

View File

@ -1,2 +1,2 @@
m4_dnl Date to show in man pages. Updated by "Shake manuals" m4_dnl Date to show in man pages. Updated by "Shake manuals"
m4_define({{_monthyear_}}, {{November 2023}})m4_dnl m4_define({{_monthyear_}}, {{December 2023}})m4_dnl

View File

@ -1,20 +1,17 @@
.TH "HLEDGER-WEB" "1" "November 2023" "hledger-web-1.31.99 " "hledger User Manuals" .TH "HLEDGER-WEB" "1" "December 2023" "hledger-web-1.31.99 " "hledger User Manuals"
.SH NAME .SH NAME
.PP
hledger-web - robust, friendly plain text accounting (Web version) hledger-web - robust, friendly plain text accounting (Web version)
.SH SYNOPSIS .SH SYNOPSIS
.PP \f[CR]hledger-web [--serve|--serve-api] [OPTS] [ARGS]\f[R]
\f[V]hledger-web [--serve|--serve-api] [OPTS] [ARGS]\f[R]
.PD 0 .PD 0
.P .P
.PD .PD
\f[V]hledger web -- [--serve|--serve-api] [OPTS] [ARGS]\f[R] \f[CR]hledger web -- [--serve|--serve-api] [OPTS] [ARGS]\f[R]
.SH DESCRIPTION .SH DESCRIPTION
.PP
This manual is for hledger\[aq]s web interface, version 1.31.99. This manual is for hledger\[aq]s web interface, version 1.31.99.
See also the hledger manual for common concepts and file formats. See also the hledger manual for common concepts and file formats.
.PP .PP
@ -40,9 +37,9 @@ instance, it writes a numbered backup of the main journal file (only) on
every edit. every edit.
.PP .PP
Like hledger, it reads from (and appends to) a journal file specified by Like hledger, it reads from (and appends to) a journal file specified by
the \f[V]LEDGER_FILE\f[R] environment variable (defaulting to the \f[CR]LEDGER_FILE\f[R] environment variable (defaulting to
\f[V]$HOME/.hledger.journal\f[R]); or you can specify files with \f[CR]$HOME/.hledger.journal\f[R]); or you can specify files with
\f[V]-f\f[R] options. \f[CR]-f\f[R] options.
It can also read timeclock files, timedot files, or any CSV/SSV/TSV file It can also read timeclock files, timedot files, or any CSV/SSV/TSV file
with a date field. with a date field.
(See hledger(1) -> Input for details.) (See hledger(1) -> Input for details.)
@ -54,15 +51,14 @@ show the app if possible, and the app exits automatically after two
minutes of inactivity (no requests received and no open browser windows minutes of inactivity (no requests received and no open browser windows
viewing it). viewing it).
.IP \[bu] 2 .IP \[bu] 2
With \f[V]--serve\f[R]: the app runs without stopping, and without With \f[CR]--serve\f[R]: the app runs without stopping, and without
opening a browser. opening a browser.
.IP \[bu] 2 .IP \[bu] 2
With \f[V]--serve-api\f[R]: only the JSON API is served. With \f[CR]--serve-api\f[R]: only the JSON API is served.
.PP .PP
In all cases hledger-web runs as a foreground process, logging requests In all cases hledger-web runs as a foreground process, logging requests
to stdout. to stdout.
.SH OPTIONS .SH OPTIONS
.PP
Command-line options and arguments may be used to set an initial filter Command-line options and arguments may be used to set an initial filter
on the data. on the data.
These filter options are not shown in the web UI, but it will be applied These filter options are not shown in the web UI, but it will be applied
@ -70,84 +66,82 @@ in addition to any search query entered there.
.PP .PP
hledger-web provides the following options: hledger-web provides the following options:
.TP .TP
\f[V]--serve\f[R] \f[CR]--serve\f[R]
serve and log requests, don\[aq]t browse or auto-exit after timeout serve and log requests, don\[aq]t browse or auto-exit after timeout
.TP .TP
\f[V]--serve-api\f[R] \f[CR]--serve-api\f[R]
like --serve, but serve only the JSON web API, without the server-side like --serve, but serve only the JSON web API, without the server-side
web UI web UI
.TP .TP
\f[V]--host=IPADDR\f[R] \f[CR]--host=IPADDR\f[R]
listen on this IP address (default: 127.0.0.1) listen on this IP address (default: 127.0.0.1)
.TP .TP
\f[V]--port=PORT\f[R] \f[CR]--port=PORT\f[R]
listen on this TCP port (default: 5000) listen on this TCP port (default: 5000)
.TP .TP
\f[V]--socket=SOCKETFILE\f[R] \f[CR]--socket=SOCKETFILE\f[R]
use a unix domain socket file to listen for requests instead of a TCP use a unix domain socket file to listen for requests instead of a TCP
socket. socket.
Implies \f[V]--serve\f[R]. Implies \f[CR]--serve\f[R].
It can only be used if the operating system can provide this type of It can only be used if the operating system can provide this type of
socket. socket.
.TP .TP
\f[V]--base-url=URL\f[R] \f[CR]--base-url=URL\f[R]
set the base url (default: http://IPADDR:PORT). set the base url (default: http://IPADDR:PORT).
Note: affects url generation but not route parsing. Note: affects url generation but not route parsing.
Can be useful if running behind a reverse web proxy that does path Can be useful if running behind a reverse web proxy that does path
rewriting. rewriting.
.TP .TP
\f[V]--file-url=URL\f[R] \f[CR]--file-url=URL\f[R]
set the static files url (default: BASEURL/static). set the static files url (default: BASEURL/static).
hledger-web normally serves static files itself, but if you wanted to hledger-web normally serves static files itself, but if you wanted to
serve them from another server for efficiency, you would set the url serve them from another server for efficiency, you would set the url
with this. with this.
.TP .TP
\f[V]--allow=view|add|edit\f[R] \f[CR]--allow=view|add|edit\f[R]
set the user\[aq]s access level for changing data (default: set the user\[aq]s access level for changing data (default:
\f[V]add\f[R]). \f[CR]add\f[R]).
It also accepts \f[V]sandstorm\f[R] for use on that platform (reads It also accepts \f[CR]sandstorm\f[R] for use on that platform (reads
permissions from the \f[V]X-Sandstorm-Permissions\f[R] request header). permissions from the \f[CR]X-Sandstorm-Permissions\f[R] request header).
.TP .TP
\f[V]--test\f[R] \f[CR]--test\f[R]
run hledger-web\[aq]s tests and exit. run hledger-web\[aq]s tests and exit.
hspec test runner args may follow a --, eg: hledger-web --test -- --help hspec test runner args may follow a --, eg: hledger-web --test -- --help
.PP .PP
By default the server listens on IP address 127.0.0.1, accessible only By default the server listens on IP address 127.0.0.1, accessible only
to local requests. to local requests.
You can use \f[V]--host\f[R] to change this, eg \f[V]--host 0.0.0.0\f[R] You can use \f[CR]--host\f[R] to change this, eg
to listen on all configured addresses. \f[CR]--host 0.0.0.0\f[R] to listen on all configured addresses.
.PP .PP
Similarly, use \f[V]--port\f[R] to set a TCP port other than 5000, eg if Similarly, use \f[CR]--port\f[R] to set a TCP port other than 5000, eg
you are running multiple hledger-web instances. if you are running multiple hledger-web instances.
.PP .PP
Both of these options are ignored when \f[V]--socket\f[R] is used. Both of these options are ignored when \f[CR]--socket\f[R] is used.
In this case, it creates an \f[V]AF_UNIX\f[R] socket file at the In this case, it creates an \f[CR]AF_UNIX\f[R] socket file at the
supplied path and uses that for communication. supplied path and uses that for communication.
This is an alternative way of running multiple hledger-web instances This is an alternative way of running multiple hledger-web instances
behind a reverse proxy that handles authentication for different users. behind a reverse proxy that handles authentication for different users.
The path can be derived in a predictable way, eg by using the username The path can be derived in a predictable way, eg by using the username
within the path. within the path.
As an example, \f[V]nginx\f[R] as reverse proxy can use the variable As an example, \f[CR]nginx\f[R] as reverse proxy can use the variable
\f[V]$remote_user\f[R] to derive a path from the username used in a HTTP \f[CR]$remote_user\f[R] to derive a path from the username used in a
basic authentication. HTTP basic authentication.
The following \f[V]proxy_pass\f[R] directive allows access to all The following \f[CR]proxy_pass\f[R] directive allows access to all
\f[V]hledger-web\f[R] instances that created a socket in \f[CR]hledger-web\f[R] instances that created a socket in
\f[V]/tmp/hledger/\f[R]: \f[CR]/tmp/hledger/\f[R]:
.IP .IP
.nf .EX
\f[C]
proxy_pass http://unix:/tmp/hledger/${remote_user}.socket; proxy_pass http://unix:/tmp/hledger/${remote_user}.socket;
\f[R] .EE
.fi
.PP .PP
You can use \f[V]--base-url\f[R] to change the protocol, hostname, port You can use \f[CR]--base-url\f[R] to change the protocol, hostname, port
and path that appear in hyperlinks, useful eg for integrating and path that appear in hyperlinks, useful eg for integrating
hledger-web within a larger website. hledger-web within a larger website.
The default is \f[V]http://HOST:PORT/\f[R] using the server\[aq]s The default is \f[CR]http://HOST:PORT/\f[R] using the server\[aq]s
configured host address and TCP port (or \f[V]http://HOST\f[R] if PORT configured host address and TCP port (or \f[CR]http://HOST\f[R] if PORT
is 80). is 80).
.PP .PP
With \f[V]--file-url\f[R] you can set a different base url for static With \f[CR]--file-url\f[R] you can set a different base url for static
files, eg for better caching or cookie-less serving on high performance files, eg for better caching or cookie-less serving on high performance
websites. websites.
.PP .PP
@ -155,144 +149,144 @@ hledger-web also supports many of hledger\[aq]s general options (and the
hledger manual\[aq]s command line tips also apply here): hledger manual\[aq]s command line tips also apply here):
.SS General help options .SS General help options
.TP .TP
\f[V]-h --help\f[R] \f[CR]-h --help\f[R]
show general or COMMAND help show general or COMMAND help
.TP .TP
\f[V]--man\f[R] \f[CR]--man\f[R]
show general or COMMAND user manual with man show general or COMMAND user manual with man
.TP .TP
\f[V]--info\f[R] \f[CR]--info\f[R]
show general or COMMAND user manual with info show general or COMMAND user manual with info
.TP .TP
\f[V]--version\f[R] \f[CR]--version\f[R]
show general or ADDONCMD version show general or ADDONCMD version
.TP .TP
\f[V]--debug[=N]\f[R] \f[CR]--debug[=N]\f[R]
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
.SS General input options .SS General input options
.TP .TP
\f[V]-f FILE --file=FILE\f[R] \f[CR]-f FILE --file=FILE\f[R]
use a different input file. use a different input file.
For stdin, use - (default: \f[V]$LEDGER_FILE\f[R] or For stdin, use - (default: \f[CR]$LEDGER_FILE\f[R] or
\f[V]$HOME/.hledger.journal\f[R]) \f[CR]$HOME/.hledger.journal\f[R])
.TP .TP
\f[V]--rules-file=RULESFILE\f[R] \f[CR]--rules-file=RULESFILE\f[R]
Conversion rules file to use when reading CSV (default: FILE.rules) Conversion rules file to use when reading CSV (default: FILE.rules)
.TP .TP
\f[V]--separator=CHAR\f[R] \f[CR]--separator=CHAR\f[R]
Field separator to expect when reading CSV (default: \[aq],\[aq]) Field separator to expect when reading CSV (default: \[aq],\[aq])
.TP .TP
\f[V]--alias=OLD=NEW\f[R] \f[CR]--alias=OLD=NEW\f[R]
rename accounts named OLD to NEW rename accounts named OLD to NEW
.TP .TP
\f[V]--anon\f[R] \f[CR]--anon\f[R]
anonymize accounts and payees anonymize accounts and payees
.TP .TP
\f[V]--pivot FIELDNAME\f[R] \f[CR]--pivot FIELDNAME\f[R]
use some other field or tag for the account name use some other field or tag for the account name
.TP .TP
\f[V]-I --ignore-assertions\f[R] \f[CR]-I --ignore-assertions\f[R]
disable balance assertion checks (note: does not disable balance disable balance assertion checks (note: does not disable balance
assignments) assignments)
.TP .TP
\f[V]-s --strict\f[R] \f[CR]-s --strict\f[R]
do extra error checking (check that all posted accounts are declared) do extra error checking (check that all posted accounts are declared)
.SS General reporting options .SS General reporting options
.TP .TP
\f[V]-b --begin=DATE\f[R] \f[CR]-b --begin=DATE\f[R]
include postings/txns on or after this date (will be adjusted to include postings/txns on or after this date (will be adjusted to
preceding subperiod start when using a report interval) preceding subperiod start when using a report interval)
.TP .TP
\f[V]-e --end=DATE\f[R] \f[CR]-e --end=DATE\f[R]
include postings/txns before this date (will be adjusted to following include postings/txns before this date (will be adjusted to following
subperiod end when using a report interval) subperiod end when using a report interval)
.TP .TP
\f[V]-D --daily\f[R] \f[CR]-D --daily\f[R]
multiperiod/multicolumn report by day multiperiod/multicolumn report by day
.TP .TP
\f[V]-W --weekly\f[R] \f[CR]-W --weekly\f[R]
multiperiod/multicolumn report by week multiperiod/multicolumn report by week
.TP .TP
\f[V]-M --monthly\f[R] \f[CR]-M --monthly\f[R]
multiperiod/multicolumn report by month multiperiod/multicolumn report by month
.TP .TP
\f[V]-Q --quarterly\f[R] \f[CR]-Q --quarterly\f[R]
multiperiod/multicolumn report by quarter multiperiod/multicolumn report by quarter
.TP .TP
\f[V]-Y --yearly\f[R] \f[CR]-Y --yearly\f[R]
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
.TP .TP
\f[V]-p --period=PERIODEXP\f[R] \f[CR]-p --period=PERIODEXP\f[R]
set start date, end date, and/or reporting interval all at once using set start date, end date, and/or reporting interval all at once using
period expressions syntax period expressions syntax
.TP .TP
\f[V]--date2\f[R] \f[CR]--date2\f[R]
match the secondary date instead (see command help for other effects) match the secondary date instead (see command help for other effects)
.TP .TP
\f[V]--today=DATE\f[R] \f[CR]--today=DATE\f[R]
override today\[aq]s date (affects relative smart dates, for override today\[aq]s date (affects relative smart dates, for
tests/examples) tests/examples)
.TP .TP
\f[V]-U --unmarked\f[R] \f[CR]-U --unmarked\f[R]
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
.TP .TP
\f[V]-P --pending\f[R] \f[CR]-P --pending\f[R]
include only pending postings/txns include only pending postings/txns
.TP .TP
\f[V]-C --cleared\f[R] \f[CR]-C --cleared\f[R]
include only cleared postings/txns include only cleared postings/txns
.TP .TP
\f[V]-R --real\f[R] \f[CR]-R --real\f[R]
include only non-virtual postings include only non-virtual postings
.TP .TP
\f[V]-NUM --depth=NUM\f[R] \f[CR]-NUM --depth=NUM\f[R]
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
.TP .TP
\f[V]-E --empty\f[R] \f[CR]-E --empty\f[R]
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
.TP .TP
\f[V]-B --cost\f[R] \f[CR]-B --cost\f[R]
convert amounts to their cost/selling amount at transaction time convert amounts to their cost/selling amount at transaction time
.TP .TP
\f[V]-V --market\f[R] \f[CR]-V --market\f[R]
convert amounts to their market value in default valuation commodities convert amounts to their market value in default valuation commodities
.TP .TP
\f[V]-X --exchange=COMM\f[R] \f[CR]-X --exchange=COMM\f[R]
convert amounts to their market value in commodity COMM convert amounts to their market value in commodity COMM
.TP .TP
\f[V]--value\f[R] \f[CR]--value\f[R]
convert amounts to cost or market value, more flexibly than -B/-V/-X convert amounts to cost or market value, more flexibly than -B/-V/-X
.TP .TP
\f[V]--infer-equity\f[R] \f[CR]--infer-equity\f[R]
infer conversion equity postings from costs infer conversion equity postings from costs
.TP .TP
\f[V]--infer-costs\f[R] \f[CR]--infer-costs\f[R]
infer costs from conversion equity postings infer costs from conversion equity postings
.TP .TP
\f[V]--infer-market-prices\f[R] \f[CR]--infer-market-prices\f[R]
use costs as additional market prices, as if they were P directives use costs as additional market prices, as if they were P directives
.TP .TP
\f[V]--forecast\f[R] \f[CR]--forecast\f[R]
generate transactions from periodic rules, generate transactions from periodic rules,
between the latest recorded txn and 6 months from today, between the latest recorded txn and 6 months from today,
or during the specified PERIOD (= is required). or during the specified PERIOD (= is required).
Auto posting rules will be applied to these transactions as well. Auto posting rules will be applied to these transactions as well.
Also, in hledger-ui make future-dated transactions visible. Also, in hledger-ui make future-dated transactions visible.
.TP .TP
\f[V]--auto\f[R] \f[CR]--auto\f[R]
generate extra postings by applying auto posting rules to all txns (not generate extra postings by applying auto posting rules to all txns (not
just forecast txns) just forecast txns)
.TP .TP
\f[V]--verbose-tags\f[R] \f[CR]--verbose-tags\f[R]
add visible tags indicating transactions or postings which have been add visible tags indicating transactions or postings which have been
generated/modified generated/modified
.TP .TP
\f[V]--commodity-style\f[R] \f[CR]--commodity-style\f[R]
Override the commodity style in the output for the specified commodity. Override the commodity style in the output for the specified commodity.
For example \[aq]EUR1.000,00\[aq]. For example \[aq]EUR1.000,00\[aq].
.TP .TP
\f[V]--color=WHEN (or --colour=WHEN)\f[R] \f[CR]--color=WHEN (or --colour=WHEN)\f[R]
Should color-supporting commands use ANSI color codes in text output. Should color-supporting commands use ANSI color codes in text output.
\[aq]auto\[aq] (default): whenever stdout seems to be a color-supporting \[aq]auto\[aq] (default): whenever stdout seems to be a color-supporting
terminal. terminal.
@ -301,7 +295,7 @@ into \[aq]less -R\[aq].
\[aq]never\[aq] or \[aq]no\[aq]: never. \[aq]never\[aq] or \[aq]no\[aq]: never.
A NO_COLOR environment variable overrides this. A NO_COLOR environment variable overrides this.
.TP .TP
\f[V]--pretty[=WHEN]\f[R] \f[CR]--pretty[=WHEN]\f[R]
Show prettier output, e.g. Show prettier output, e.g.
using unicode box-drawing characters. using unicode box-drawing characters.
Accepts \[aq]yes\[aq] (the default) or \[aq]no\[aq] (\[aq]y\[aq], Accepts \[aq]yes\[aq] (the default) or \[aq]no\[aq] (\[aq]y\[aq],
@ -314,13 +308,12 @@ last one takes precedence.
.PP .PP
Some reporting options can also be written as query arguments. Some reporting options can also be written as query arguments.
.SH PERMISSIONS .SH PERMISSIONS
.PP
By default, hledger-web allows anyone who can reach it to view the By default, hledger-web allows anyone who can reach it to view the
journal and to add new transactions, but not to change existing data. journal and to add new transactions, but not to change existing data.
.PP .PP
You can restrict who can reach it by You can restrict who can reach it by
.IP \[bu] 2 .IP \[bu] 2
setting the IP address it listens on (see \f[V]--host\f[R] above). setting the IP address it listens on (see \f[CR]--host\f[R] above).
By default it listens on 127.0.0.1, accessible to all users on the local By default it listens on 127.0.0.1, accessible to all users on the local
machine. machine.
.IP \[bu] 2 .IP \[bu] 2
@ -330,27 +323,26 @@ custom firewall rules
.PP .PP
You can restrict what the users who reach it can do, by You can restrict what the users who reach it can do, by
.IP \[bu] 2 .IP \[bu] 2
using the \f[V]--capabilities=CAP[,CAP..]\f[R] flag when you start it, using the \f[CR]--capabilities=CAP[,CAP..]\f[R] flag when you start it,
enabling one or more of the following capabilities. enabling one or more of the following capabilities.
The default value is \f[V]view,add\f[R]: The default value is \f[CR]view,add\f[R]:
.RS 2 .RS 2
.IP \[bu] 2 .IP \[bu] 2
\f[V]view\f[R] - allows viewing the journal file and all included files \f[CR]view\f[R] - allows viewing the journal file and all included files
.IP \[bu] 2 .IP \[bu] 2
\f[V]add\f[R] - allows adding new transactions to the main journal file \f[CR]add\f[R] - allows adding new transactions to the main journal file
.IP \[bu] 2 .IP \[bu] 2
\f[V]manage\f[R] - allows editing, uploading or downloading the main or \f[CR]manage\f[R] - allows editing, uploading or downloading the main or
included files included files
.RE .RE
.IP \[bu] 2 .IP \[bu] 2
using the \f[V]--capabilities-header=HTTPHEADER\f[R] flag to specify a using the \f[CR]--capabilities-header=HTTPHEADER\f[R] flag to specify a
HTTP header from which it will read capabilities to enable. HTTP header from which it will read capabilities to enable.
hledger-web on Sandstorm uses the X-Sandstorm-Permissions header to hledger-web on Sandstorm uses the X-Sandstorm-Permissions header to
integrate with Sandstorm\[aq]s permissions. integrate with Sandstorm\[aq]s permissions.
This is disabled by default. This is disabled by default.
.SH EDITING, UPLOADING, DOWNLOADING .SH EDITING, UPLOADING, DOWNLOADING
.PP If you enable the \f[CR]manage\f[R] capability mentioned above,
If you enable the \f[V]manage\f[R] capability mentioned above,
you\[aq]ll see a new \[dq]spanner\[dq] button to the right of the search you\[aq]ll see a new \[dq]spanner\[dq] button to the right of the search
form. form.
Clicking this will let you edit, upload, or download the journal file or Clicking this will let you edit, upload, or download the journal file or
@ -371,7 +363,6 @@ Changes which would leave the journal file(s) unparseable or non-valid
(Probably. (Probably.
This needs re-testing.) This needs re-testing.)
.SH RELOADING .SH RELOADING
.PP
hledger-web detects changes made to the files by other means (eg if you hledger-web detects changes made to the files by other means (eg if you
edit it directly, outside of hledger-web), and it will show the new data edit it directly, outside of hledger-web), and it will show the new data
when you reload the page or navigate to a new page. when you reload the page or navigate to a new page.
@ -381,24 +372,20 @@ message until the file has been fixed.
(Note: if you are viewing files mounted from another machine, make sure (Note: if you are viewing files mounted from another machine, make sure
that both machine clocks are roughly in step.) that both machine clocks are roughly in step.)
.SH JSON API .SH JSON API
.PP
In addition to the web UI, hledger-web also serves a JSON API that can In addition to the web UI, hledger-web also serves a JSON API that can
be used to get data or add new transactions. be used to get data or add new transactions.
If you want the JSON API only, you can use the \f[V]--serve-api\f[R] If you want the JSON API only, you can use the \f[CR]--serve-api\f[R]
flag. flag.
Eg: Eg:
.IP .IP
.nf .EX
\f[C]
$ hledger-web -f examples/sample.journal --serve-api $ hledger-web -f examples/sample.journal --serve-api
\&... \&...
\f[R] .EE
.fi
.PP .PP
You can get JSON data from these routes: You can get JSON data from these routes:
.IP .IP
.nf .EX
\f[C]
/version /version
/accountnames /accountnames
/transactions /transactions
@ -406,15 +393,13 @@ You can get JSON data from these routes:
/commodities /commodities
/accounts /accounts
/accounttransactions/ACCOUNTNAME /accounttransactions/ACCOUNTNAME
\f[R] .EE
.fi
.PP .PP
Eg, all account names in the journal (similar to the accounts command). Eg, all account names in the journal (similar to the accounts command).
(hledger-web\[aq]s JSON does not include newlines, here we use python to (hledger-web\[aq]s JSON does not include newlines, here we use python to
prettify it): prettify it):
.IP .IP
.nf .EX
\f[C]
$ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool
[ [
\[dq]assets\[dq], \[dq]assets\[dq],
@ -431,13 +416,11 @@ $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool
\[dq]liabilities\[dq], \[dq]liabilities\[dq],
\[dq]liabilities:debts\[dq] \[dq]liabilities:debts\[dq]
] ]
\f[R] .EE
.fi
.PP .PP
Or all transactions: Or all transactions:
.IP .IP
.nf .EX
\f[C]
$ curl -s http://127.0.0.1:5000/transactions | python -m json.tool $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool
[ [
{ {
@ -456,8 +439,7 @@ $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool
\[dq]aismultiplier\[dq]: false, \[dq]aismultiplier\[dq]: false,
\[dq]aprice\[dq]: null, \[dq]aprice\[dq]: null,
\&... \&...
\f[R] .EE
.fi
.PP .PP
Most of the JSON corresponds to hledger\[aq]s data types; for details of Most of the JSON corresponds to hledger\[aq]s data types; for details of
what the fields mean, see the Hledger.Data.Json haddock docs and click what the fields mean, see the Hledger.Data.Json haddock docs and click
@ -468,34 +450,31 @@ In some cases there is outer JSON corresponding to a \[dq]Report\[dq]
type. type.
To understand that, go to the Hledger.Web.Handler.MiscR haddock and look To understand that, go to the Hledger.Web.Handler.MiscR haddock and look
at the source for the appropriate handler to see what it returns. at the source for the appropriate handler to see what it returns.
Eg for \f[V]/accounttransactions\f[R] it\[aq]s getAccounttransactionsR, Eg for \f[CR]/accounttransactions\f[R] it\[aq]s getAccounttransactionsR,
returning a \[dq]\f[V]accountTransactionsReport ...\f[R]\[dq]. returning a \[dq]\f[CR]accountTransactionsReport ...\f[R]\[dq].
Looking up the haddock for that we can see that /accounttransactions Looking up the haddock for that we can see that /accounttransactions
returns an AccountTransactionsReport, which consists of a report title returns an AccountTransactionsReport, which consists of a report title
and a list of AccountTransactionsReportItem (etc). and a list of AccountTransactionsReportItem (etc).
.PP .PP
You can add a new transaction to the journal with a PUT request to You can add a new transaction to the journal with a PUT request to
\f[V]/add\f[R], if hledger-web was started with the \f[V]add\f[R] \f[CR]/add\f[R], if hledger-web was started with the \f[CR]add\f[R]
capability (enabled by default). capability (enabled by default).
The payload must be the full, exact JSON representation of a hledger The payload must be the full, exact JSON representation of a hledger
transaction (partial data won\[aq]t do). transaction (partial data won\[aq]t do).
You can get sample JSON from hledger-web\[aq]s \f[V]/transactions\f[R] You can get sample JSON from hledger-web\[aq]s \f[CR]/transactions\f[R]
or \f[V]/accounttransactions\f[R], or you can export it with or \f[CR]/accounttransactions\f[R], or you can export it with
hledger-lib, eg like so: hledger-lib, eg like so:
.IP .IP
.nf .EX
\f[C]
\&.../hledger$ stack ghci hledger-lib \&.../hledger$ stack ghci hledger-lib
>>> writeJsonFile \[dq]txn.json\[dq] (head $ jtxns samplejournal) >>> writeJsonFile \[dq]txn.json\[dq] (head $ jtxns samplejournal)
>>> :q >>> :q
\f[R] .EE
.fi
.PP .PP
Here\[aq]s how it looks as of hledger-1.17 (remember, this JSON Here\[aq]s how it looks as of hledger-1.17 (remember, this JSON
corresponds to hledger\[aq]s Transaction and related data types): corresponds to hledger\[aq]s Transaction and related data types):
.IP .IP
.nf .EX
\f[C]
{ {
\[dq]tcomment\[dq]: \[dq]\[dq], \[dq]tcomment\[dq]: \[dq]\[dq],
\[dq]tpostings\[dq]: [ \[dq]tpostings\[dq]: [
@ -581,21 +560,17 @@ corresponds to hledger\[aq]s Transaction and related data types):
\[dq]tdescription\[dq]: \[dq]income\[dq], \[dq]tdescription\[dq]: \[dq]income\[dq],
\[dq]tstatus\[dq]: \[dq]Unmarked\[dq] \[dq]tstatus\[dq]: \[dq]Unmarked\[dq]
} }
\f[R] .EE
.fi
.PP .PP
And here\[aq]s how to test adding it with curl. And here\[aq]s how to test adding it with curl.
This should add a new entry to your journal: This should add a new entry to your journal:
.IP .IP
.nf .EX
\f[C]
$ curl http://127.0.0.1:5000/add -X PUT -H \[aq]Content-Type: application/json\[aq] --data-binary \[at]txn.json $ curl http://127.0.0.1:5000/add -X PUT -H \[aq]Content-Type: application/json\[aq] --data-binary \[at]txn.json
\f[R] .EE
.fi
.SH DEBUG OUTPUT .SH DEBUG OUTPUT
.SS Debug output .SS Debug output
.PP You can add \f[CR]--debug[=N]\f[R] to the command line to log debug
You can add \f[V]--debug[=N]\f[R] to the command line to log debug
output. output.
N ranges from 1 (least output, the default) to 9 (maximum output). N ranges from 1 (least output, the default) to 9 (maximum output).
Typically you would start with 1 and increase until you are seeing Typically you would start with 1 and increase until you are seeing
@ -607,14 +582,12 @@ stderr, eg:
.PD 0 .PD 0
.P .P
.PD .PD
\f[V]hledger-web --debug=3 2>hledger-web.log\f[R]. \f[CR]hledger-web --debug=3 2>hledger-web.log\f[R].
.SH ENVIRONMENT .SH ENVIRONMENT
.PP
\f[B]LEDGER_FILE\f[R] The main journal file to use when not specified \f[B]LEDGER_FILE\f[R] The main journal file to use when not specified
with \f[V]-f/--file\f[R]. with \f[CR]-f/--file\f[R].
Default: \f[V]$HOME/.hledger.journal\f[R]. Default: \f[CR]$HOME/.hledger.journal\f[R].
.SH BUGS .SH BUGS
.PP
We welcome bug reports in the hledger issue tracker (shortcut: We welcome bug reports in the hledger issue tracker (shortcut:
http://bugs.hledger.org), or on the #hledger chat or hledger mail list http://bugs.hledger.org), or on the #hledger chat or hledger mail list
(https://hledger.org/support). (https://hledger.org/support).

View File

@ -564,4 +564,4 @@ LICENSE
SEE ALSO SEE ALSO
hledger(1), hledger-ui(1), hledger-web(1), ledger(1) hledger(1), hledger-ui(1), hledger-web(1), ledger(1)
hledger-web-1.31.99 November 2023 HLEDGER-WEB(1) hledger-web-1.31.99 December 2023 HLEDGER-WEB(1)

View File

@ -1,2 +1,2 @@
m4_dnl Date to show in man pages. Updated by "Shake manuals" m4_dnl Date to show in man pages. Updated by "Shake manuals"
m4_define({{_monthyear_}}, {{November 2023}})m4_dnl m4_define({{_monthyear_}}, {{December 2023}})m4_dnl

File diff suppressed because it is too large Load Diff

View File

@ -5138,24 +5138,18 @@ File: hledger.info, Node: Timedot, Next: PART 3 REPORTING CONCEPTS, Prev: Tim
********** **********
'timedot' format is hledger's human-friendly time logging format. 'timedot' format is hledger's human-friendly time logging format.
Compared to 'timeclock' format, it is Compared to 'timeclock' format, it is more convenient for quick,
approximate, and retroactive time logging, and more human-readable (you
* convenient for quick, approximate, and retroactive time logging can see at a glance where time was spent). A quick example:
* readable: you can see at a glance where time was spent.
A timedot file contains a series of day entries, which might look
like this:
2023-05-01 2023-05-01
hom:errands .... .... ; two hours hom:errands .... .... ; two hours; the space is ignored
fos:hledger:timedot .. ; half an hour fos:hledger:timedot .. ; half an hour
per:admin:finance per:admin:finance ; no time spent yet
hledger reads this as a transaction on this day with three hledger reads this as a transaction on this day with three
(unbalanced) postings, where each dot represents "0.25". No commodity (unbalanced) postings, where each dot represents "0.25". No commodity
is assumed, but normally we interpret it as hours, with each dot symbol is assumed, but we typically interpret it as hours.
representing a quarter-hour. It's convenient, though not required, to
group the dots in fours for easy reading.
$ hledger -f a.timedot print # .timedot file extension (or timedot: prefix) is required $ hledger -f a.timedot print # .timedot file extension (or timedot: prefix) is required
2023-05-01 * 2023-05-01 *
@ -5163,55 +5157,75 @@ $ hledger -f a.timedot print # .timedot file extension (or timedot: prefix) is
(fos:hledger:timedot) 0.50 ; half an hour (fos:hledger:timedot) 0.50 ; half an hour
(per:admin:finance) 0 (per:admin:finance) 0
A transaction begins with a non-indented *simple date* (Y-M-D, Y/M/D, A timedot file contains a series of transactions (usually one per
or Y.M.D). It can optionally be preceded by one or more stars and a day). Each begins with a *simple date* (Y-M-D, Y/M/D, or Y.M.D),
space, for Emacs org mode compatibility. It can optionally be followed optionally be followed on the same line by a transaction description,
on the same line by a transaction description, and/or a transaction and/or a transaction comment following a semicolon.
comment following a semicolon.
After the date line are zero or more time postings, consisting of: After the date line are zero or more time postings, consisting of:
* an *account name* - any hledger-style account name, optionally * *An account name* - any hledger-style account name, optionally
hierarchical, optionally indented. indented.
* *two or more spaces* - a field separator, required if there is an
amount (as in journal format).
* an optional *timedot amount* - dots representing quarter hours, or
a number representing hours, optionally with a unit suffix.
* an optional *posting comment* following a semicolon.
Timedot amounts can be: * *Two or more spaces* - required if there is an amount (as in
journal format).
* *dots*: zero or more period characters ('.'), each representing * *A timedot amount*, which can be
0.25. Spaces are ignored and can be used for grouping. Eg: '....
..'
* or a *number*. Eg: '1.5' * empty (representing zero)
* or a *number immediately followed by a unit symbol* 's', 'm', 'h', * a number, optionally followed by a unit 's', 'm', 'h', 'd',
'd', 'w', 'mo', or 'y'. These are interpreted as seconds, minutes, 'w', 'mo', or 'y', representing a precise number of seconds,
hours, days weeks, months or years, and converted to hours, minutes, hours, days weeks, months or years (hours is assumed
assuming: by default), which will be converted to hours according to 60s
'60s' = '1m', '60m' = '1h', '24h' = '1d', '7d' = '1w', '30d' = = 1m, 60m = 1h, 24h = 1d, 7d = 1w, 30d = 1mo, 365d = 1y.
'1mo', '365d' = '1y'. Eg '90m' is parsed as '1.5'.
There is some added flexibility to help with keeping time log data in * one or more dots (period characters), each representing 0.25.
the same file as your notes, todo lists, etc.: These are the dots in "timedot". Spaces are ignored and can
be used for grouping/alignment.
* one or more letters. These are like dots but they also
generate a tag 't:' (short for "type") with the letter as its
value, and a separate posting for each of the values. This
provides a second dimension of categorisation, viewable in
reports with '--pivot t'.
* *An optional comment* following a semicolon (a hledger-style
posting comment).
There is some flexibility to help with keeping time log data and
notes in the same file:
* Blank lines and lines beginning with '#' or ';' are ignored. * Blank lines and lines beginning with '#' or ';' are ignored.
* Before the first date line, lines beginning with '*' are ignored. * After the first date line, lines which do not contain a double
space are parsed as postings with zero amount. (hledger's register
reports will show these if you add -E).
* From the first date line onward, one or more '*''s followed by a * Before the first date line, lines beginning with '*' (eg org
space at beginning of lines (ie, the headline prefix used by Emacs headings) are ignored. And from the first date line onward, Emacs
Org mode) is ignored. This means the time log can be kept under an org mode heading prefixes at the start of lines (one or more '*''s
Org headline, and date lines or time transaction lines can be Org followed by a space) will be ignored. This means the time log can
headlines. also be a org outline.
* Lines not ending with a double-space and amount are parsed as * Menu:
postings with zero amount. Note hledger's register reports hide
these by default (add -E to see them).
More examples: * Timedot examples::

File: hledger.info, Node: Timedot examples, Up: Timedot
12.1 Timedot examples
=====================
Numbers:
2016/2/3
inc:client1 4
fos:hledger 3h
biz:research 60m
Dots:
# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc. # on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
2016/2/1 2016/2/1
@ -5223,34 +5237,6 @@ biz:research .
inc:client1 .... .... inc:client1 .... ....
biz:research . biz:research .
2016/2/3
inc:client1 4
fos:hledger 3
biz:research 1
* Time log
** 2023-01-01
*** adm:time .
*** adm:finance .
* 2023 Work Diary
** Q1
*** 2023-02-29
**** DONE
0700 yoga
**** UNPLANNED
**** BEGUN
hom:chores
cleaning ...
water plants
outdoor - one full watering can
indoor - light watering
**** TODO
adm:planning: trip
*** LATER
Reporting:
$ hledger -f a.timedot print date:2016/2/2 $ hledger -f a.timedot print date:2016/2/2
2016-02-02 * 2016-02-02 *
(inc:client1) 2.00 (inc:client1) 2.00
@ -5273,21 +5259,66 @@ Balance changes in 2016-02-01-2016-02-03:
------------++---------------------------------------- ------------++----------------------------------------
|| 7.75 2.25 8.00 || 7.75 2.25 8.00
Using period instead of colon as account name separator: Letters:
# Activity types:
# c cleanup/catchup/repair
# e enhancement
# s support
# l learning/research
2023-11-01
work:adm ccecces
$ hledger -f a.timedot print
2023-11-01
(work:adm) 1 ; t:c
(work:adm) 0.5 ; t:e
(work:adm) 0.25 ; t:s
$ hledger -f a.timedot bal
1.75 work:adm
--------------------
1.75
$ hledger -f a.timedot bal --pivot t
1.00 c
0.50 e
0.25 s
--------------------
1.75
Org:
* 2023 Work Diary
** Q1
*** 2023-02-29
**** DONE
0700 yoga
**** UNPLANNED
**** BEGUN
hom:chores
cleaning ...
water plants
outdoor - one full watering can
indoor - light watering
**** TODO
adm:planning: trip
*** LATER
Using '.' as account name separator:
2016/2/4 2016/2/4
fos.hledger.timedot 4 fos.hledger.timedot 4h
fos.ledger .. fos.ledger ..
$ hledger -f a.timedot --alias /\\./=: bal --tree $ hledger -f a.timedot --alias '/\./=:' bal -t
4.50 fos 4.50 fos
4.00 hledger:timedot 4.00 hledger:timedot
0.50 ledger 0.50 ledger
-------------------- --------------------
4.50 4.50
A sample.timedot file.
 
File: hledger.info, Node: PART 3 REPORTING CONCEPTS, Next: Amount formatting parseability, Prev: Timedot, Up: Top File: hledger.info, Node: PART 3 REPORTING CONCEPTS, Next: Amount formatting parseability, Prev: Timedot, Up: Top
@ -5301,9 +5332,33 @@ File: hledger.info, Node: Amount formatting parseability, Next: Time periods,
********************************** **********************************
If you're wondering why your 'print' report sometimes shows trailing If you're wondering why your 'print' report sometimes shows trailing
decimal marks, even when there are no decimal digits; it does this to decimal marks, with no decimal digits; it does this when showing amounts
disambiguate ambiguous amounts (amounts which have one digit group mark that have digit group marks but no decimal digits, to disambiguate them
and no decimal digits), allowing them to be re-parsed reliably. and allow them to be re-parsed reliably (see also Decimal marks, digit
group marks. Eg:
commodity $1,000.00
2023-01-02
(a) $1000
$ hledger print
2023-01-02
(a) $1,000.
If this is a problem (eg when exporting to Ledger), you can avoid it
by disabling digit group marks, eg with -c/-commodity (for each affected
commodity):
$ hledger print -c '$1000.00'
2023-01-02
(a) $1000
or by forcing print to always show decimal digits, with -round:
$ hledger print -c '$1,000.00' --round=soft
2023-01-02
(a) $1,000.00
More generally: hledger output falls into three rough categories, More generally: hledger output falls into three rough categories,
which format amounts a little bit differently to suit different which format amounts a little bit differently to suit different
@ -9614,20 +9669,31 @@ options The output formats supported are 'txt', 'beancount', 'csv',
'tsv', 'json' and 'sql'. 'tsv', 'json' and 'sql'.
_Experimental:_ The 'beancount' format tries to produce _Experimental:_ The 'beancount' format tries to produce
Beancount-compatible output. It is very basic and may require Beancount-compatible output, as follows:
additional manual fixups:
* Transaction and postings with unmarked status are converted to * Transaction and postings with unmarked status are converted to
cleared ('*") status. cleared ('*') status.
* Transactions' payee and or note are wrapped in double quotes. * Transactions' payee and note are backslash-escaped and
double-quote-escaped and wrapped in double quotes.
* Transaction tags are copied to Beancount #tag format. * Transaction tags are copied to Beancount #tag format.
* Account name parts are capitalised, and if the first account name * Commodity symbols are converted to upper case, and a small number
part is not one of Assets, Liabilities, Equity, Income, or of currency symbols like '$' are converted to the corresponding
Expenses, "Equity:" is prepended. currency names.
* The '$' commodity symbol is converted to 'USD'. * Account name parts are capitalised and unsupported characters are
replaced with '-'. If an account name part does not begin with a
letter, or if the first part is not Assets, Liabilities, Equity,
Income, or Expenses, an error is raised. (Use '--alias' options to
bring your accounts into compliance.)
* An 'open' directive is generated for each account used, on the * An 'open' directive is generated for each account used, on the
earliest transaction date. earliest transaction date.
Some limitations:
* Balance assertions are removed.
* Balance assignments become missing amounts.
* Virtual and balanced virtual postings become regular postings.
* Directives are not converted.
Here's an example of print's CSV output: Here's an example of print's CSV output:
$ hledger print -Ocsv $ hledger print -Ocsv
@ -11140,306 +11206,308 @@ Node: Timeclock182398
Ref: #timeclock182503 Ref: #timeclock182503
Node: Timedot184681 Node: Timedot184681
Ref: #timedot184804 Ref: #timedot184804
Node: PART 3 REPORTING CONCEPTS189673 Node: Timedot examples187909
Ref: #part-3-reporting-concepts189855 Ref: #timedot-examples188015
Node: Amount formatting parseability189855 Node: PART 3 REPORTING CONCEPTS190186
Ref: #amount-formatting-parseability190052 Ref: #part-3-reporting-concepts190368
Node: Time periods191756 Node: Amount formatting parseability190368
Ref: #time-periods191895 Ref: #amount-formatting-parseability190565
Node: Report start & end date192013 Node: Time periods192770
Ref: #report-start-end-date192165 Ref: #time-periods192909
Node: Smart dates193824 Node: Report start & end date193027
Ref: #smart-dates193977 Ref: #report-start-end-date193179
Node: Report intervals195845 Node: Smart dates194838
Ref: #report-intervals196000 Ref: #smart-dates194991
Node: Date adjustment196418 Node: Report intervals196859
Ref: #date-adjustment196578 Ref: #report-intervals197014
Node: Period expressions197429 Node: Date adjustment197432
Ref: #period-expressions197570 Ref: #date-adjustment197592
Node: Period expressions with a report interval199334 Node: Period expressions198443
Ref: #period-expressions-with-a-report-interval199568 Ref: #period-expressions198584
Node: More complex report intervals199782 Node: Period expressions with a report interval200348
Ref: #more-complex-report-intervals200027 Ref: #period-expressions-with-a-report-interval200582
Node: Multiple weekday intervals201828 Node: More complex report intervals200796
Ref: #multiple-weekday-intervals202017 Ref: #more-complex-report-intervals201041
Node: Depth202839 Node: Multiple weekday intervals202842
Ref: #depth202941 Ref: #multiple-weekday-intervals203031
Node: Queries203237 Node: Depth203853
Ref: #queries203339 Ref: #depth203955
Node: Query types204464 Node: Queries204251
Ref: #query-types204585 Ref: #queries204353
Node: Combining query terms207921 Node: Query types205478
Ref: #combining-query-terms208098 Ref: #query-types205599
Node: Queries and command options209366 Node: Combining query terms208935
Ref: #queries-and-command-options209565 Ref: #combining-query-terms209112
Node: Queries and valuation209814 Node: Queries and command options210380
Ref: #queries-and-valuation210009 Ref: #queries-and-command-options210579
Node: Querying with account aliases210238 Node: Queries and valuation210828
Ref: #querying-with-account-aliases210449 Ref: #queries-and-valuation211023
Node: Querying with cost or value210579 Node: Querying with account aliases211252
Ref: #querying-with-cost-or-value210756 Ref: #querying-with-account-aliases211463
Node: Pivoting211057 Node: Querying with cost or value211593
Ref: #pivoting211171 Ref: #querying-with-cost-or-value211770
Node: Generating data212948 Node: Pivoting212071
Ref: #generating-data213080 Ref: #pivoting212185
Node: Forecasting214663 Node: Generating data213962
Ref: #forecasting214788 Ref: #generating-data214094
Node: --forecast215319 Node: Forecasting215677
Ref: #forecast215450 Ref: #forecasting215802
Node: Inspecting forecast transactions216496 Node: --forecast216333
Ref: #inspecting-forecast-transactions216698 Ref: #forecast216464
Node: Forecast reports217828 Node: Inspecting forecast transactions217510
Ref: #forecast-reports218001 Ref: #inspecting-forecast-transactions217712
Node: Forecast tags218937 Node: Forecast reports218842
Ref: #forecast-tags219097 Ref: #forecast-reports219015
Node: Forecast period in detail219557 Node: Forecast tags219951
Ref: #forecast-period-in-detail219751 Ref: #forecast-tags220111
Node: Forecast troubleshooting220645 Node: Forecast period in detail220571
Ref: #forecast-troubleshooting220813 Ref: #forecast-period-in-detail220765
Node: Budgeting221716 Node: Forecast troubleshooting221659
Ref: #budgeting221836 Ref: #forecast-troubleshooting221827
Node: Cost reporting222273 Node: Budgeting222730
Ref: #cost-reporting222407 Ref: #budgeting222850
Node: Recording costs223068 Node: Cost reporting223287
Ref: #recording-costs223204 Ref: #cost-reporting223421
Node: Reporting at cost224795 Node: Recording costs224082
Ref: #reporting-at-cost224970 Ref: #recording-costs224218
Node: Equity conversion postings225560 Node: Reporting at cost225809
Ref: #equity-conversion-postings225774 Ref: #reporting-at-cost225984
Node: Inferring equity conversion postings228205 Node: Equity conversion postings226574
Ref: #inferring-equity-conversion-postings228468 Ref: #equity-conversion-postings226788
Node: Combining costs and equity conversion postings229220 Node: Inferring equity conversion postings229219
Ref: #combining-costs-and-equity-conversion-postings229530 Ref: #inferring-equity-conversion-postings229482
Node: Requirements for detecting equity conversion postings230518 Node: Combining costs and equity conversion postings230234
Ref: #requirements-for-detecting-equity-conversion-postings230840 Ref: #combining-costs-and-equity-conversion-postings230544
Node: Infer cost and equity by default ?232040 Node: Requirements for detecting equity conversion postings231532
Ref: #infer-cost-and-equity-by-default232269 Ref: #requirements-for-detecting-equity-conversion-postings231854
Node: Value reporting232477 Node: Infer cost and equity by default ?233054
Ref: #value-reporting232619 Ref: #infer-cost-and-equity-by-default233283
Node: -V Value233393 Node: Value reporting233491
Ref: #v-value233525 Ref: #value-reporting233633
Node: -X Value in specified commodity233720 Node: -V Value234407
Ref: #x-value-in-specified-commodity233921 Ref: #v-value234539
Node: Valuation date234070 Node: -X Value in specified commodity234734
Ref: #valuation-date234247 Ref: #x-value-in-specified-commodity234935
Node: Finding market price235030 Node: Valuation date235084
Ref: #finding-market-price235241 Ref: #valuation-date235261
Node: --infer-market-prices market prices from transactions236410 Node: Finding market price236044
Ref: #infer-market-prices-market-prices-from-transactions236692 Ref: #finding-market-price236255
Node: Valuation commodity239454 Node: --infer-market-prices market prices from transactions237424
Ref: #valuation-commodity239673 Ref: #infer-market-prices-market-prices-from-transactions237706
Node: Simple valuation examples240886 Node: Valuation commodity240468
Ref: #simple-valuation-examples241090 Ref: #valuation-commodity240687
Node: --value Flexible valuation241749 Node: Simple valuation examples241900
Ref: #value-flexible-valuation241959 Ref: #simple-valuation-examples242104
Node: More valuation examples243603 Node: --value Flexible valuation242763
Ref: #more-valuation-examples243818 Ref: #value-flexible-valuation242973
Node: Interaction of valuation and queries245088 Node: More valuation examples244617
Ref: #interaction-of-valuation-and-queries245335 Ref: #more-valuation-examples244832
Node: Effect of valuation on reports245807 Node: Interaction of valuation and queries246102
Ref: #effect-of-valuation-on-reports246010 Ref: #interaction-of-valuation-and-queries246349
Node: PART 4 COMMANDS253707 Node: Effect of valuation on reports246821
Ref: #part-4-commands253856 Ref: #effect-of-valuation-on-reports247024
Node: Commands overview254235 Node: PART 4 COMMANDS254721
Ref: #commands-overview254369 Ref: #part-4-commands254870
Node: DATA ENTRY254548 Node: Commands overview255249
Ref: #data-entry254672 Ref: #commands-overview255383
Node: DATA CREATION254871 Node: DATA ENTRY255562
Ref: #data-creation255025 Ref: #data-entry255686
Node: DATA MANAGEMENT255143 Node: DATA CREATION255885
Ref: #data-management255308 Ref: #data-creation256039
Node: REPORTS FINANCIAL255429 Node: DATA MANAGEMENT256157
Ref: #reports-financial255604 Ref: #data-management256322
Node: REPORTS VERSATILE255909 Node: REPORTS FINANCIAL256443
Ref: #reports-versatile256082 Ref: #reports-financial256618
Node: REPORTS BASIC256335 Node: REPORTS VERSATILE256923
Ref: #reports-basic256487 Ref: #reports-versatile257096
Node: HELP256996 Node: REPORTS BASIC257349
Ref: #help257118 Ref: #reports-basic257501
Node: ADD-ONS257228 Node: HELP258010
Ref: #add-ons257334 Ref: #help258132
Node: accounts257913 Node: ADD-ONS258242
Ref: #accounts258046 Ref: #add-ons258348
Node: activity259933 Node: accounts258927
Ref: #activity260052 Ref: #accounts259060
Node: add260426 Node: activity260947
Ref: #add260536 Ref: #activity261066
Node: aregister263347 Node: add261440
Ref: #aregister263468 Ref: #add261550
Node: aregister and posting dates266356 Node: aregister264361
Ref: #aregister-and-posting-dates266501 Ref: #aregister264482
Node: balance267257 Node: aregister and posting dates267370
Ref: #balance267383 Ref: #aregister-and-posting-dates267515
Node: balance features268368 Node: balance268271
Ref: #balance-features268508 Ref: #balance268397
Node: Simple balance report270474 Node: balance features269382
Ref: #simple-balance-report270659 Ref: #balance-features269522
Node: Balance report line format272284 Node: Simple balance report271488
Ref: #balance-report-line-format272486 Ref: #simple-balance-report271673
Node: Filtered balance report274644 Node: Balance report line format273298
Ref: #filtered-balance-report274836 Ref: #balance-report-line-format273500
Node: List or tree mode275163 Node: Filtered balance report275658
Ref: #list-or-tree-mode275331 Ref: #filtered-balance-report275850
Node: Depth limiting276676 Node: List or tree mode276177
Ref: #depth-limiting276842 Ref: #list-or-tree-mode276345
Node: Dropping top-level accounts277443 Node: Depth limiting277690
Ref: #dropping-top-level-accounts277643 Ref: #depth-limiting277856
Node: Showing declared accounts277953 Node: Dropping top-level accounts278457
Ref: #showing-declared-accounts278152 Ref: #dropping-top-level-accounts278657
Node: Sorting by amount278683 Node: Showing declared accounts278967
Ref: #sorting-by-amount278850 Ref: #showing-declared-accounts279166
Node: Percentages279520 Node: Sorting by amount279697
Ref: #percentages279679 Ref: #sorting-by-amount279864
Node: Multi-period balance report280227 Node: Percentages280534
Ref: #multi-period-balance-report280427 Ref: #percentages280693
Node: Balance change end balance282702 Node: Multi-period balance report281241
Ref: #balance-change-end-balance282911 Ref: #multi-period-balance-report281441
Node: Balance report types284339 Node: Balance change end balance283716
Ref: #balance-report-types284520 Ref: #balance-change-end-balance283925
Node: Calculation type285018 Node: Balance report types285353
Ref: #calculation-type285173 Ref: #balance-report-types285534
Node: Accumulation type285722 Node: Calculation type286032
Ref: #accumulation-type285902 Ref: #calculation-type286187
Node: Valuation type286804 Node: Accumulation type286736
Ref: #valuation-type286992 Ref: #accumulation-type286916
Node: Combining balance report types287993 Node: Valuation type287818
Ref: #combining-balance-report-types288187 Ref: #valuation-type288006
Node: Budget report290025 Node: Combining balance report types289007
Ref: #budget-report290187 Ref: #combining-balance-report-types289201
Node: Budget report start date295841 Node: Budget report291039
Ref: #budget-report-start-date296019 Ref: #budget-report291201
Node: Budgets and subaccounts297351 Node: Budget report start date296855
Ref: #budgets-and-subaccounts297558 Ref: #budget-report-start-date297033
Node: Selecting budget goals300998 Node: Budgets and subaccounts298365
Ref: #selecting-budget-goals301197 Ref: #budgets-and-subaccounts298572
Node: Budget vs forecast302232 Node: Selecting budget goals302012
Ref: #budget-vs-forecast302391 Ref: #selecting-budget-goals302211
Node: Balance report layout304021 Node: Budget vs forecast303246
Ref: #balance-report-layout304201 Ref: #budget-vs-forecast303405
Node: Useful balance reports312386 Node: Balance report layout305035
Ref: #useful-balance-reports312546 Ref: #balance-report-layout305215
Node: balancesheet313631 Node: Useful balance reports313400
Ref: #balancesheet313776 Ref: #useful-balance-reports313560
Node: balancesheetequity315103 Node: balancesheet314645
Ref: #balancesheetequity315261 Ref: #balancesheet314790
Node: cashflow316657 Node: balancesheetequity316117
Ref: #cashflow316788 Ref: #balancesheetequity316275
Node: check318223 Node: cashflow317671
Ref: #check318337 Ref: #cashflow317802
Node: Default checks319141 Node: check319237
Ref: #default-checks319267 Ref: #check319351
Node: Strict checks319764 Node: Default checks320155
Ref: #strict-checks319909 Ref: #default-checks320281
Node: Other checks320389 Node: Strict checks320778
Ref: #other-checks320531 Ref: #strict-checks320923
Node: Custom checks321064 Node: Other checks321403
Ref: #custom-checks321221 Ref: #other-checks321545
Node: More about specific checks321638 Node: Custom checks322078
Ref: #more-about-specific-checks321800 Ref: #custom-checks322235
Node: close322506 Node: More about specific checks322652
Ref: #close322617 Ref: #more-about-specific-checks322814
Node: close and balance assertions326082 Node: close323520
Ref: #close-and-balance-assertions326260 Ref: #close323631
Node: Example retain earnings327411 Node: close and balance assertions327096
Ref: #example-retain-earnings327628 Ref: #close-and-balance-assertions327274
Node: Example migrate balances to a new file328060 Node: Example retain earnings328425
Ref: #example-migrate-balances-to-a-new-file328325 Ref: #example-retain-earnings328642
Node: Example excluding closing/opening transactions328901 Node: Example migrate balances to a new file329074
Ref: #example-excluding-closingopening-transactions329150 Ref: #example-migrate-balances-to-a-new-file329339
Node: codes330368 Node: Example excluding closing/opening transactions329915
Ref: #codes330485 Ref: #example-excluding-closingopening-transactions330164
Node: commodities331349 Node: codes331382
Ref: #commodities331477 Ref: #codes331499
Node: demo331547 Node: commodities332363
Ref: #demo331668 Ref: #commodities332491
Node: descriptions332584 Node: demo332561
Ref: #descriptions332714 Ref: #demo332682
Node: diff333005 Node: descriptions333598
Ref: #diff333120 Ref: #descriptions333728
Node: files334162 Node: diff334019
Ref: #files334271 Ref: #diff334134
Node: help334412 Node: files335176
Ref: #help-1334521 Ref: #files335285
Node: import335894 Node: help335426
Ref: #import336017 Ref: #help-1335535
Node: Deduplication337125 Node: import336908
Ref: #deduplication337250 Ref: #import337031
Node: Import testing339269 Node: Deduplication338139
Ref: #import-testing339434 Ref: #deduplication338264
Node: Importing balance assignments340277 Node: Import testing340283
Ref: #importing-balance-assignments340483 Ref: #import-testing340448
Node: Commodity display styles341132 Node: Importing balance assignments341291
Ref: #commodity-display-styles341305 Ref: #importing-balance-assignments341497
Node: incomestatement341434 Node: Commodity display styles342146
Ref: #incomestatement341576 Ref: #commodity-display-styles342319
Node: notes342904 Node: incomestatement342448
Ref: #notes343026 Ref: #incomestatement342590
Node: payees343388 Node: notes343918
Ref: #payees343503 Ref: #notes344040
Node: prices344022 Node: payees344402
Ref: #prices344137 Ref: #payees344517
Node: print344790 Node: prices345036
Ref: #print344905 Ref: #prices345151
Node: print explicitness345881 Node: print345804
Ref: #print-explicitness346024 Ref: #print345919
Node: print amount style346803 Node: print explicitness346895
Ref: #print-amount-style346973 Ref: #print-explicitness347038
Node: print parseability348025 Node: print amount style347817
Ref: #print-parseability348197 Ref: #print-amount-style347987
Node: print other features348946 Node: print parseability349039
Ref: #print-other-features349125 Ref: #print-parseability349211
Node: print output format349646 Node: print other features349960
Ref: #print-output-format349794 Ref: #print-other-features350139
Node: register352438 Node: print output format350660
Ref: #register352560 Ref: #print-output-format350808
Node: Custom register output357591 Node: register353927
Ref: #custom-register-output357722 Ref: #register354049
Node: rewrite359066 Node: Custom register output359080
Ref: #rewrite359184 Ref: #custom-register-output359211
Node: Re-write rules in a file361082 Node: rewrite360555
Ref: #re-write-rules-in-a-file361245 Ref: #rewrite360673
Node: Diff output format362394 Node: Re-write rules in a file362571
Ref: #diff-output-format362577 Ref: #re-write-rules-in-a-file362734
Node: rewrite vs print --auto363669 Node: Diff output format363883
Ref: #rewrite-vs.-print---auto363829 Ref: #diff-output-format364066
Node: roi364385 Node: rewrite vs print --auto365158
Ref: #roi364492 Ref: #rewrite-vs.-print---auto365318
Node: Spaces and special characters in --inv and --pnl366304 Node: roi365874
Ref: #spaces-and-special-characters-in---inv-and---pnl366544 Ref: #roi365981
Node: Semantics of --inv and --pnl367032 Node: Spaces and special characters in --inv and --pnl367793
Ref: #semantics-of---inv-and---pnl367271 Ref: #spaces-and-special-characters-in---inv-and---pnl368033
Node: IRR and TWR explained369121 Node: Semantics of --inv and --pnl368521
Ref: #irr-and-twr-explained369281 Ref: #semantics-of---inv-and---pnl368760
Node: stats372534 Node: IRR and TWR explained370610
Ref: #stats372642 Ref: #irr-and-twr-explained370770
Node: tags374029 Node: stats374023
Ref: #tags-1374136 Ref: #stats374131
Node: test375145 Node: tags375518
Ref: #test375238 Ref: #tags-1375625
Node: PART 5 COMMON TASKS375980 Node: test376634
Ref: #part-5-common-tasks376126 Ref: #test376727
Node: Getting help376424 Node: PART 5 COMMON TASKS377469
Ref: #getting-help376565 Ref: #part-5-common-tasks377615
Node: Constructing command lines377325 Node: Getting help377913
Ref: #constructing-command-lines377526 Ref: #getting-help378054
Node: Starting a journal file378183 Node: Constructing command lines378814
Ref: #starting-a-journal-file378385 Ref: #constructing-command-lines379015
Node: Setting LEDGER_FILE379587 Node: Starting a journal file379672
Ref: #setting-ledger_file379779 Ref: #starting-a-journal-file379874
Node: Setting opening balances380736 Node: Setting LEDGER_FILE381076
Ref: #setting-opening-balances380937 Ref: #setting-ledger_file381268
Node: Recording transactions384078 Node: Setting opening balances382225
Ref: #recording-transactions384267 Ref: #setting-opening-balances382426
Node: Reconciling384823 Node: Recording transactions385567
Ref: #reconciling384975 Ref: #recording-transactions385756
Node: Reporting387232 Node: Reconciling386312
Ref: #reporting387381 Ref: #reconciling386464
Node: Migrating to a new file391366 Node: Reporting388721
Ref: #migrating-to-a-new-file391523 Ref: #reporting388870
Node: BUGS391822 Node: Migrating to a new file392855
Ref: #bugs391912 Ref: #migrating-to-a-new-file393012
Node: Troubleshooting392791 Node: BUGS393311
Ref: #troubleshooting392891 Ref: #bugs393401
Node: Troubleshooting394280
Ref: #troubleshooting394380
 
End Tag Table End Tag Table

File diff suppressed because it is too large Load Diff