;doc: update manuals
This commit is contained in:
parent
308c554603
commit
791f4655df
@ -342,6 +342,8 @@ It lists accounts and their balances, like hledger\[aq]s balance
|
||||
command.
|
||||
By default, it shows all accounts and their latest ending balances
|
||||
(including the balances of subaccounts).
|
||||
Accounts which have been declared with an account directive are also
|
||||
listed, even if not yet used (except for empty parent accounts).
|
||||
If you specify a query on the command line, it shows just the matched
|
||||
accounts and the balances from matched transactions.
|
||||
.PP
|
||||
@ -382,7 +384,7 @@ all three, the filter is removed.)
|
||||
.PP
|
||||
\f[C]R\f[R] toggles real mode, in which virtual postings are ignored.
|
||||
.PP
|
||||
\f[C]Z\f[R] toggles nonzero mode, in which only accounts with nonzero
|
||||
\f[C]z\f[R] toggles nonzero mode, in which only accounts with nonzero
|
||||
balances are shown (hledger-ui shows zero items by default, unlike
|
||||
command-line hledger).
|
||||
.PP
|
||||
@ -428,7 +430,7 @@ activate all three, the filter is removed.)
|
||||
.PP
|
||||
\f[C]R\f[R] toggles real mode, in which virtual postings are ignored.
|
||||
.PP
|
||||
\f[C]Z\f[R] toggles nonzero mode, in which only transactions posting a
|
||||
\f[C]z\f[R] toggles nonzero mode, in which only transactions posting a
|
||||
nonzero change are shown (hledger-ui shows zero items by default, unlike
|
||||
command-line hledger).
|
||||
.PP
|
||||
|
||||
@ -368,7 +368,9 @@ File: hledger-ui.info, Node: Accounts screen, Next: Register screen, Up: SCRE
|
||||
This is normally the first screen displayed. It lists accounts and
|
||||
their balances, like hledger's balance command. By default, it shows
|
||||
all accounts and their latest ending balances (including the balances of
|
||||
subaccounts). If you specify a query on the command line, it shows just
|
||||
subaccounts). Accounts which have been declared with an account
|
||||
directive are also listed, even if not yet used (except for empty parent
|
||||
accounts). If you specify a query on the command line, it shows just
|
||||
the matched accounts and the balances from matched transactions.
|
||||
|
||||
Account names are shown as a flat list by default; press 't' to
|
||||
@ -402,7 +404,7 @@ is removed.)
|
||||
|
||||
'R' toggles real mode, in which virtual postings are ignored.
|
||||
|
||||
'Z' toggles nonzero mode, in which only accounts with nonzero
|
||||
'z' toggles nonzero mode, in which only accounts with nonzero
|
||||
balances are shown (hledger-ui shows zero items by default, unlike
|
||||
command-line hledger).
|
||||
|
||||
@ -448,7 +450,7 @@ is removed.)
|
||||
|
||||
'R' toggles real mode, in which virtual postings are ignored.
|
||||
|
||||
'Z' toggles nonzero mode, in which only transactions posting a
|
||||
'z' toggles nonzero mode, in which only transactions posting a
|
||||
nonzero change are shown (hledger-ui shows zero items by default, unlike
|
||||
command-line hledger).
|
||||
|
||||
@ -633,24 +635,24 @@ Node: SCREENS11193
|
||||
Ref: #screens11291
|
||||
Node: Accounts screen11381
|
||||
Ref: #accounts-screen11509
|
||||
Node: Register screen13713
|
||||
Ref: #register-screen13868
|
||||
Node: Transaction screen15852
|
||||
Ref: #transaction-screen16010
|
||||
Node: Error screen16880
|
||||
Ref: #error-screen17002
|
||||
Node: TIPS17246
|
||||
Ref: #tips17345
|
||||
Node: Watch mode17397
|
||||
Ref: #watch-mode17514
|
||||
Node: Watch mode limitations18264
|
||||
Ref: #watch-mode-limitations18405
|
||||
Node: ENVIRONMENT19541
|
||||
Ref: #environment19652
|
||||
Node: FILES20459
|
||||
Ref: #files20558
|
||||
Node: BUGS20771
|
||||
Ref: #bugs20848
|
||||
Node: Register screen13848
|
||||
Ref: #register-screen14003
|
||||
Node: Transaction screen15987
|
||||
Ref: #transaction-screen16145
|
||||
Node: Error screen17015
|
||||
Ref: #error-screen17137
|
||||
Node: TIPS17381
|
||||
Ref: #tips17480
|
||||
Node: Watch mode17532
|
||||
Ref: #watch-mode17649
|
||||
Node: Watch mode limitations18399
|
||||
Ref: #watch-mode-limitations18540
|
||||
Node: ENVIRONMENT19676
|
||||
Ref: #environment19787
|
||||
Node: FILES20594
|
||||
Ref: #files20693
|
||||
Node: BUGS20906
|
||||
Ref: #bugs20983
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
@ -312,7 +312,9 @@ SCREENS
|
||||
This is normally the first screen displayed. It lists accounts and
|
||||
their balances, like hledger's balance command. By default, it shows
|
||||
all accounts and their latest ending balances (including the balances
|
||||
of subaccounts). If you specify a query on the command line, it shows
|
||||
of subaccounts). Accounts which have been declared with an account
|
||||
directive are also listed, even if not yet used (except for empty par-
|
||||
ent accounts). If you specify a query on the command line, it shows
|
||||
just the matched accounts and the balances from matched transactions.
|
||||
|
||||
Account names are shown as a flat list by default; press t to toggle
|
||||
@ -345,7 +347,7 @@ SCREENS
|
||||
|
||||
R toggles real mode, in which virtual postings are ignored.
|
||||
|
||||
Z toggles nonzero mode, in which only accounts with nonzero balances
|
||||
z toggles nonzero mode, in which only accounts with nonzero balances
|
||||
are shown (hledger-ui shows zero items by default, unlike command-line
|
||||
hledger).
|
||||
|
||||
@ -385,7 +387,7 @@ SCREENS
|
||||
|
||||
R toggles real mode, in which virtual postings are ignored.
|
||||
|
||||
Z toggles nonzero mode, in which only transactions posting a nonzero
|
||||
z toggles nonzero mode, in which only transactions posting a nonzero
|
||||
change are shown (hledger-ui shows zero items by default, unlike com-
|
||||
mand-line hledger).
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
This is hledger-web/hledger-web.info, produced by makeinfo version 4.8
|
||||
from stdin.
|
||||
This is hledger-web.info, produced by makeinfo version 6.8 from stdin.
|
||||
|
||||
INFO-DIR-SECTION User Applications
|
||||
START-INFO-DIR-ENTRY
|
||||
@ -7,7 +6,7 @@ START-INFO-DIR-ENTRY
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
|
||||
File: hledger-web.info, Node: Top, Up: (dir)
|
||||
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||
|
||||
hledger-web(1)
|
||||
**************
|
||||
@ -15,31 +14,32 @@ hledger-web(1)
|
||||
hledger-web is a web interface (WUI) for the hledger accounting tool.
|
||||
This manual is for hledger-web 1.23.99.
|
||||
|
||||
`hledger-web [OPTIONS]'
|
||||
`hledger web -- [OPTIONS]'
|
||||
'hledger-web [OPTIONS]'
|
||||
'hledger web -- [OPTIONS]'
|
||||
|
||||
hledger is a reliable, cross-platform set of programs for tracking
|
||||
money, time, or any other commodity, using double-entry accounting and a
|
||||
simple, editable file format. hledger is inspired by and largely
|
||||
simple, editable file format. hledger is inspired by and largely
|
||||
compatible with ledger(1).
|
||||
|
||||
hledger-web is hledger's web interface. It starts a simple web
|
||||
hledger-web is hledger's web interface. It starts a simple web
|
||||
application for browsing and adding transactions, and optionally opens
|
||||
it in a web browser window if possible. It provides a more user-friendly
|
||||
UI than the hledger CLI or hledger-ui interface, showing more at once
|
||||
(accounts, the current account register, balance charts) and allowing
|
||||
history-aware data entry, interactive searching, and bookmarking.
|
||||
it in a web browser window if possible. It provides a more
|
||||
user-friendly UI than the hledger CLI or hledger-ui interface, showing
|
||||
more at once (accounts, the current account register, balance charts)
|
||||
and allowing history-aware data entry, interactive searching, and
|
||||
bookmarking.
|
||||
|
||||
hledger-web also lets you share a ledger with multiple users, or even
|
||||
the public web. There is no access control, so if you need that you
|
||||
should put it behind a suitable web proxy. As a small protection against
|
||||
data loss when running an unprotected instance, it writes a numbered
|
||||
backup of the main journal file (only ?) on every edit.
|
||||
the public web. There is no access control, so if you need that you
|
||||
should put it behind a suitable web proxy. As a small protection
|
||||
against data loss when running an unprotected instance, it writes a
|
||||
numbered backup of the main journal file (only ?) on every edit.
|
||||
|
||||
Like hledger, it reads data from one or more files in hledger
|
||||
journal, timeclock, timedot, or CSV format specified with `-f', or
|
||||
`$LEDGER_FILE', or `$HOME/.hledger.journal' (on windows, perhaps
|
||||
`C:/Users/USER/.hledger.journal'). For more about this see hledger(1).
|
||||
journal, timeclock, timedot, or CSV format specified with '-f', or
|
||||
'$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps
|
||||
'C:/Users/USER/.hledger.journal'). For more about this see hledger(1).
|
||||
|
||||
* Menu:
|
||||
|
||||
@ -59,177 +59,180 @@ File: hledger-web.info, Node: OPTIONS, Next: PERMISSIONS, Prev: Top, Up: Top
|
||||
*********
|
||||
|
||||
Command-line options and arguments may be used to set an initial filter
|
||||
on the data. These filter options are not shown in the web UI, but it
|
||||
on the data. These filter options are not shown in the web UI, but it
|
||||
will be applied in addition to any search query entered there.
|
||||
|
||||
Note: if invoking hledger-web as a hledger subcommand, write `--'
|
||||
Note: if invoking hledger-web as a hledger subcommand, write '--'
|
||||
before options, as shown in the synopsis above.
|
||||
|
||||
`--serve'
|
||||
serve and log requests, don't browse or auto-exit
|
||||
'--serve'
|
||||
|
||||
serve and log requests, don't browse or auto-exit
|
||||
'--serve-api'
|
||||
|
||||
`--serve-api'
|
||||
like -serve, but serve only the JSON web API, without the
|
||||
server-side web UI
|
||||
'--host=IPADDR'
|
||||
|
||||
`--host=IPADDR'
|
||||
listen on this IP address (default: 127.0.0.1)
|
||||
'--port=PORT'
|
||||
|
||||
`--port=PORT'
|
||||
listen on this TCP port (default: 5000)
|
||||
'--socket=SOCKETFILE'
|
||||
|
||||
`--socket=SOCKETFILE'
|
||||
use a unix domain socket file to listen for requests instead of a
|
||||
TCP socket. Implies `--serve'. It can only be used if the operating
|
||||
system can provide this type of socket.
|
||||
TCP socket. Implies '--serve'. It can only be used if the
|
||||
operating system can provide this type of socket.
|
||||
'--base-url=URL'
|
||||
|
||||
`--base-url=URL'
|
||||
set the base url (default: http://IPADDR:PORT). You would change
|
||||
this when sharing over the network, or integrating within a larger
|
||||
website.
|
||||
'--file-url=URL'
|
||||
|
||||
`--file-url=URL'
|
||||
set the static files url (default: BASEURL/static). hledger-web
|
||||
set the static files url (default: BASEURL/static). hledger-web
|
||||
normally serves static files itself, but if you wanted to serve
|
||||
them from another server for efficiency, you would set the url
|
||||
with this.
|
||||
them from another server for efficiency, you would set the url with
|
||||
this.
|
||||
'--capabilities=CAP[,CAP..]'
|
||||
|
||||
`--capabilities=CAP[,CAP..]'
|
||||
enable the view, add, and/or manage capabilities (default:
|
||||
view,add)
|
||||
'--capabilities-header=HTTPHEADER'
|
||||
|
||||
`--capabilities-header=HTTPHEADER'
|
||||
read capabilities to enable from a HTTP header, like
|
||||
X-Sandstorm-Permissions (default: disabled)
|
||||
'--test'
|
||||
|
||||
`--test'
|
||||
run hledger-web's tests and exit. hspec test runner args may
|
||||
run hledger-web's tests and exit. hspec test runner args may
|
||||
follow a -, eg: hledger-web -test - -help
|
||||
|
||||
hledger input options:
|
||||
|
||||
`-f FILE --file=FILE'
|
||||
use a different input file. For stdin, use - (default:
|
||||
`$LEDGER_FILE' or `$HOME/.hledger.journal')
|
||||
'-f FILE --file=FILE'
|
||||
|
||||
use a different input file. For stdin, use - (default:
|
||||
'$LEDGER_FILE' or '$HOME/.hledger.journal')
|
||||
'--rules-file=RULESFILE'
|
||||
|
||||
`--rules-file=RULESFILE'
|
||||
Conversion rules file to use when reading CSV (default: FILE.rules)
|
||||
'--separator=CHAR'
|
||||
|
||||
`--separator=CHAR'
|
||||
Field separator to expect when reading CSV (default: ',')
|
||||
'--alias=OLD=NEW'
|
||||
|
||||
`--alias=OLD=NEW'
|
||||
rename accounts named OLD to NEW
|
||||
'--anon'
|
||||
|
||||
`--anon'
|
||||
anonymize accounts and payees
|
||||
'--pivot FIELDNAME'
|
||||
|
||||
`--pivot FIELDNAME'
|
||||
use some other field or tag for the account name
|
||||
'-I --ignore-assertions'
|
||||
|
||||
`-I --ignore-assertions'
|
||||
disable balance assertion checks (note: does not disable balance
|
||||
assignments)
|
||||
'-s --strict'
|
||||
|
||||
`-s --strict'
|
||||
do extra error checking (check that all posted accounts are
|
||||
declared)
|
||||
|
||||
hledger reporting options:
|
||||
|
||||
`-b --begin=DATE'
|
||||
'-b --begin=DATE'
|
||||
|
||||
include postings/txns on or after this date (will be adjusted to
|
||||
preceding subperiod start when using a report interval)
|
||||
'-e --end=DATE'
|
||||
|
||||
`-e --end=DATE'
|
||||
include postings/txns before this date (will be adjusted to
|
||||
following subperiod end when using a report interval)
|
||||
'-D --daily'
|
||||
|
||||
`-D --daily'
|
||||
multiperiod/multicolumn report by day
|
||||
'-W --weekly'
|
||||
|
||||
`-W --weekly'
|
||||
multiperiod/multicolumn report by week
|
||||
'-M --monthly'
|
||||
|
||||
`-M --monthly'
|
||||
multiperiod/multicolumn report by month
|
||||
'-Q --quarterly'
|
||||
|
||||
`-Q --quarterly'
|
||||
multiperiod/multicolumn report by quarter
|
||||
'-Y --yearly'
|
||||
|
||||
`-Y --yearly'
|
||||
multiperiod/multicolumn report by year
|
||||
'-p --period=PERIODEXP'
|
||||
|
||||
`-p --period=PERIODEXP'
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax
|
||||
'--date2'
|
||||
|
||||
`--date2'
|
||||
match the secondary date instead (see command help for other
|
||||
effects)
|
||||
'--today=DATE'
|
||||
|
||||
`--today=DATE'
|
||||
override today's date (affects relative smart dates, for
|
||||
tests/examples)
|
||||
'-U --unmarked'
|
||||
|
||||
`-U --unmarked'
|
||||
include only unmarked postings/txns (can combine with -P or -C)
|
||||
'-P --pending'
|
||||
|
||||
`-P --pending'
|
||||
include only pending postings/txns
|
||||
'-C --cleared'
|
||||
|
||||
`-C --cleared'
|
||||
include only cleared postings/txns
|
||||
'-R --real'
|
||||
|
||||
`-R --real'
|
||||
include only non-virtual postings
|
||||
'-NUM --depth=NUM'
|
||||
|
||||
`-NUM --depth=NUM'
|
||||
hide/aggregate accounts or postings more than NUM levels deep
|
||||
'-E --empty'
|
||||
|
||||
`-E --empty'
|
||||
show items with zero amount, normally hidden (and vice-versa in
|
||||
hledger-ui/hledger-web)
|
||||
'-B --cost'
|
||||
|
||||
`-B --cost'
|
||||
convert amounts to their cost/selling amount at transaction time
|
||||
'-V --market'
|
||||
|
||||
`-V --market'
|
||||
convert amounts to their market value in default valuation
|
||||
commodities
|
||||
'-X --exchange=COMM'
|
||||
|
||||
`-X --exchange=COMM'
|
||||
convert amounts to their market value in commodity COMM
|
||||
'--value'
|
||||
|
||||
`--value'
|
||||
convert amounts to cost or market value, more flexibly than
|
||||
-B/-V/-X
|
||||
'--infer-market-prices'
|
||||
|
||||
`--infer-market-prices'
|
||||
use transaction prices (recorded with @ or @@) as additional market
|
||||
prices, as if they were P directives
|
||||
'--auto'
|
||||
|
||||
`--auto'
|
||||
apply automated posting rules to modify transactions.
|
||||
'--forecast'
|
||||
|
||||
`--forecast'
|
||||
generate future transactions from periodic transaction rules, for
|
||||
the next 6 months or till report end date. In hledger-ui, also
|
||||
the next 6 months or till report end date. In hledger-ui, also
|
||||
make ordinary future transactions visible.
|
||||
'--commodity-style'
|
||||
|
||||
`--commodity-style'
|
||||
Override the commodity style in the output for the specified
|
||||
commodity. For example 'EUR1.000,00'.
|
||||
'--color=WHEN (or --colour=WHEN)'
|
||||
|
||||
`--color=WHEN (or --colour=WHEN)'
|
||||
Should color-supporting commands use ANSI color codes in text
|
||||
output. 'auto' (default): whenever stdout seems to be a
|
||||
color-supporting terminal. 'always' or 'yes': always, useful eg
|
||||
when piping output into 'less -R'. 'never' or 'no': never. A
|
||||
when piping output into 'less -R'. 'never' or 'no': never. A
|
||||
NO_COLOR environment variable overrides this.
|
||||
'--pretty[=WHEN]'
|
||||
|
||||
`--pretty[=WHEN]'
|
||||
Show prettier output, e.g. using unicode box-drawing characters.
|
||||
Show prettier output, e.g. using unicode box-drawing characters.
|
||||
Accepts 'yes' (the default) or 'no' ('y', 'n', 'always', 'never'
|
||||
also work). If you provide an argument you must use '=', e.g.
|
||||
'-pretty=yes'.
|
||||
@ -241,62 +244,62 @@ the last one takes precedence.
|
||||
|
||||
hledger help options:
|
||||
|
||||
`-h --help'
|
||||
'-h --help'
|
||||
|
||||
show general or COMMAND help
|
||||
'--man'
|
||||
|
||||
`--man'
|
||||
show general or COMMAND user manual with man
|
||||
'--info'
|
||||
|
||||
`--info'
|
||||
show general or COMMAND user manual with info
|
||||
'--version'
|
||||
|
||||
`--version'
|
||||
show general or ADDONCMD version
|
||||
'--debug[=N]'
|
||||
|
||||
`--debug[=N]'
|
||||
show debug output (levels 1-9, default: 1)
|
||||
|
||||
A @FILE argument will be expanded to the contents of FILE, which
|
||||
should contain one command line option/argument per line. (To prevent
|
||||
this, insert a `--' argument before.)
|
||||
should contain one command line option/argument per line. (To prevent
|
||||
this, insert a '--' argument before.)
|
||||
|
||||
By default, hledger-web starts the web app in "transient mode" and
|
||||
also opens it in your default web browser if possible. In this mode the
|
||||
also opens it in your default web browser if possible. In this mode the
|
||||
web app will keep running for as long as you have it open in a browser
|
||||
window, and will exit after two minutes of inactivity (no requests and
|
||||
no browser windows viewing it). With `--serve', it just runs the web
|
||||
app without exiting, and logs requests to the console. With
|
||||
`--serve-api', only the JSON web api (see below) is served, with the
|
||||
no browser windows viewing it). With '--serve', it just runs the web
|
||||
app without exiting, and logs requests to the console. With
|
||||
'--serve-api', only the JSON web api (see below) is served, with the
|
||||
usual HTML server-side web UI disabled.
|
||||
|
||||
By default the server listens on IP address 127.0.0.1, accessible
|
||||
only to local requests. You can use `--host' to change this, eg `--host
|
||||
only to local requests. You can use '--host' to change this, eg '--host
|
||||
0.0.0.0' to listen on all configured addresses.
|
||||
|
||||
Similarly, use `--port' to set a TCP port other than 5000, eg if you
|
||||
Similarly, use '--port' to set a TCP port other than 5000, eg if you
|
||||
are running multiple hledger-web instances.
|
||||
|
||||
Both of these options are ignored when `--socket' is used. In this
|
||||
case, it creates an `AF_UNIX' socket file at the supplied path and uses
|
||||
that for communication. This is an alternative way of running multiple
|
||||
hledger-web instances behind a reverse proxy that handles
|
||||
authentication for different users. The path can be derived in a
|
||||
predictable way, eg by using the username within the path. As an
|
||||
example, `nginx' as reverse proxy can use the variable `$remote_user'
|
||||
to derive a path from the username used in a HTTP basic authentication.
|
||||
The following `proxy_pass' directive allows access to all `hledger-web'
|
||||
instances that created a socket in `/tmp/hledger/':
|
||||
|
||||
Both of these options are ignored when '--socket' is used. In this
|
||||
case, it creates an 'AF_UNIX' socket file at the supplied path and uses
|
||||
that for communication. This is an alternative way of running multiple
|
||||
hledger-web instances behind a reverse proxy that handles authentication
|
||||
for different users. The path can be derived in a predictable way, eg
|
||||
by using the username within the path. As an example, 'nginx' as
|
||||
reverse proxy can use the variable '$remote_user' to derive a path from
|
||||
the username used in a HTTP basic authentication. The following
|
||||
'proxy_pass' directive allows access to all 'hledger-web' instances that
|
||||
created a socket in '/tmp/hledger/':
|
||||
|
||||
proxy_pass http://unix:/tmp/hledger/${remote_user}.socket;
|
||||
|
||||
You can use `--base-url' to change the protocol, hostname, port and
|
||||
You can use '--base-url' to change the protocol, hostname, port and
|
||||
path that appear in hyperlinks, useful eg for integrating hledger-web
|
||||
within a larger website. The default is `http://HOST:PORT/' using the
|
||||
server's configured host address and TCP port (or `http://HOST' if PORT
|
||||
within a larger website. The default is 'http://HOST:PORT/' using the
|
||||
server's configured host address and TCP port (or 'http://HOST' if PORT
|
||||
is 80).
|
||||
|
||||
With `--file-url' you can set a different base url for static files,
|
||||
With '--file-url' you can set a different base url for static files,
|
||||
eg for better caching or cookie-less serving on high performance
|
||||
websites.
|
||||
|
||||
@ -311,32 +314,28 @@ journal and to add new transactions, but not to change existing data.
|
||||
|
||||
You can restrict who can reach it by
|
||||
|
||||
* setting the IP address it listens on (see `--host' above). By
|
||||
* setting the IP address it listens on (see '--host' above). By
|
||||
default it listens on 127.0.0.1, accessible to all users on the
|
||||
local machine.
|
||||
|
||||
* putting it behind an authenticating proxy, using eg apache or nginx
|
||||
|
||||
* custom firewall rules
|
||||
|
||||
You can restrict what the users who reach it can do, by
|
||||
|
||||
* using the `--capabilities=CAP[,CAP..]' flag when you start it,
|
||||
enabling one or more of the following capabilities. The default
|
||||
value is `view,add':
|
||||
* `view' - allows viewing the journal file and all included
|
||||
* using the '--capabilities=CAP[,CAP..]' flag when you start it,
|
||||
enabling one or more of the following capabilities. The default
|
||||
value is 'view,add':
|
||||
* 'view' - allows viewing the journal file and all included
|
||||
files
|
||||
|
||||
* `add' - allows adding new transactions to the main journal
|
||||
* 'add' - allows adding new transactions to the main journal
|
||||
file
|
||||
|
||||
* `manage' - allows editing, uploading or downloading the main
|
||||
* 'manage' - allows editing, uploading or downloading the main
|
||||
or included files
|
||||
|
||||
* using the `--capabilities-header=HTTPHEADER' flag to specify a HTTP
|
||||
header from which it will read capabilities to enable. hledger-web
|
||||
* using the '--capabilities-header=HTTPHEADER' flag to specify a HTTP
|
||||
header from which it will read capabilities to enable. hledger-web
|
||||
on Sandstorm uses the X-Sandstorm-Permissions header to integrate
|
||||
with Sandstorm's permissions. This is disabled by default.
|
||||
with Sandstorm's permissions. This is disabled by default.
|
||||
|
||||
|
||||
File: hledger-web.info, Node: EDITING UPLOADING DOWNLOADING, Next: RELOADING, Prev: PERMISSIONS, Up: Top
|
||||
@ -344,8 +343,8 @@ File: hledger-web.info, Node: EDITING UPLOADING DOWNLOADING, Next: RELOADING,
|
||||
3 EDITING, UPLOADING, DOWNLOADING
|
||||
*********************************
|
||||
|
||||
If you enable the `manage' capability mentioned above, you'll see a new
|
||||
"spanner" button to the right of the search form. Clicking this will
|
||||
If you enable the 'manage' capability mentioned above, you'll see a new
|
||||
"spanner" button to the right of the search form. Clicking this will
|
||||
let you edit, upload, or download the journal file or any files it
|
||||
includes.
|
||||
|
||||
@ -354,13 +353,13 @@ visitor) can alter or wipe the data files.
|
||||
|
||||
Normally whenever a file is changed in this way, hledger-web saves a
|
||||
numbered backup (assuming file permissions allow it, the disk is not
|
||||
full, etc.) hledger-web is not aware of version control systems,
|
||||
full, etc.) hledger-web is not aware of version control systems,
|
||||
currently; if you use one, you'll have to arrange to commit the changes
|
||||
yourself (eg with a cron job or a file watcher like entr).
|
||||
|
||||
Changes which would leave the journal file(s) unparseable or
|
||||
non-valid (eg with failing balance assertions) are prevented.
|
||||
(Probably. This needs re-testing.)
|
||||
(Probably. This needs re-testing.)
|
||||
|
||||
|
||||
File: hledger-web.info, Node: RELOADING, Next: JSON API, Prev: EDITING UPLOADING DOWNLOADING, Up: Top
|
||||
@ -370,7 +369,7 @@ File: hledger-web.info, Node: RELOADING, Next: JSON API, Prev: EDITING UPLOAD
|
||||
|
||||
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
|
||||
when you reload the page or navigate to a new page. If a change makes a
|
||||
when you reload the page or navigate to a new page. If a change makes a
|
||||
file unparseable, hledger-web will display an error message until the
|
||||
file has been fixed.
|
||||
|
||||
@ -384,16 +383,14 @@ File: hledger-web.info, Node: JSON API, Next: ENVIRONMENT, Prev: RELOADING,
|
||||
**********
|
||||
|
||||
In addition to the web UI, hledger-web also serves a JSON API that can
|
||||
be used to get data or add new transactions. If you want the JSON API
|
||||
only, you can use the `--serve-api' flag. Eg:
|
||||
|
||||
be used to get data or add new transactions. If you want the JSON API
|
||||
only, you can use the '--serve-api' flag. Eg:
|
||||
|
||||
$ hledger-web -f examples/sample.journal --serve-api
|
||||
...
|
||||
|
||||
You can get JSON data from these routes:
|
||||
|
||||
|
||||
/version
|
||||
/accountnames
|
||||
/transactions
|
||||
@ -406,7 +403,6 @@ $ hledger-web -f examples/sample.journal --serve-api
|
||||
command). (hledger-web's JSON does not include newlines, here we use
|
||||
python to prettify it):
|
||||
|
||||
|
||||
$ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool
|
||||
[
|
||||
"assets",
|
||||
@ -426,7 +422,6 @@ $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool
|
||||
|
||||
Or all transactions:
|
||||
|
||||
|
||||
$ curl -s http://127.0.0.1:5000/transactions | python -m json.tool
|
||||
[
|
||||
{
|
||||
@ -448,25 +443,24 @@ $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool
|
||||
|
||||
Most of the JSON corresponds to hledger's data types; for details of
|
||||
what the fields mean, see the Hledger.Data.Json haddock docs and click
|
||||
on the various data types, eg Transaction. And for a higher level
|
||||
on the various data types, eg Transaction. And for a higher level
|
||||
understanding, see the journal manual.
|
||||
|
||||
In some cases there is outer JSON corresponding to a "Report" type.
|
||||
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.
|
||||
Eg for `/accounttransactions' it's getAccounttransactionsR, returning a
|
||||
"`accountTransactionsReport ...'". Looking up the haddock for that we
|
||||
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. Eg
|
||||
for '/accounttransactions' it's getAccounttransactionsR, returning a
|
||||
"'accountTransactionsReport ...'". Looking up the haddock for that we
|
||||
can see that /accounttransactions returns an AccountTransactionsReport,
|
||||
which consists of a report title and a list of
|
||||
AccountTransactionsReportItem (etc).
|
||||
|
||||
You can add a new transaction to the journal with a PUT request to
|
||||
`/add', if hledger-web was started with the `add' capability (enabled
|
||||
by default). The payload must be the full, exact JSON representation of
|
||||
a hledger transaction (partial data won't do). You can get sample JSON
|
||||
from hledger-web's `/transactions' or `/accounttransactions', or you
|
||||
can export it with hledger-lib, eg like so:
|
||||
|
||||
'/add', if hledger-web was started with the 'add' capability (enabled by
|
||||
default). The payload must be the full, exact JSON representation of a
|
||||
hledger transaction (partial data won't do). You can get sample JSON
|
||||
from hledger-web's '/transactions' or '/accounttransactions', or you can
|
||||
export it with hledger-lib, eg like so:
|
||||
|
||||
.../hledger$ stack ghci hledger-lib
|
||||
>>> writeJsonFile "txn.json" (head $ jtxns samplejournal)
|
||||
@ -475,7 +469,6 @@ can export it with hledger-lib, eg like so:
|
||||
Here's how it looks as of hledger-1.17 (remember, this JSON
|
||||
corresponds to hledger's Transaction and related data types):
|
||||
|
||||
|
||||
{
|
||||
"tcomment": "",
|
||||
"tpostings": [
|
||||
@ -562,10 +555,9 @@ corresponds to hledger's Transaction and related data types):
|
||||
"tstatus": "Unmarked"
|
||||
}
|
||||
|
||||
And here's how to test adding it with curl. This should add a new
|
||||
And here's how to test adding it with curl. This should add a new
|
||||
entry to your journal:
|
||||
|
||||
|
||||
$ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json
|
||||
|
||||
|
||||
@ -574,26 +566,25 @@ File: hledger-web.info, Node: ENVIRONMENT, Next: FILES, Prev: JSON API, Up:
|
||||
6 ENVIRONMENT
|
||||
*************
|
||||
|
||||
*LEDGER_FILE* The journal file path when not specified with `-f'.
|
||||
Default: `~/.hledger.journal' (on windows, perhaps
|
||||
`C:/Users/USER/.hledger.journal').
|
||||
*LEDGER_FILE* The journal file path when not specified with '-f'.
|
||||
Default: '~/.hledger.journal' (on windows, perhaps
|
||||
'C:/Users/USER/.hledger.journal').
|
||||
|
||||
A typical value is `~/DIR/YYYY.journal', where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year. Or
|
||||
`~/DIR/current.journal', where current.journal is a symbolic link to
|
||||
A typical value is '~/DIR/YYYY.journal', where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year. Or
|
||||
'~/DIR/current.journal', where current.journal is a symbolic link to
|
||||
YYYY.journal.
|
||||
|
||||
On Mac computers, you can set this and other environment variables
|
||||
in a more thorough way that also affects applications started from the
|
||||
GUI (say, an Emacs dock icon). Eg on MacOS Catalina I have a
|
||||
`~/.MacOSX/environment.plist' file containing
|
||||
|
||||
On Mac computers, you can set this and other environment variables in
|
||||
a more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon). Eg on MacOS Catalina I have a
|
||||
'~/.MacOSX/environment.plist' file containing
|
||||
|
||||
{
|
||||
"LEDGER_FILE" : "~/finance/current.journal"
|
||||
}
|
||||
|
||||
To see the effect you may need to `killall Dock', or reboot.
|
||||
To see the effect you may need to 'killall Dock', or reboot.
|
||||
|
||||
|
||||
File: hledger-web.info, Node: FILES, Next: BUGS, Prev: ENVIRONMENT, Up: Top
|
||||
@ -602,9 +593,9 @@ File: hledger-web.info, Node: FILES, Next: BUGS, Prev: ENVIRONMENT, Up: Top
|
||||
*******
|
||||
|
||||
Reads data from one or more files in hledger journal, timeclock,
|
||||
timedot, or CSV format specified with `-f', or `$LEDGER_FILE', or
|
||||
`$HOME/.hledger.journal' (on windows, perhaps
|
||||
`C:/Users/USER/.hledger.journal').
|
||||
timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or
|
||||
'$HOME/.hledger.journal' (on windows, perhaps
|
||||
'C:/Users/USER/.hledger.journal').
|
||||
|
||||
|
||||
File: hledger-web.info, Node: BUGS, Prev: FILES, Up: Top
|
||||
@ -612,10 +603,10 @@ File: hledger-web.info, Node: BUGS, Prev: FILES, Up: Top
|
||||
8 BUGS
|
||||
******
|
||||
|
||||
The need to precede options with `--' when invoked from hledger is
|
||||
The need to precede options with '--' when invoked from hledger is
|
||||
awkward.
|
||||
|
||||
`-f-' doesn't work (hledger-web can't read from stdin).
|
||||
'-f-' doesn't work (hledger-web can't read from stdin).
|
||||
|
||||
Query arguments and some hledger options are ignored.
|
||||
|
||||
@ -623,25 +614,29 @@ awkward.
|
||||
|
||||
Does not work well on small screens.
|
||||
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top235
|
||||
Node: OPTIONS1878
|
||||
Ref: #options1983
|
||||
Node: PERMISSIONS9873
|
||||
Ref: #permissions10012
|
||||
Node: EDITING UPLOADING DOWNLOADING11224
|
||||
Ref: #editing-uploading-downloading11405
|
||||
Node: RELOADING12236
|
||||
Ref: #reloading12370
|
||||
Node: JSON API12802
|
||||
Ref: #json-api12916
|
||||
Node: ENVIRONMENT18405
|
||||
Ref: #environment18521
|
||||
Node: FILES19253
|
||||
Ref: #files19353
|
||||
Node: BUGS19566
|
||||
Ref: #bugs19644
|
||||
Node: Top223
|
||||
Node: OPTIONS1889
|
||||
Ref: #options1994
|
||||
Node: PERMISSIONS9905
|
||||
Ref: #permissions10044
|
||||
Node: EDITING UPLOADING DOWNLOADING11256
|
||||
Ref: #editing-uploading-downloading11437
|
||||
Node: RELOADING12271
|
||||
Ref: #reloading12405
|
||||
Node: JSON API12838
|
||||
Ref: #json-api12952
|
||||
Node: ENVIRONMENT18442
|
||||
Ref: #environment18558
|
||||
Node: FILES19291
|
||||
Ref: #files19391
|
||||
Node: BUGS19604
|
||||
Ref: #bugs19682
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Local Variables:
|
||||
coding: utf-8
|
||||
End:
|
||||
|
||||
@ -3101,6 +3101,20 @@ Output as CSV and use a CSV viewer like visidata
|
||||
.IP \[bu] 2
|
||||
Output as HTML and view with a browser:
|
||||
\f[C]hledger bal -D -o a.html && open a.html\f[R]
|
||||
.SS Showing declared accounts
|
||||
.PP
|
||||
With \f[C]--declared\f[R], accounts which have been declared with an
|
||||
account directive will be included in the balance report, even if they
|
||||
have no transactions.
|
||||
(Since they will have a zero balance, you will also need
|
||||
\f[C]-E/--empty\f[R] to see them.)
|
||||
.PP
|
||||
More precisely, \f[I]leaf\f[R] declared accounts (with no subaccounts)
|
||||
will be included, since those are usually the more useful in reports.
|
||||
.PP
|
||||
The idea of this is to be able to see a useful \[dq]complete\[dq]
|
||||
balance report, even when you don\[aq]t have transactions in all of your
|
||||
declared accounts yet.
|
||||
.SS Commodity layout
|
||||
.PP
|
||||
With \f[C]--layout\f[R], you can control how amounts with more than one
|
||||
@ -6790,7 +6804,7 @@ _
|
||||
T{
|
||||
\f[B]\f[CB]account\f[B]\f[R]
|
||||
T}@T{
|
||||
Declare an account, for checking all entries in all files; and its
|
||||
Declares an account, for checking all entries in all files; and its
|
||||
display order and type, for reports.
|
||||
Subdirectives: any text, ignored.
|
||||
T}@T{
|
||||
@ -7282,67 +7296,64 @@ account ACCTNAME [ACCTTYPE] [;COMMENT]
|
||||
.fi
|
||||
.SS Account types
|
||||
.PP
|
||||
hledger recognises five main types of account, corresponding to the
|
||||
account classes in the accounting equation:
|
||||
By adding a \f[C]type\f[R] tag to the account directive, with value
|
||||
\f[C]A\f[R], \f[C]L\f[R], \f[C]E\f[R], \f[C]R\f[R], \f[C]X\f[R],
|
||||
\f[C]C\f[R] (or if you prefer: \f[C]Asset\f[R], \f[C]Liability\f[R],
|
||||
\f[C]Equity\f[R], \f[C]Revenue\f[R], \f[C]Expense\f[R], \f[C]Cash\f[R]),
|
||||
you can declare hledger accounts to be of a certain type:
|
||||
.IP \[bu] 2
|
||||
\f[B]asset\f[R], \f[B]liability\f[R], \f[B]equity\f[R],
|
||||
\f[B]revenue\f[R], \f[B]expense\f[R]
|
||||
.PD 0
|
||||
.P
|
||||
.PD
|
||||
the standard types in accounting, or
|
||||
.IP \[bu] 2
|
||||
\f[B]cash\f[R]
|
||||
.PD 0
|
||||
.P
|
||||
.PD
|
||||
a subtype of asset, used for liquid assets.
|
||||
.PP
|
||||
\f[C]Asset\f[R], \f[C]Liability\f[R], \f[C]Equity\f[R],
|
||||
\f[C]Revenue\f[R], \f[C]Expense\f[R].
|
||||
Declaring account types is a good idea, since it helps enable the easy
|
||||
balancesheet, balancesheetequity, incomestatement and cashflow reports,
|
||||
and probably other things in future.
|
||||
As a convenience, when account types are not declared, hledger will try
|
||||
to guess them based on english-language account names.
|
||||
.PP
|
||||
These account types are important for controlling which accounts appear
|
||||
in the balancesheet, balancesheetequity, incomestatement reports (and
|
||||
probably for other things in future).
|
||||
.PP
|
||||
Additionally, we recognise the \f[C]Cash\f[R] type, which is also an
|
||||
\f[C]Asset\f[R], and which causes accounts to appear in the cashflow
|
||||
report.
|
||||
(\[dq]Cash\[dq] here means liquid assets, eg bank balances but typically
|
||||
not investments or receivables.)
|
||||
.SS Declaring account types
|
||||
.PP
|
||||
To make the balancesheet/balancesheetequity/cashflow/incomestatement
|
||||
reports work, generally you should declare your top-level accounts, and
|
||||
their types.
|
||||
For each top-level account, write an account directive, with a
|
||||
\f[C]type:\f[R] tag.
|
||||
The tag\[aq]s value can be any of \f[C]Asset\f[R], \f[C]Liability\f[R],
|
||||
\f[C]Equity\f[R], \f[C]Revenue\f[R], \f[C]Expense\f[R], \f[C]Cash\f[R],
|
||||
or (for short) \f[C]A\f[R], \f[C]L\f[R], \f[C]E\f[R], \f[C]R\f[R],
|
||||
\f[C]X\f[R], \f[C]C\f[R] (case insensitive).
|
||||
An account\[aq]s type is inherited by its subaccounts, unless they
|
||||
declare a different type.
|
||||
Here\[aq]s an example, declaring all six account types:
|
||||
Here is a typical set of top-level account declarations (because of the
|
||||
aforementioned, with these account names the type tags are not strictly
|
||||
needed, but with non-english or non-standard account names, they will
|
||||
be):
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
account assets ; type: Asset
|
||||
account assets:bank ; type: Cash
|
||||
account assets:cash ; type: Cash
|
||||
account liabilities ; type: Liability
|
||||
account equity ; type: Equity
|
||||
account revenues ; type: Revenue
|
||||
account expenses ; type: Expense
|
||||
account assets ; type: A
|
||||
account liabilities ; type: L
|
||||
account equity ; type: E
|
||||
account revenues ; type: R
|
||||
account expenses ; type: X
|
||||
|
||||
account assets:bank ; type: C
|
||||
account assets:cash ; type: C
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
There is also an older syntax, which is deprecated and will be dropped
|
||||
soon (A, L, E, R or X separated from the account name by two or more
|
||||
spaces):
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
account assets A
|
||||
account liabilities L
|
||||
account equity E
|
||||
account revenues R
|
||||
account expenses X
|
||||
\f[R]
|
||||
.fi
|
||||
It\[aq]s not necessary to declare the type of subaccounts.
|
||||
(You can, if they are different from the parent, but this is not
|
||||
common.)
|
||||
.SS Auto-detected account types
|
||||
.PP
|
||||
hledger tries to find at least one top level account in each of the six
|
||||
account types (Asset, Liability, Equity, Revenue, Expense, Cash).
|
||||
When no accounts have been declared for a particular type, hledger tries
|
||||
to auto-detect some accounts by name, using regular expressions:
|
||||
More about \[dq]guessing\[dq] account types: hledger tries to find at
|
||||
least one top level account in each of the six account types (Asset,
|
||||
Liability, Equity, Revenue, Expense, Cash).
|
||||
When no accounts have been declared for a particular type, it tries to
|
||||
auto-detect some accounts by name, using the regular expressions below.
|
||||
Note: if you declare any account\[aq]s type, it\[aq]s a good idea to
|
||||
declare an account for all six types, because a mix of declared and
|
||||
auto-detected types can cause confusing results.
|
||||
.PP
|
||||
The auto-detection rules are:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
@ -7357,40 +7368,6 @@ to auto-detect some accounts by name, using regular expressions:
|
||||
\[ha]expenses?(:|$) | Expense
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
For people using standard english account names, this feature helps
|
||||
hledger\[aq]s high-level reports work out of the box with minimal
|
||||
configuration.
|
||||
.PP
|
||||
If you use non-english account names, you should declare account types
|
||||
to make these reports work.
|
||||
And more generally, declaring accounts and types is usually a good idea,
|
||||
for increased clarity and predictability (and for the other benefits of
|
||||
account directives: error checking, display order, etc).
|
||||
.PP
|
||||
Notes:
|
||||
.IP \[bu] 2
|
||||
When any account is declared as some type, this disables auto-detection
|
||||
for that particular type.
|
||||
.IP \[bu] 2
|
||||
If you declare any account\[aq]s type, it\[aq]s a good idea to declare
|
||||
an account for all six types, since a mix of declared and auto-detected
|
||||
types can cause confusion.
|
||||
For example, here liabilities is declared to be Equity, but would also
|
||||
be auto-detected as Liability, since no Liability account is declared:
|
||||
.RS 2
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
account liabilities ; type:Equity
|
||||
|
||||
2020-01-01
|
||||
assets 1
|
||||
liabilities 1
|
||||
equity -2
|
||||
\f[R]
|
||||
.fi
|
||||
.RE
|
||||
.SS Account display order
|
||||
.PP
|
||||
Account directives also set the order in which accounts are displayed,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -2161,6 +2161,19 @@ COMMANDS
|
||||
o Output as HTML and view with a browser: hledger bal -D -o a.html &&
|
||||
open a.html
|
||||
|
||||
Showing declared accounts
|
||||
With --declared, accounts which have been declared with an account
|
||||
directive will be included in the balance report, even if they have no
|
||||
transactions. (Since they will have a zero balance, you will also need
|
||||
-E/--empty to see them.)
|
||||
|
||||
More precisely, leaf declared accounts (with no subaccounts) will be
|
||||
included, since those are usually the more useful in reports.
|
||||
|
||||
The idea of this is to be able to see a useful "complete" balance
|
||||
report, even when you don't have transactions in all of your declared
|
||||
accounts yet.
|
||||
|
||||
Commodity layout
|
||||
With --layout, you can control how amounts with more than one commodity
|
||||
are displayed:
|
||||
@ -2412,6 +2425,7 @@ COMMANDS
|
||||
period end ues from report from report report start
|
||||
start to period start to period to period end
|
||||
end end
|
||||
|
||||
--his- change from sum of posting- period-end DATE-value of
|
||||
torical journal start to date market val- value of change change from
|
||||
/-H period end (his- ues from journal from journal journal start
|
||||
@ -4902,7 +4916,7 @@ JOURNAL FORMAT
|
||||
file
|
||||
end?
|
||||
----------------------------------------------------------------------------------
|
||||
account Declare an account, for checking all entries in all files;
|
||||
account Declares an account, for checking all entries in all files;
|
||||
and its display order and type, for reports. Subdirectives:
|
||||
any text, ignored.
|
||||
alias Rewrites account names, in following entries until end of Y
|
||||
@ -4910,6 +4924,8 @@ JOURNAL FORMAT
|
||||
apply Prepends a common parent account to all account names, in Y
|
||||
account following entries until end of current file or end apply
|
||||
account.
|
||||
|
||||
|
||||
comment Ignores part of the journal file, until end of current file Y
|
||||
or end comment.
|
||||
commod- Declares a commodity, for checking all entries in all files; N, Y
|
||||
@ -4928,8 +4944,6 @@ JOURNAL FORMAT
|
||||
include Includes entries and directives from another file, as if they
|
||||
were written inline.
|
||||
payee Declares a payee name, for checking all entries in all files.
|
||||
|
||||
|
||||
P Declares a market price for a commodity on some date, for
|
||||
valuation reports.
|
||||
Y Declares a year for yearless dates, for following entries Y
|
||||
@ -5242,53 +5256,50 @@ JOURNAL FORMAT
|
||||
[LEDGER-STYLE SUBDIRECTIVES, IGNORED]
|
||||
|
||||
Account types
|
||||
hledger recognises five main types of account, corresponding to the
|
||||
account classes in the accounting equation:
|
||||
By adding a type tag to the account directive, with value A, L, E, R,
|
||||
X, C (or if you prefer: Asset, Liability, Equity, Revenue, Expense,
|
||||
Cash), you can declare hledger accounts to be of a certain type:
|
||||
|
||||
Asset, Liability, Equity, Revenue, Expense.
|
||||
o asset, liability, equity, revenue, expense
|
||||
the standard types in accounting, or
|
||||
|
||||
These account types are important for controlling which accounts appear
|
||||
in the balancesheet, balancesheetequity, incomestatement reports (and
|
||||
probably for other things in future).
|
||||
o cash
|
||||
a subtype of asset, used for liquid assets.
|
||||
|
||||
Additionally, we recognise the Cash type, which is also an Asset, and
|
||||
which causes accounts to appear in the cashflow report. ("Cash" here
|
||||
means liquid assets, eg bank balances but typically not investments or
|
||||
receivables.)
|
||||
Declaring account types is a good idea, since it helps enable the easy
|
||||
balancesheet, balancesheetequity, incomestatement and cashflow reports,
|
||||
and probably other things in future. As a convenience, when account
|
||||
types are not declared, hledger will try to guess them based on
|
||||
english-language account names.
|
||||
|
||||
Declaring account types
|
||||
To make the balancesheet/balancesheetequity/cashflow/incomestatement
|
||||
reports work, generally you should declare your top-level accounts, and
|
||||
their types. For each top-level account, write an account directive,
|
||||
with a type: tag. The tag's value can be any of Asset, Liability,
|
||||
Equity, Revenue, Expense, Cash, or (for short) A, L, E, R, X, C (case
|
||||
insensitive). An account's type is inherited by its subaccounts,
|
||||
unless they declare a different type. Here's an example, declaring all
|
||||
six account types:
|
||||
Here is a typical set of top-level account declarations (because of the
|
||||
aforementioned, with these account names the type tags are not strictly
|
||||
needed, but with non-english or non-standard account names, they will
|
||||
be):
|
||||
|
||||
account assets ; type: Asset
|
||||
account assets:bank ; type: Cash
|
||||
account assets:cash ; type: Cash
|
||||
account liabilities ; type: Liability
|
||||
account equity ; type: Equity
|
||||
account revenues ; type: Revenue
|
||||
account expenses ; type: Expense
|
||||
account assets ; type: A
|
||||
account liabilities ; type: L
|
||||
account equity ; type: E
|
||||
account revenues ; type: R
|
||||
account expenses ; type: X
|
||||
|
||||
There is also an older syntax, which is deprecated and will be dropped
|
||||
soon (A, L, E, R or X separated from the account name by two or more
|
||||
spaces):
|
||||
account assets:bank ; type: C
|
||||
account assets:cash ; type: C
|
||||
|
||||
account assets A
|
||||
account liabilities L
|
||||
account equity E
|
||||
account revenues R
|
||||
account expenses X
|
||||
It's not necessary to declare the type of subaccounts. (You can, if
|
||||
they are different from the parent, but this is not common.)
|
||||
|
||||
Auto-detected account types
|
||||
hledger tries to find at least one top level account in each of the six
|
||||
account types (Asset, Liability, Equity, Revenue, Expense, Cash). When
|
||||
no accounts have been declared for a particular type, hledger tries to
|
||||
auto-detect some accounts by name, using regular expressions:
|
||||
More about "guessing" account types: hledger tries to find at least one
|
||||
top level account in each of the six account types (Asset, Liability,
|
||||
Equity, Revenue, Expense, Cash). When no accounts have been declared
|
||||
for a particular type, it tries to auto-detect some accounts by name,
|
||||
using the regular expressions below. Note: if you declare any
|
||||
account's type, it's a good idea to declare an account for all six
|
||||
types, because a mix of declared and auto-detected types can cause con-
|
||||
fusing results.
|
||||
|
||||
The auto-detection rules are:
|
||||
|
||||
If account's name matches this case insensitive regular expression:| its type is:
|
||||
------------------------------------------------------------------- | ------------
|
||||
@ -5300,34 +5311,6 @@ JOURNAL FORMAT
|
||||
^(income|revenue)s?(:|$) | Revenue
|
||||
^expenses?(:|$) | Expense
|
||||
|
||||
For people using standard english account names, this feature helps
|
||||
hledger's high-level reports work out of the box with minimal configu-
|
||||
ration.
|
||||
|
||||
If you use non-english account names, you should declare account types
|
||||
to make these reports work. And more generally, declaring accounts and
|
||||
types is usually a good idea, for increased clarity and predictability
|
||||
(and for the other benefits of account directives: error checking, dis-
|
||||
play order, etc).
|
||||
|
||||
Notes:
|
||||
|
||||
o When any account is declared as some type, this disables auto-detec-
|
||||
tion for that particular type.
|
||||
|
||||
o If you declare any account's type, it's a good idea to declare an
|
||||
account for all six types, since a mix of declared and auto-detected
|
||||
types can cause confusion. For example, here liabilities is declared
|
||||
to be Equity, but would also be auto-detected as Liability, since no
|
||||
Liability account is declared:
|
||||
|
||||
account liabilities ; type:Equity
|
||||
|
||||
2020-01-01
|
||||
assets 1
|
||||
liabilities 1
|
||||
equity -2
|
||||
|
||||
Account display order
|
||||
Account directives also set the order in which accounts are displayed,
|
||||
eg in reports, the hledger-ui accounts screen, and the hledger-web
|
||||
@ -5826,8 +5809,6 @@ CSV FORMAT
|
||||
|
||||
skip skip one or more header lines or matched CSV
|
||||
records
|
||||
|
||||
|
||||
fields list name CSV fields, assign them to hledger
|
||||
fields
|
||||
field assignment assign a value to one hledger field, with
|
||||
|
||||
Loading…
Reference in New Issue
Block a user