;regen embedded manuals
This commit is contained in:
parent
7ef3ddd1e6
commit
5e54920160
@ -1,46 +1,46 @@
|
|||||||
|
|
||||||
.TH "hledger\-api" "1" "March 2019" "hledger\-api 1.14" "hledger User Manuals"
|
.TH "hledger-api" "1" "March 2019" "hledger-api 1.14.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
hledger\-api \- web API server for the hledger accounting tool
|
hledger-api - web API server for the hledger accounting tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.PP
|
.PP
|
||||||
\f[C]hledger\-api\ [OPTIONS]\f[]
|
\f[C]hledger-api [OPTIONS]\f[R]
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\f[C]hledger\ api\ \-\-\ [OPTIONS]\f[]
|
\f[C]hledger api -- [OPTIONS]\f[R]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
hledger is a cross\-platform program for tracking money, time, or any
|
hledger is a cross-platform program for tracking money, time, or any
|
||||||
other commodity, using double\-entry accounting and a simple, editable
|
other commodity, using double-entry accounting and a simple, editable
|
||||||
file format.
|
file format.
|
||||||
hledger is inspired by and largely compatible with ledger(1).
|
hledger is inspired by and largely compatible with ledger(1).
|
||||||
.PP
|
.PP
|
||||||
hledger\-api is a simple web API server, intended to support
|
hledger-api is a simple web API server, intended to support client-side
|
||||||
client\-side web apps operating on hledger data.
|
web apps operating on hledger data.
|
||||||
It comes with a series of simple client\-side app examples, which drive
|
It comes with a series of simple client-side app examples, which drive
|
||||||
its evolution.
|
its evolution.
|
||||||
.PP
|
.PP
|
||||||
Like hledger, it reads data from one or more files in hledger journal,
|
Like hledger, it reads data from one or more files in hledger journal,
|
||||||
timeclock, timedot, or CSV format specified with \f[C]\-f\f[], or
|
timeclock, timedot, or CSV format specified with \f[C]-f\f[R], or
|
||||||
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
|
||||||
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
For more about this see hledger(1), hledger_journal(5) etc.
|
For more about this see hledger(1), hledger_journal(5) etc.
|
||||||
.PP
|
.PP
|
||||||
The server listens on IP address 127.0.0.1, accessible only to local
|
The server listens on IP address 127.0.0.1, accessible only to local
|
||||||
requests, by default.
|
requests, by default.
|
||||||
You can change this with \f[C]\-\-host\f[], eg
|
You can change this with \f[C]--host\f[R], eg \f[C]--host 0.0.0.0\f[R]
|
||||||
\f[C]\-\-host\ 0.0.0.0\f[] to listen on all addresses.
|
to listen on all addresses.
|
||||||
Note there is no other access control, and hledger\-api allows file
|
Note there is no other access control, and hledger-api allows file
|
||||||
browsing, so on shared machines you will certainly need to put it behind
|
browsing, so on shared machines you will certainly need to put it behind
|
||||||
an authenticating proxy to restrict access.
|
an authenticating proxy to restrict access.
|
||||||
.PP
|
.PP
|
||||||
You can change the TCP port it listens on (default: 8001) with
|
You can change the TCP port it listens on (default: 8001) with
|
||||||
\f[C]\-p\ PORT\f[].
|
\f[C]-p PORT\f[R].
|
||||||
.PP
|
.PP
|
||||||
API methods look like:
|
API methods look like:
|
||||||
.IP
|
.IP
|
||||||
@ -52,73 +52,59 @@ API methods look like:
|
|||||||
/api/v1/commodities
|
/api/v1/commodities
|
||||||
/api/v1/accounts
|
/api/v1/accounts
|
||||||
/api/v1/accounts/ACCTNAME
|
/api/v1/accounts/ACCTNAME
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
See \f[C]/api/swagger.json\f[] for a full list in Swagger 2.0 format.
|
See \f[C]/api/swagger.json\f[R] for a full list in Swagger 2.0 format.
|
||||||
(Or you can run \f[C]hledger\-api\ \-\-swagger\f[] to print this in the
|
(Or you can run \f[C]hledger-api --swagger\f[R] to print this in the
|
||||||
console.)
|
console.)
|
||||||
.PP
|
.PP
|
||||||
hledger\-api also serves files, from the current directory by default,
|
hledger-api also serves files, from the current directory by default,
|
||||||
and the \f[C]/\f[] path will also show a directory listing.
|
and the \f[C]/\f[R] path will also show a directory listing.
|
||||||
This is convenient for serving client\-side web code, in addition to the
|
This is convenient for serving client-side web code, in addition to the
|
||||||
server\-side api.
|
server-side api.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.PP
|
.PP
|
||||||
Note: if invoking hledger\-api as a hledger subcommand, write
|
Note: if invoking hledger-api as a hledger subcommand, write
|
||||||
\f[C]\-\-\f[] before options as shown above.
|
\f[C]--\f[R] before options as shown above.
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-f\ \-\-file=FILE\f[]
|
.B \f[C]-f --file=FILE\f[R]
|
||||||
use a different input file.
|
use a different input file.
|
||||||
For stdin, use \- (default: \f[C]$LEDGER_FILE\f[] or
|
For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or
|
||||||
\f[C]$HOME/.hledger.journal\f[])
|
\f[C]$HOME/.hledger.journal\f[R])
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-d\ \-\-static\-dir=DIR\f[]
|
.B \f[C]-d --static-dir=DIR\f[R]
|
||||||
serve files from a different directory (default: \f[C]\&.\f[])
|
serve files from a different directory (default: \f[C].\f[R])
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-host=IPADDR\f[]
|
.B \f[C]--host=IPADDR\f[R]
|
||||||
listen on this IP address (default: 127.0.0.1)
|
listen on this IP address (default: 127.0.0.1)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-p\ \-\-port=PORT\f[]
|
.B \f[C]-p --port=PORT\f[R]
|
||||||
listen on this TCP port (default: 8001)
|
listen on this TCP port (default: 8001)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-swagger\f[]
|
.B \f[C]--swagger\f[R]
|
||||||
print API docs in Swagger 2.0 format, and exit
|
print API docs in Swagger 2.0 format, and exit
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-version\f[]
|
.B \f[C]--version\f[R]
|
||||||
show version
|
show version
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-h\ \-\-help\f[]
|
.B \f[C]-h --help\f[R]
|
||||||
show usage
|
show usage
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.SH ENVIRONMENT
|
.SH ENVIRONMENT
|
||||||
.PP
|
.PP
|
||||||
\f[B]LEDGER_FILE\f[] The journal file path when not specified with
|
\f[B]LEDGER_FILE\f[R] The journal file path when not specified with
|
||||||
\f[C]\-f\f[].
|
\f[C]-f\f[R].
|
||||||
Default: \f[C]~/.hledger.journal\f[] (on windows, perhaps
|
Default: \f[C]\[ti]/.hledger.journal\f[R] (on windows, perhaps
|
||||||
\f[C]C:/Users/USER/.hledger.journal\f[]).
|
\f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.PP
|
.PP
|
||||||
Reads data from one or more files in hledger journal, timeclock,
|
Reads data from one or more files in hledger journal, timeclock,
|
||||||
timedot, or CSV format specified with \f[C]\-f\f[], or
|
timedot, or CSV format specified with \f[C]-f\f[R], or
|
||||||
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
|
||||||
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.PP
|
.PP
|
||||||
The need to precede options with \f[C]\-\-\f[] when invoked from hledger
|
The need to precede options with \f[C]--\f[R] when invoked from hledger
|
||||||
is awkward.
|
is awkward.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger-api.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger-api.info, Node: Top, Next: OPTIONS, Up: (dir)
|
File: hledger-api.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||||
|
|
||||||
hledger-api(1) hledger-api 1.14
|
hledger-api(1) hledger-api 1.14.99
|
||||||
*******************************
|
**********************************
|
||||||
|
|
||||||
hledger-api is a simple web API server, intended to support client-side
|
hledger-api is a simple web API server, intended to support client-side
|
||||||
web apps operating on hledger data. It comes with a series of simple
|
web apps operating on hledger data. It comes with a series of simple
|
||||||
@ -41,6 +41,7 @@ you can run 'hledger-api --swagger' to print this in the console.)
|
|||||||
hledger-api also serves files, from the current directory by default,
|
hledger-api also serves files, from the current directory by default,
|
||||||
and the '/' path will also show a directory listing. This is convenient
|
and the '/' path will also show a directory listing. This is convenient
|
||||||
for serving client-side web code, in addition to the server-side api.
|
for serving client-side web code, in addition to the server-side api.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* OPTIONS::
|
* OPTIONS::
|
||||||
@ -80,7 +81,7 @@ options as shown above.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top72
|
Node: Top72
|
||||||
Node: OPTIONS1660
|
Node: OPTIONS1667
|
||||||
Ref: #options1745
|
Ref: #options1752
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -27,11 +27,11 @@ DESCRIPTION
|
|||||||
hledger_journal(5) etc.
|
hledger_journal(5) etc.
|
||||||
|
|
||||||
The server listens on IP address 127.0.0.1, accessible only to local
|
The server listens on IP address 127.0.0.1, accessible only to local
|
||||||
requests, by default. You can change this with --host, eg
|
requests, by default. You can change this with --host, eg --host
|
||||||
--host 0.0.0.0 to listen on all addresses. Note there is no other
|
0.0.0.0 to listen on all addresses. Note there is no other access con-
|
||||||
access control, and hledger-api allows file browsing, so on shared
|
trol, and hledger-api allows file browsing, so on shared machines you
|
||||||
machines you will certainly need to put it behind an authenticating
|
will certainly need to put it behind an authenticating proxy to
|
||||||
proxy to restrict access.
|
restrict access.
|
||||||
|
|
||||||
You can change the TCP port it listens on (default: 8001) with -p PORT.
|
You can change the TCP port it listens on (default: 8001) with -p PORT.
|
||||||
|
|
||||||
@ -117,4 +117,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-api 1.14 March 2019 hledger-api(1)
|
hledger-api 1.14.99 March 2019 hledger-api(1)
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
|
|
||||||
.TH "hledger_csv" "5" "March 2019" "hledger 1.14" "hledger User Manuals"
|
.TH "hledger_csv" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
CSV \- how hledger reads CSV data, and the CSV rules file format
|
CSV - how hledger reads CSV data, and the CSV rules file format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
hledger can read CSV (comma\-separated value) files as if they were
|
hledger can read CSV (comma-separated value) files as if they were
|
||||||
journal files, automatically converting each CSV record into a
|
journal files, automatically converting each CSV record into a
|
||||||
transaction.
|
transaction.
|
||||||
(To learn about \f[I]writing\f[] CSV, see CSV output.)
|
(To learn about \f[I]writing\f[R] CSV, see CSV output.)
|
||||||
.PP
|
.PP
|
||||||
Converting CSV to transactions requires some special conversion rules.
|
Converting CSV to transactions requires some special conversion rules.
|
||||||
These do several things:
|
These do several things:
|
||||||
@ -24,58 +24,57 @@ templating language
|
|||||||
they can add refinements based on patterns in the CSV data, eg
|
they can add refinements based on patterns in the CSV data, eg
|
||||||
categorizing transactions with more detailed account names.
|
categorizing transactions with more detailed account names.
|
||||||
.PP
|
.PP
|
||||||
When reading a CSV file named \f[C]FILE.csv\f[], hledger looks for a
|
When reading a CSV file named \f[C]FILE.csv\f[R], hledger looks for a
|
||||||
conversion rules file named \f[C]FILE.csv.rules\f[] in the same
|
conversion rules file named \f[C]FILE.csv.rules\f[R] in the same
|
||||||
directory.
|
directory.
|
||||||
You can override this with the \f[C]\-\-rules\-file\f[] option.
|
You can override this with the \f[C]--rules-file\f[R] option.
|
||||||
If the rules file does not exist, hledger will auto\-create one with
|
If the rules file does not exist, hledger will auto-create one with some
|
||||||
some example rules, which you\[aq]ll need to adjust.
|
example rules, which you\[aq]ll need to adjust.
|
||||||
.PP
|
.PP
|
||||||
At minimum, the rules file must identify the \f[C]date\f[] and
|
At minimum, the rules file must identify the date and amount fields.
|
||||||
\f[C]amount\f[] fields.
|
It\[aq]s often necessary to specify the date format, and the number of
|
||||||
It may also be necessary to specify the date format, and the number of
|
header lines to skip, also.
|
||||||
header lines to skip.
|
|
||||||
Eg:
|
Eg:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
fields\ date,\ _,\ _,\ amount
|
fields date, _, _, amount
|
||||||
date\-format\ \ %d/%m/%Y
|
date-format %d/%m/%Y
|
||||||
skip\ 1
|
skip 1
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
A more complete example:
|
A more complete example:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ hledger\ CSV\ rules\ for\ amazon.com\ order\ history
|
# hledger CSV rules for amazon.com order history
|
||||||
|
|
||||||
#\ sample:
|
# sample:
|
||||||
#\ "Date","Type","To/From","Name","Status","Amount","Fees","Transaction\ ID"
|
# \[dq]Date\[dq],\[dq]Type\[dq],\[dq]To/From\[dq],\[dq]Name\[dq],\[dq]Status\[dq],\[dq]Amount\[dq],\[dq]Fees\[dq],\[dq]Transaction ID\[dq]
|
||||||
#\ "Jul\ 29,\ 2012","Payment","To","Adapteva,\ Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
|
# \[dq]Jul 29, 2012\[dq],\[dq]Payment\[dq],\[dq]To\[dq],\[dq]Adapteva, Inc.\[dq],\[dq]Completed\[dq],\[dq]$25.00\[dq],\[dq]$0.00\[dq],\[dq]17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL\[dq]
|
||||||
|
|
||||||
#\ skip\ one\ header\ line
|
# skip one header line
|
||||||
skip\ 1
|
skip 1
|
||||||
|
|
||||||
#\ name\ the\ csv\ fields\ (and\ assign\ the\ transaction\[aq]s\ date,\ amount\ and\ code)
|
# name the csv fields (and assign the transaction\[aq]s date, amount and code)
|
||||||
fields\ date,\ _,\ toorfrom,\ name,\ amzstatus,\ amount,\ fees,\ code
|
fields date, _, toorfrom, name, amzstatus, amount, fees, code
|
||||||
|
|
||||||
#\ how\ to\ parse\ the\ date
|
# how to parse the date
|
||||||
date\-format\ %b\ %\-d,\ %Y
|
date-format %b %-d, %Y
|
||||||
|
|
||||||
#\ combine\ two\ fields\ to\ make\ the\ description
|
# combine two fields to make the description
|
||||||
description\ %toorfrom\ %name
|
description %toorfrom %name
|
||||||
|
|
||||||
#\ save\ these\ fields\ as\ tags
|
# save these fields as tags
|
||||||
comment\ \ \ \ \ status:%amzstatus,\ fees:%fees
|
comment status:%amzstatus, fees:%fees
|
||||||
|
|
||||||
#\ set\ the\ base\ account\ for\ all\ transactions
|
# set the base account for all transactions
|
||||||
account1\ \ \ \ assets:amazon
|
account1 assets:amazon
|
||||||
|
|
||||||
#\ flip\ the\ sign\ on\ the\ amount
|
# flip the sign on the amount
|
||||||
amount\ \ \ \ \ \ \-%amount
|
amount -%amount
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
For more examples, see Convert CSV files.
|
For more examples, see Convert CSV files.
|
||||||
@ -83,11 +82,11 @@ For more examples, see Convert CSV files.
|
|||||||
.PP
|
.PP
|
||||||
The following seven kinds of rule can appear in the rules file, in any
|
The following seven kinds of rule can appear in the rules file, in any
|
||||||
order.
|
order.
|
||||||
Blank lines and lines beginning with \f[C]#\f[] or \f[C];\f[] are
|
Blank lines and lines beginning with \f[C]#\f[R] or \f[C];\f[R] are
|
||||||
ignored.
|
ignored.
|
||||||
.SS skip
|
.SS skip
|
||||||
.PP
|
.PP
|
||||||
\f[C]skip\f[]\f[I]\f[CI]N\f[I]\f[]
|
\f[C]skip\f[R]\f[I]\f[CI]N\f[I]\f[R]
|
||||||
.PP
|
.PP
|
||||||
Skip this number of CSV records at the beginning.
|
Skip this number of CSV records at the beginning.
|
||||||
You\[aq]ll need this whenever your CSV data contains header lines.
|
You\[aq]ll need this whenever your CSV data contains header lines.
|
||||||
@ -95,122 +94,123 @@ Eg:
|
|||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ ignore\ the\ first\ CSV\ line
|
# ignore the first CSV line
|
||||||
skip\ 1
|
skip 1
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS date\-format
|
.SS date-format
|
||||||
.PP
|
.PP
|
||||||
\f[C]date\-format\f[]\f[I]\f[CI]DATEFMT\f[I]\f[]
|
\f[C]date-format\f[R]\f[I]\f[CI]DATEFMT\f[I]\f[R]
|
||||||
.PP
|
.PP
|
||||||
When your CSV date fields are not formatted like \f[C]YYYY/MM/DD\f[] (or
|
When your CSV date fields are not formatted like \f[C]YYYY/MM/DD\f[R]
|
||||||
\f[C]YYYY\-MM\-DD\f[] or \f[C]YYYY.MM.DD\f[]), you\[aq]ll need to
|
(or \f[C]YYYY-MM-DD\f[R] or \f[C]YYYY.MM.DD\f[R]), you\[aq]ll need to
|
||||||
specify the format.
|
specify the format.
|
||||||
DATEFMT is a strptime\-like date parsing pattern, which must parse the
|
DATEFMT is a strptime-like date parsing pattern, which must parse the
|
||||||
date field values completely.
|
date field values completely.
|
||||||
Examples:
|
Examples:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ for\ dates\ like\ "11/06/2013":
|
# for dates like \[dq]11/06/2013\[dq]:
|
||||||
date\-format\ %m/%d/%Y
|
date-format %m/%d/%Y
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ for\ dates\ like\ "6/11/2013"\ (note\ the\ \-\ to\ make\ leading\ zeros\ optional):
|
# for dates like \[dq]6/11/2013\[dq] (note the - to make leading zeros optional):
|
||||||
date\-format\ %\-d/%\-m/%Y
|
date-format %-d/%-m/%Y
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ for\ dates\ like\ "2013\-Nov\-06":
|
# for dates like \[dq]2013-Nov-06\[dq]:
|
||||||
date\-format\ %Y\-%h\-%d
|
date-format %Y-%h-%d
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ for\ dates\ like\ "11/6/2013\ 11:32\ PM":
|
# for dates like \[dq]11/6/2013 11:32 PM\[dq]:
|
||||||
date\-format\ %\-m/%\-d/%Y\ %l:%M\ %p
|
date-format %-m/%-d/%Y %l:%M %p
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS field list
|
.SS field list
|
||||||
.PP
|
.PP
|
||||||
\f[C]fields\f[]\f[I]\f[CI]FIELDNAME1\f[I]\f[],
|
\f[C]fields\f[R]\f[I]\f[CI]FIELDNAME1\f[I]\f[R],
|
||||||
\f[I]\f[CI]FIELDNAME2\f[I]\f[]...
|
\f[I]\f[CI]FIELDNAME2\f[I]\f[R]...
|
||||||
.PP
|
.PP
|
||||||
This (a) names the CSV fields, in order (names may not contain
|
This (a) names the CSV fields, in order (names may not contain
|
||||||
whitespace; uninteresting names may be left blank), and (b) assigns them
|
whitespace; uninteresting names may be left blank), and (b) assigns them
|
||||||
to journal entry fields if you use any of these standard field names:
|
to journal entry fields if you use any of these standard field names:
|
||||||
\f[C]date\f[], \f[C]date2\f[], \f[C]status\f[], \f[C]code\f[],
|
\f[C]date\f[R], \f[C]date2\f[R], \f[C]status\f[R], \f[C]code\f[R],
|
||||||
\f[C]description\f[], \f[C]comment\f[], \f[C]account1\f[],
|
\f[C]description\f[R], \f[C]comment\f[R], \f[C]account1\f[R],
|
||||||
\f[C]account2\f[], \f[C]amount\f[], \f[C]amount\-in\f[],
|
\f[C]account2\f[R], \f[C]amount\f[R], \f[C]amount-in\f[R],
|
||||||
\f[C]amount\-out\f[], \f[C]currency\f[], \f[C]balance\f[].
|
\f[C]amount-out\f[R], \f[C]currency\f[R], \f[C]balance\f[R],
|
||||||
|
\f[C]balance1\f[R], \f[C]balance2\f[R].
|
||||||
Eg:
|
Eg:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ use\ the\ 1st,\ 2nd\ and\ 4th\ CSV\ fields\ as\ the\ entry\[aq]s\ date,\ description\ and\ amount,
|
# use the 1st, 2nd and 4th CSV fields as the entry\[aq]s date, description and amount,
|
||||||
#\ and\ give\ the\ 7th\ and\ 8th\ fields\ meaningful\ names\ for\ later\ reference:
|
# and give the 7th and 8th fields meaningful names for later reference:
|
||||||
#
|
#
|
||||||
#\ CSV\ field:
|
# CSV field:
|
||||||
#\ \ \ \ \ \ 1\ \ \ \ \ 2\ \ \ \ \ \ \ \ \ \ \ \ 3\ 4\ \ \ \ \ \ \ 5\ 6\ 7\ \ \ \ \ \ \ \ \ \ 8
|
# 1 2 3 4 5 6 7 8
|
||||||
#\ entry\ field:
|
# entry field:
|
||||||
fields\ date,\ description,\ ,\ amount,\ ,\ ,\ somefield,\ anotherfield
|
fields date, description, , amount, , , somefield, anotherfield
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS field assignment
|
.SS field assignment
|
||||||
.PP
|
.PP
|
||||||
\f[I]\f[CI]ENTRYFIELDNAME\f[I]\f[] \f[I]\f[CI]FIELDVALUE\f[I]\f[]
|
\f[I]\f[CI]ENTRYFIELDNAME\f[I]\f[R] \f[I]\f[CI]FIELDVALUE\f[I]\f[R]
|
||||||
.PP
|
.PP
|
||||||
This sets a journal entry field (one of the standard names above) to the
|
This sets a journal entry field (one of the standard names above) to the
|
||||||
given text value, which can include CSV field values interpolated by
|
given text value, which can include CSV field values interpolated by
|
||||||
name (\f[C]%CSVFIELDNAME\f[]) or 1\-based position (\f[C]%N\f[]).
|
name (\f[C]%CSVFIELDNAME\f[R]) or 1-based position (\f[C]%N\f[R]).
|
||||||
Eg:
|
Eg:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ set\ the\ amount\ to\ the\ 4th\ CSV\ field\ with\ "USD\ "\ prepended
|
# set the amount to the 4th CSV field with \[dq]USD \[dq] prepended
|
||||||
amount\ USD\ %4
|
amount USD %4
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ combine\ three\ fields\ to\ make\ a\ comment\ (containing\ two\ tags)
|
# combine three fields to make a comment (containing two tags)
|
||||||
comment\ note:\ %somefield\ \-\ %anotherfield,\ date:\ %1
|
comment note: %somefield - %anotherfield, date: %1
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Field assignments can be used instead of or in addition to a field list.
|
Field assignments can be used instead of or in addition to a field list.
|
||||||
.SS conditional block
|
.SS conditional block
|
||||||
.PP
|
.PP
|
||||||
\f[C]if\f[] \f[I]\f[CI]PATTERN\f[I]\f[]
|
\f[C]if\f[R] \f[I]\f[CI]PATTERN\f[I]\f[R]
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\ \ \ \ \f[I]\f[CI]FIELDASSIGNMENTS\f[I]\f[]...
|
\ \ \ \ \f[I]\f[CI]FIELDASSIGNMENTS\f[I]\f[R]...
|
||||||
.PP
|
.PP
|
||||||
\f[C]if\f[]
|
\f[C]if\f[R]
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\f[I]\f[CI]PATTERN\f[I]\f[]
|
\f[I]\f[CI]PATTERN\f[I]\f[R]
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\f[I]\f[CI]PATTERN\f[I]\f[]...
|
\f[I]\f[CI]PATTERN\f[I]\f[R]...
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\ \ \ \ \f[I]\f[CI]FIELDASSIGNMENTS\f[I]\f[]...
|
\ \ \ \ \f[I]\f[CI]FIELDASSIGNMENTS\f[I]\f[R]...
|
||||||
.PP
|
.PP
|
||||||
This applies one or more field assignments, only to those CSV records
|
This applies one or more field assignments, only to those CSV records
|
||||||
matched by one of the PATTERNs.
|
matched by one of the PATTERNs.
|
||||||
The patterns are case\-insensitive regular expressions which match
|
The patterns are case-insensitive regular expressions which match
|
||||||
anywhere within the whole CSV record (it\[aq]s not yet possible to match
|
anywhere within the whole CSV record (it\[aq]s not yet possible to match
|
||||||
within a specific field).
|
within a specific field).
|
||||||
When there are multiple patterns they can be written on separate lines,
|
When there are multiple patterns they can be written on separate lines,
|
||||||
@ -221,46 +221,46 @@ Examples:
|
|||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ if\ the\ CSV\ record\ contains\ "groceries",\ set\ account2\ to\ "expenses:groceries"
|
# if the CSV record contains \[dq]groceries\[dq], set account2 to \[dq]expenses:groceries\[dq]
|
||||||
if\ groceries
|
if groceries
|
||||||
\ account2\ expenses:groceries
|
account2 expenses:groceries
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ if\ the\ CSV\ record\ contains\ any\ of\ these\ patterns,\ set\ account2\ and\ comment\ as\ shown
|
# if the CSV record contains any of these patterns, set account2 and comment as shown
|
||||||
if
|
if
|
||||||
monthly\ service\ fee
|
monthly service fee
|
||||||
atm\ transaction\ fee
|
atm transaction fee
|
||||||
banking\ thru\ software
|
banking thru software
|
||||||
\ account2\ expenses:business:banking
|
account2 expenses:business:banking
|
||||||
\ comment\ \ XXX\ deductible\ ?\ check\ it
|
comment XXX deductible ? check it
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS include
|
.SS include
|
||||||
.PP
|
.PP
|
||||||
\f[C]include\f[]\f[I]\f[CI]RULESFILE\f[I]\f[]
|
\f[C]include\f[R]\f[I]\f[CI]RULESFILE\f[I]\f[R]
|
||||||
.PP
|
.PP
|
||||||
Include another rules file at this point.
|
Include another rules file at this point.
|
||||||
\f[C]RULESFILE\f[] is either an absolute file path or a path relative to
|
\f[C]RULESFILE\f[R] is either an absolute file path or a path relative
|
||||||
the current file\[aq]s directory.
|
to the current file\[aq]s directory.
|
||||||
Eg:
|
Eg:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ rules\ reused\ with\ several\ CSV\ files
|
# rules reused with several CSV files
|
||||||
include\ common.rules
|
include common.rules
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SS newest\-first
|
.SS newest-first
|
||||||
.PP
|
.PP
|
||||||
\f[C]newest\-first\f[]
|
\f[C]newest-first\f[R]
|
||||||
.PP
|
.PP
|
||||||
Consider adding this rule if all of the following are true: you might be
|
Consider adding this rule if all of the following are true: you might be
|
||||||
processing just one day of data, your CSV records are in reverse
|
processing just one day of data, your CSV records are in reverse
|
||||||
chronological order (newest first), and you care about preserving the
|
chronological order (newest first), and you care about preserving the
|
||||||
order of same\-day transactions.
|
order of same-day transactions.
|
||||||
It usually isn\[aq]t needed, because hledger autodetects the CSV order,
|
It usually isn\[aq]t needed, because hledger autodetects the CSV order,
|
||||||
but when all CSV records have the same date it will assume they are
|
but when all CSV records have the same date it will assume they are
|
||||||
oldest first.
|
oldest first.
|
||||||
@ -268,49 +268,69 @@ oldest first.
|
|||||||
.SS CSV ordering
|
.SS CSV ordering
|
||||||
.PP
|
.PP
|
||||||
The generated journal entries will be sorted by date.
|
The generated journal entries will be sorted by date.
|
||||||
The order of same\-day entries will be preserved (except in the special
|
The order of same-day entries will be preserved (except in the special
|
||||||
case where you might need \f[C]newest\-first\f[], see above).
|
case where you might need \f[C]newest-first\f[R], see above).
|
||||||
.SS CSV accounts
|
.SS CSV accounts
|
||||||
.PP
|
.PP
|
||||||
Each journal entry will have two postings, to \f[C]account1\f[] and
|
Each journal entry will have two postings, to \f[C]account1\f[R] and
|
||||||
\f[C]account2\f[] respectively.
|
\f[C]account2\f[R] respectively.
|
||||||
It\[aq]s not yet possible to generate entries with more than two
|
It\[aq]s not yet possible to generate entries with more than two
|
||||||
postings.
|
postings.
|
||||||
It\[aq]s conventional and recommended to use \f[C]account1\f[] for the
|
It\[aq]s conventional and recommended to use \f[C]account1\f[R] for the
|
||||||
account whose CSV we are reading.
|
account whose CSV we are reading.
|
||||||
.SS CSV amounts
|
.SS CSV amounts
|
||||||
.PP
|
.PP
|
||||||
The \f[C]amount\f[] field sets the amount of the \f[C]account1\f[]
|
A transaction amount must be set, in one of these ways:
|
||||||
posting.
|
.IP \[bu] 2
|
||||||
.PP
|
with an \f[C]amount\f[R] field assignment, which sets the first
|
||||||
If the CSV has debit/credit amounts in separate fields, assign to the
|
posting\[aq]s amount
|
||||||
\f[C]amount\-in\f[] and \f[C]amount\-out\f[] pseudo fields instead.
|
.IP \[bu] 2
|
||||||
(Whichever one has a value will be used, with appropriate sign.
|
(When the CSV has debit and credit amounts in separate fields:)
|
||||||
If both contain a value, it may not work so well.)
|
.PD 0
|
||||||
.PP
|
.P
|
||||||
If an amount value is parenthesised, it will be de\-parenthesised and
|
.PD
|
||||||
sign\-flipped.
|
with field assignments for the \f[C]amount-in\f[R] and
|
||||||
|
\f[C]amount-out\f[R] pseudo fields (both of them).
|
||||||
|
Whichever one has a value will be used, with appropriate sign.
|
||||||
|
If both contain a value, it might not work so well.
|
||||||
|
.IP \[bu] 2
|
||||||
|
or implicitly by means of a balance assignment (see below).
|
||||||
.PP
|
.PP
|
||||||
|
There is some special handling for sign in amounts:
|
||||||
|
.IP \[bu] 2
|
||||||
|
If an amount value is parenthesised, it will be de-parenthesised and
|
||||||
|
sign-flipped.
|
||||||
|
.IP \[bu] 2
|
||||||
If an amount value begins with a double minus sign, those will cancel
|
If an amount value begins with a double minus sign, those will cancel
|
||||||
out and be removed.
|
out and be removed.
|
||||||
.PP
|
.PP
|
||||||
If the CSV has the currency symbol in a separate field, assign that to
|
If the currency/commodity symbol is provided as a separate CSV field,
|
||||||
the \f[C]currency\f[] pseudo field to have it prepended to the amount.
|
assign it to the \f[C]currency\f[R] pseudo field; the symbol will be
|
||||||
Or, you can use a field assignment to \f[C]amount\f[] that interpolates
|
prepended to the amount (TODO: when there is an amount).
|
||||||
both CSV fields (giving more control, eg to put the currency symbol on
|
Or, you can use an \f[C]amount\f[R] field assignment for more control,
|
||||||
the right).
|
eg:
|
||||||
.SS CSV balance assertions
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
fields date,description,currency,amount
|
||||||
|
amount %amount %currency
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.SS CSV balance assertions/assignments
|
||||||
.PP
|
.PP
|
||||||
If the CSV includes a running balance, you can assign that to the
|
If the CSV includes a running balance, you can assign that to one of the
|
||||||
\f[C]balance\f[] pseudo field; whenever the running balance value is
|
pseudo fields \f[C]balance\f[R] (or \f[C]balance1\f[R]) or
|
||||||
non\-empty, it will be asserted as the balance after the
|
\f[C]balance2\f[R].
|
||||||
\f[C]account1\f[] posting.
|
This will generate a balance assertion (or if the amount is left empty,
|
||||||
|
a balance assignment), on the first or second posting, whenever the
|
||||||
|
running balance field is non-empty.
|
||||||
|
(TODO: #1000)
|
||||||
.SS Reading multiple CSV files
|
.SS Reading multiple CSV files
|
||||||
.PP
|
.PP
|
||||||
You can read multiple CSV files at once using multiple \f[C]\-f\f[]
|
You can read multiple CSV files at once using multiple \f[C]-f\f[R]
|
||||||
arguments on the command line, and hledger will look for a
|
arguments on the command line, and hledger will look for a
|
||||||
correspondingly\-named rules file for each.
|
correspondingly-named rules file for each.
|
||||||
Note if you use the \f[C]\-\-rules\-file\f[] option, this one rules file
|
Note if you use the \f[C]--rules-file\f[R] option, this one rules file
|
||||||
will be used for all the CSV files being read.
|
will be used for all the CSV files being read.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger_csv.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir)
|
File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir)
|
||||||
|
|
||||||
hledger_csv(5) hledger 1.14
|
hledger_csv(5) hledger 1.14.99
|
||||||
***************************
|
******************************
|
||||||
|
|
||||||
hledger can read CSV (comma-separated value) files as if they were
|
hledger can read CSV (comma-separated value) files as if they were
|
||||||
journal files, automatically converting each CSV record into a
|
journal files, automatically converting each CSV record into a
|
||||||
@ -25,9 +25,9 @@ can override this with the '--rules-file' option. If the rules file
|
|||||||
does not exist, hledger will auto-create one with some example rules,
|
does not exist, hledger will auto-create one with some example rules,
|
||||||
which you'll need to adjust.
|
which you'll need to adjust.
|
||||||
|
|
||||||
At minimum, the rules file must identify the 'date' and 'amount'
|
At minimum, the rules file must identify the date and amount fields.
|
||||||
fields. It may also be necessary to specify the date format, and the
|
It's often necessary to specify the date format, and the number of
|
||||||
number of header lines to skip. Eg:
|
header lines to skip, also. Eg:
|
||||||
|
|
||||||
fields date, _, _, amount
|
fields date, _, _, amount
|
||||||
date-format %d/%m/%Y
|
date-format %d/%m/%Y
|
||||||
@ -63,6 +63,7 @@ account1 assets:amazon
|
|||||||
amount -%amount
|
amount -%amount
|
||||||
|
|
||||||
For more examples, see Convert CSV files.
|
For more examples, see Convert CSV files.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* CSV RULES::
|
* CSV RULES::
|
||||||
@ -76,6 +77,7 @@ File: hledger_csv.info, Node: CSV RULES, Next: CSV TIPS, Prev: Top, Up: Top
|
|||||||
|
|
||||||
The following seven kinds of rule can appear in the rules file, in any
|
The following seven kinds of rule can appear in the rules file, in any
|
||||||
order. Blank lines and lines beginning with '#' or ';' are ignored.
|
order. Blank lines and lines beginning with '#' or ';' are ignored.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* skip::
|
* skip::
|
||||||
@ -137,8 +139,8 @@ File: hledger_csv.info, Node: field list, Next: field assignment, Prev: date-
|
|||||||
whitespace; uninteresting names may be left blank), and (b) assigns them
|
whitespace; uninteresting names may be left blank), and (b) assigns them
|
||||||
to journal entry fields if you use any of these standard field names:
|
to journal entry fields if you use any of these standard field names:
|
||||||
'date', 'date2', 'status', 'code', 'description', 'comment', 'account1',
|
'date', 'date2', 'status', 'code', 'description', 'comment', 'account1',
|
||||||
'account2', 'amount', 'amount-in', 'amount-out', 'currency', 'balance'.
|
'account2', 'amount', 'amount-in', 'amount-out', 'currency', 'balance',
|
||||||
Eg:
|
'balance1', 'balance2'. Eg:
|
||||||
|
|
||||||
# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
|
# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
|
||||||
# and give the 7th and 8th fields meaningful names for later reference:
|
# and give the 7th and 8th fields meaningful names for later reference:
|
||||||
@ -244,7 +246,7 @@ File: hledger_csv.info, Node: CSV TIPS, Prev: CSV RULES, Up: Top
|
|||||||
* CSV ordering::
|
* CSV ordering::
|
||||||
* CSV accounts::
|
* CSV accounts::
|
||||||
* CSV amounts::
|
* CSV amounts::
|
||||||
* CSV balance assertions::
|
* CSV balance assertions/assignments::
|
||||||
* Reading multiple CSV files::
|
* Reading multiple CSV files::
|
||||||
|
|
||||||
|
|
||||||
@ -269,42 +271,53 @@ two postings. It's conventional and recommended to use 'account1' for
|
|||||||
the account whose CSV we are reading.
|
the account whose CSV we are reading.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: CSV amounts, Next: CSV balance assertions, Prev: CSV accounts, Up: CSV TIPS
|
File: hledger_csv.info, Node: CSV amounts, Next: CSV balance assertions/assignments, Prev: CSV accounts, Up: CSV TIPS
|
||||||
|
|
||||||
2.3 CSV amounts
|
2.3 CSV amounts
|
||||||
===============
|
===============
|
||||||
|
|
||||||
The 'amount' field sets the amount of the 'account1' posting.
|
A transaction amount must be set, in one of these ways:
|
||||||
|
|
||||||
If the CSV has debit/credit amounts in separate fields, assign to the
|
* with an 'amount' field assignment, which sets the first posting's
|
||||||
'amount-in' and 'amount-out' pseudo fields instead. (Whichever one has
|
amount
|
||||||
a value will be used, with appropriate sign. If both contain a value,
|
|
||||||
it may not work so well.)
|
|
||||||
|
|
||||||
If an amount value is parenthesised, it will be de-parenthesised and
|
* (When the CSV has debit and credit amounts in separate fields:)
|
||||||
sign-flipped.
|
with field assignments for the 'amount-in' and 'amount-out' pseudo
|
||||||
|
fields (both of them). Whichever one has a value will be used,
|
||||||
|
with appropriate sign. If both contain a value, it might not work
|
||||||
|
so well.
|
||||||
|
|
||||||
If an amount value begins with a double minus sign, those will cancel
|
* or implicitly by means of a balance assignment (see below).
|
||||||
out and be removed.
|
|
||||||
|
|
||||||
If the CSV has the currency symbol in a separate field, assign that
|
There is some special handling for sign in amounts:
|
||||||
to the 'currency' pseudo field to have it prepended to the amount. Or,
|
|
||||||
you can use a field assignment to 'amount' that interpolates both CSV
|
* If an amount value is parenthesised, it will be de-parenthesised
|
||||||
fields (giving more control, eg to put the currency symbol on the
|
and sign-flipped.
|
||||||
right).
|
* If an amount value begins with a double minus sign, those will
|
||||||
|
cancel out and be removed.
|
||||||
|
|
||||||
|
If the currency/commodity symbol is provided as a separate CSV field,
|
||||||
|
assign it to the 'currency' pseudo field; the symbol will be prepended
|
||||||
|
to the amount (TODO: when there is an amount). Or, you can use an
|
||||||
|
'amount' field assignment for more control, eg:
|
||||||
|
|
||||||
|
fields date,description,currency,amount
|
||||||
|
amount %amount %currency
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: CSV balance assertions, Next: Reading multiple CSV files, Prev: CSV amounts, Up: CSV TIPS
|
File: hledger_csv.info, Node: CSV balance assertions/assignments, Next: Reading multiple CSV files, Prev: CSV amounts, Up: CSV TIPS
|
||||||
|
|
||||||
2.4 CSV balance assertions
|
2.4 CSV balance assertions/assignments
|
||||||
==========================
|
======================================
|
||||||
|
|
||||||
If the CSV includes a running balance, you can assign that to the
|
If the CSV includes a running balance, you can assign that to one of the
|
||||||
'balance' pseudo field; whenever the running balance value is non-empty,
|
pseudo fields 'balance' (or 'balance1') or 'balance2'. This will
|
||||||
it will be asserted as the balance after the 'account1' posting.
|
generate a balance assertion (or if the amount is left empty, a balance
|
||||||
|
assignment), on the first or second posting, whenever the running
|
||||||
|
balance field is non-empty. (TODO: #1000)
|
||||||
|
|
||||||
|
|
||||||
File: hledger_csv.info, Node: Reading multiple CSV files, Prev: CSV balance assertions, Up: CSV TIPS
|
File: hledger_csv.info, Node: Reading multiple CSV files, Prev: CSV balance assertions/assignments, Up: CSV TIPS
|
||||||
|
|
||||||
2.5 Reading multiple CSV files
|
2.5 Reading multiple CSV files
|
||||||
==============================
|
==============================
|
||||||
@ -317,33 +330,33 @@ one rules file will be used for all the CSV files being read.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top72
|
Node: Top72
|
||||||
Node: CSV RULES2163
|
Node: CSV RULES2167
|
||||||
Ref: #csv-rules2271
|
Ref: #csv-rules2275
|
||||||
Node: skip2533
|
Node: skip2538
|
||||||
Ref: #skip2627
|
Ref: #skip2632
|
||||||
Node: date-format2799
|
Node: date-format2804
|
||||||
Ref: #date-format2926
|
Ref: #date-format2931
|
||||||
Node: field list3476
|
Node: field list3481
|
||||||
Ref: #field-list3613
|
Ref: #field-list3618
|
||||||
Node: field assignment4318
|
Node: field assignment4348
|
||||||
Ref: #field-assignment4473
|
Ref: #field-assignment4503
|
||||||
Node: conditional block4977
|
Node: conditional block5007
|
||||||
Ref: #conditional-block5131
|
Ref: #conditional-block5161
|
||||||
Node: include6027
|
Node: include6057
|
||||||
Ref: #include6157
|
Ref: #include6187
|
||||||
Node: newest-first6388
|
Node: newest-first6418
|
||||||
Ref: #newest-first6502
|
Ref: #newest-first6532
|
||||||
Node: CSV TIPS6913
|
Node: CSV TIPS6943
|
||||||
Ref: #csv-tips7007
|
Ref: #csv-tips7037
|
||||||
Node: CSV ordering7125
|
Node: CSV ordering7167
|
||||||
Ref: #csv-ordering7243
|
Ref: #csv-ordering7285
|
||||||
Node: CSV accounts7424
|
Node: CSV accounts7466
|
||||||
Ref: #csv-accounts7562
|
Ref: #csv-accounts7604
|
||||||
Node: CSV amounts7816
|
Node: CSV amounts7858
|
||||||
Ref: #csv-amounts7962
|
Ref: #csv-amounts8016
|
||||||
Node: CSV balance assertions8737
|
Node: CSV balance assertions/assignments9096
|
||||||
Ref: #csv-balance-assertions8919
|
Ref: #csv-balance-assertionsassignments9314
|
||||||
Node: Reading multiple CSV files9124
|
Node: Reading multiple CSV files9635
|
||||||
Ref: #reading-multiple-csv-files9294
|
Ref: #reading-multiple-csv-files9817
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -29,8 +29,8 @@ DESCRIPTION
|
|||||||
you'll need to adjust.
|
you'll need to adjust.
|
||||||
|
|
||||||
At minimum, the rules file must identify the date and amount fields.
|
At minimum, the rules file must identify the date and amount fields.
|
||||||
It may also be necessary to specify the date format, and the number of
|
It's often necessary to specify the date format, and the number of
|
||||||
header lines to skip. Eg:
|
header lines to skip, also. Eg:
|
||||||
|
|
||||||
fields date, _, _, amount
|
fields date, _, _, amount
|
||||||
date-format %d/%m/%Y
|
date-format %d/%m/%Y
|
||||||
@ -83,10 +83,10 @@ CSV RULES
|
|||||||
date-format
|
date-format
|
||||||
date-formatDATEFMT
|
date-formatDATEFMT
|
||||||
|
|
||||||
When your CSV date fields are not formatted like YYYY/MM/DD (or
|
When your CSV date fields are not formatted like YYYY/MM/DD (or YYYY-
|
||||||
YYYY-MM-DD or YYYY.MM.DD), you'll need to specify the format. DATEFMT
|
MM-DD or YYYY.MM.DD), you'll need to specify the format. DATEFMT is a
|
||||||
is a strptime-like date parsing pattern, which must parse the date
|
strptime-like date parsing pattern, which must parse the date field
|
||||||
field values completely. Examples:
|
values completely. Examples:
|
||||||
|
|
||||||
# for dates like "11/06/2013":
|
# for dates like "11/06/2013":
|
||||||
date-format %m/%d/%Y
|
date-format %m/%d/%Y
|
||||||
@ -107,7 +107,8 @@ CSV RULES
|
|||||||
space; uninteresting names may be left blank), and (b) assigns them to
|
space; uninteresting names may be left blank), and (b) assigns them to
|
||||||
journal entry fields if you use any of these standard field names:
|
journal entry fields if you use any of these standard field names:
|
||||||
date, date2, status, code, description, comment, account1, account2,
|
date, date2, status, code, description, comment, account1, account2,
|
||||||
amount, amount-in, amount-out, currency, balance. Eg:
|
amount, amount-in, amount-out, currency, balance, balance1, balance2.
|
||||||
|
Eg:
|
||||||
|
|
||||||
# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
|
# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
|
||||||
# and give the 7th and 8th fields meaningful names for later reference:
|
# and give the 7th and 8th fields meaningful names for later reference:
|
||||||
@ -120,10 +121,9 @@ CSV RULES
|
|||||||
field assignment
|
field assignment
|
||||||
ENTRYFIELDNAME FIELDVALUE
|
ENTRYFIELDNAME FIELDVALUE
|
||||||
|
|
||||||
This sets a journal entry field (one of the standard names above) to
|
This sets a journal entry field (one of the standard names above) to
|
||||||
the given text value, which can include CSV field values interpolated
|
the given text value, which can include CSV field values interpolated
|
||||||
by name (%CSVFIELDNAME) or 1-based position (%N).
|
by name (%CSVFIELDNAME) or 1-based position (%N). Eg:
|
||||||
Eg:
|
|
||||||
|
|
||||||
# set the amount to the 4th CSV field with "USD " prepended
|
# set the amount to the 4th CSV field with "USD " prepended
|
||||||
amount USD %4
|
amount USD %4
|
||||||
@ -131,7 +131,7 @@ CSV RULES
|
|||||||
# combine three fields to make a comment (containing two tags)
|
# combine three fields to make a comment (containing two tags)
|
||||||
comment note: %somefield - %anotherfield, date: %1
|
comment note: %somefield - %anotherfield, date: %1
|
||||||
|
|
||||||
Field assignments can be used instead of or in addition to a field
|
Field assignments can be used instead of or in addition to a field
|
||||||
list.
|
list.
|
||||||
|
|
||||||
conditional block
|
conditional block
|
||||||
@ -143,12 +143,12 @@ CSV RULES
|
|||||||
PATTERN...
|
PATTERN...
|
||||||
FIELDASSIGNMENTS...
|
FIELDASSIGNMENTS...
|
||||||
|
|
||||||
This applies one or more field assignments, only to those CSV records
|
This applies one or more field assignments, only to those CSV records
|
||||||
matched by one of the PATTERNs. The patterns are case-insensitive reg-
|
matched by one of the PATTERNs. The patterns are case-insensitive reg-
|
||||||
ular expressions which match anywhere within the whole CSV record (it's
|
ular expressions which match anywhere within the whole CSV record (it's
|
||||||
not yet possible to match within a specific field). When there are
|
not yet possible to match within a specific field). When there are
|
||||||
multiple patterns they can be written on separate lines, unindented.
|
multiple patterns they can be written on separate lines, unindented.
|
||||||
The field assignments are on separate lines indented by at least one
|
The field assignments are on separate lines indented by at least one
|
||||||
space. Examples:
|
space. Examples:
|
||||||
|
|
||||||
# if the CSV record contains "groceries", set account2 to "expenses:groceries"
|
# if the CSV record contains "groceries", set account2 to "expenses:groceries"
|
||||||
@ -175,59 +175,71 @@ CSV RULES
|
|||||||
newest-first
|
newest-first
|
||||||
newest-first
|
newest-first
|
||||||
|
|
||||||
Consider adding this rule if all of the following are true: you might
|
Consider adding this rule if all of the following are true: you might
|
||||||
be processing just one day of data, your CSV records are in reverse
|
be processing just one day of data, your CSV records are in reverse
|
||||||
chronological order (newest first), and you care about preserving the
|
chronological order (newest first), and you care about preserving the
|
||||||
order of same-day transactions. It usually isn't needed, because
|
order of same-day transactions. It usually isn't needed, because
|
||||||
hledger autodetects the CSV order, but when all CSV records have the
|
hledger autodetects the CSV order, but when all CSV records have the
|
||||||
same date it will assume they are oldest first.
|
same date it will assume they are oldest first.
|
||||||
|
|
||||||
CSV TIPS
|
CSV TIPS
|
||||||
CSV ordering
|
CSV ordering
|
||||||
The generated journal entries will be sorted by date. The order of
|
The generated journal entries will be sorted by date. The order of
|
||||||
same-day entries will be preserved (except in the special case where
|
same-day entries will be preserved (except in the special case where
|
||||||
you might need newest-first, see above).
|
you might need newest-first, see above).
|
||||||
|
|
||||||
CSV accounts
|
CSV accounts
|
||||||
Each journal entry will have two postings, to account1 and account2
|
Each journal entry will have two postings, to account1 and account2
|
||||||
respectively. It's not yet possible to generate entries with more than
|
respectively. It's not yet possible to generate entries with more than
|
||||||
two postings. It's conventional and recommended to use account1 for
|
two postings. It's conventional and recommended to use account1 for
|
||||||
the account whose CSV we are reading.
|
the account whose CSV we are reading.
|
||||||
|
|
||||||
CSV amounts
|
CSV amounts
|
||||||
The amount field sets the amount of the account1 posting.
|
A transaction amount must be set, in one of these ways:
|
||||||
|
|
||||||
If the CSV has debit/credit amounts in separate fields, assign to the
|
o with an amount field assignment, which sets the first posting's
|
||||||
amount-in and amount-out pseudo fields instead. (Whichever one has a
|
amount
|
||||||
value will be used, with appropriate sign. If both contain a value, it
|
|
||||||
may not work so well.)
|
|
||||||
|
|
||||||
If an amount value is parenthesised, it will be de-parenthesised and
|
o (When the CSV has debit and credit amounts in separate fields:)
|
||||||
sign-flipped.
|
with field assignments for the amount-in and amount-out pseudo fields
|
||||||
|
(both of them). Whichever one has a value will be used, with appropri-
|
||||||
|
ate sign. If both contain a value, it might not work so well.
|
||||||
|
|
||||||
If an amount value begins with a double minus sign, those will cancel
|
o or implicitly by means of a balance assignment (see below).
|
||||||
out and be removed.
|
|
||||||
|
|
||||||
If the CSV has the currency symbol in a separate field, assign that to
|
There is some special handling for sign in amounts:
|
||||||
the currency pseudo field to have it prepended to the amount. Or, you
|
|
||||||
can use a field assignment to amount that interpolates both CSV fields
|
|
||||||
(giving more control, eg to put the currency symbol on the right).
|
|
||||||
|
|
||||||
CSV balance assertions
|
o If an amount value is parenthesised, it will be de-parenthesised and
|
||||||
If the CSV includes a running balance, you can assign that to the bal-
|
sign-flipped.
|
||||||
ance pseudo field; whenever the running balance value is non-empty, it
|
|
||||||
will be asserted as the balance after the account1 posting.
|
o If an amount value begins with a double minus sign, those will cancel
|
||||||
|
out and be removed.
|
||||||
|
|
||||||
|
If the currency/commodity symbol is provided as a separate CSV field,
|
||||||
|
assign it to the currency pseudo field; the symbol will be prepended to
|
||||||
|
the amount (TODO: when there is an amount). Or, you can use an amount
|
||||||
|
field assignment for more control, eg:
|
||||||
|
|
||||||
|
fields date,description,currency,amount
|
||||||
|
amount %amount %currency
|
||||||
|
|
||||||
|
CSV balance assertions/assignments
|
||||||
|
If the CSV includes a running balance, you can assign that to one of
|
||||||
|
the pseudo fields balance (or balance1) or balance2. This will gener-
|
||||||
|
ate a balance assertion (or if the amount is left empty, a balance
|
||||||
|
assignment), on the first or second posting, whenever the running bal-
|
||||||
|
ance field is non-empty. (TODO: #1000)
|
||||||
|
|
||||||
Reading multiple CSV files
|
Reading multiple CSV files
|
||||||
You can read multiple CSV files at once using multiple -f arguments on
|
You can read multiple CSV files at once using multiple -f arguments on
|
||||||
the command line, and hledger will look for a correspondingly-named
|
the command line, and hledger will look for a correspondingly-named
|
||||||
rules file for each. Note if you use the --rules-file option, this one
|
rules file for each. Note if you use the --rules-file option, this one
|
||||||
rules file will be used for all the CSV files being read.
|
rules file will be used for all the CSV files being read.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
REPORTING BUGS
|
REPORTING BUGS
|
||||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||||
or hledger mail list)
|
or hledger mail list)
|
||||||
|
|
||||||
|
|
||||||
@ -241,7 +253,7 @@ COPYRIGHT
|
|||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||||
dot(5), ledger(1)
|
dot(5), ledger(1)
|
||||||
|
|
||||||
@ -249,4 +261,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14 March 2019 hledger_csv(5)
|
hledger 1.14.99 March 2019 hledger_csv(5)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -4,8 +4,8 @@ stdin.
|
|||||||
|
|
||||||
File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
||||||
|
|
||||||
hledger_journal(5) hledger 1.14
|
hledger_journal(5) hledger 1.14.99
|
||||||
*******************************
|
**********************************
|
||||||
|
|
||||||
hledger's usual data source is a plain text file containing journal
|
hledger's usual data source is a plain text file containing journal
|
||||||
entries in hledger journal format. This file represents a standard
|
entries in hledger journal format. This file represents a standard
|
||||||
@ -82,7 +82,7 @@ File: hledger_journal.info, Node: FILE FORMAT, Next: EDITOR SUPPORT, Prev: To
|
|||||||
* Tags::
|
* Tags::
|
||||||
* Directives::
|
* Directives::
|
||||||
* Periodic transactions::
|
* Periodic transactions::
|
||||||
* Transaction modifiers::
|
* Auto postings / transaction modifiers::
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Transactions, Next: Postings, Up: FILE FORMAT
|
File: hledger_journal.info, Node: Transactions, Next: Postings, Up: FILE FORMAT
|
||||||
@ -296,6 +296,7 @@ and status mark (or until a comment begins). Sometimes called the
|
|||||||
"narration" in traditional bookkeeping, it can be used for whatever you
|
"narration" in traditional bookkeeping, it can be used for whatever you
|
||||||
wish, or left blank. Transaction descriptions can be queried, unlike
|
wish, or left blank. Transaction descriptions can be queried, unlike
|
||||||
comments.
|
comments.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Payee and note::
|
* Payee and note::
|
||||||
@ -467,6 +468,7 @@ can protect you from, eg, inadvertently disrupting reconciled balances
|
|||||||
while cleaning up old entries. You can disable them temporarily with
|
while cleaning up old entries. You can disable them temporarily with
|
||||||
the '-I/--ignore-assertions' flag, which can be useful for
|
the '-I/--ignore-assertions' flag, which can be useful for
|
||||||
troubleshooting or for reading Ledger files.
|
troubleshooting or for reading Ledger files.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Assertions and ordering::
|
* Assertions and ordering::
|
||||||
@ -655,6 +657,7 @@ of the commodity to that account since the last balance assertion or
|
|||||||
assignment). Note that using balance assignments makes your journal a
|
assignment). Note that using balance assignments makes your journal a
|
||||||
little less explicit; to know the exact amount posted, you have to run
|
little less explicit; to know the exact amount posted, you have to run
|
||||||
hledger or do the calculations yourself, instead of just reading it.
|
hledger or do the calculations yourself, instead of just reading it.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Balance assignments and prices::
|
* Balance assignments and prices::
|
||||||
@ -914,6 +917,7 @@ typically last only until the end of their defining file. This provides
|
|||||||
more simplicity and predictability, eg reports are not changed by
|
more simplicity and predictability, eg reports are not changed by
|
||||||
writing file options in a different order. It can be surprising at
|
writing file options in a different order. It can be surprising at
|
||||||
times though.
|
times though.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Comment blocks::
|
* Comment blocks::
|
||||||
@ -1248,6 +1252,7 @@ They do not affect account names being entered via hledger add or
|
|||||||
hledger-web.
|
hledger-web.
|
||||||
|
|
||||||
See also Cookbook: Rewrite account names.
|
See also Cookbook: Rewrite account names.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Basic aliases::
|
* Basic aliases::
|
||||||
@ -1372,7 +1377,7 @@ If account aliases are present, they are applied after the default
|
|||||||
parent account.
|
parent account.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Periodic transactions, Next: Transaction modifiers, Prev: Directives, Up: FILE FORMAT
|
File: hledger_journal.info, Node: Periodic transactions, Next: Auto postings / transaction modifiers, Prev: Directives, Up: FILE FORMAT
|
||||||
|
|
||||||
1.15 Periodic transactions
|
1.15 Periodic transactions
|
||||||
==========================
|
==========================
|
||||||
@ -1398,6 +1403,7 @@ date must fall on a natural boundary of the interval. Eg 'monthly from
|
|||||||
expression can work (useful or not). They will be relative to today's
|
expression can work (useful or not). They will be relative to today's
|
||||||
date, unless a Y default year directive is in effect, in which case they
|
date, unless a Y default year directive is in effect, in which case they
|
||||||
will be relative to Y/1/1.
|
will be relative to Y/1/1.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Two spaces after the period expression::
|
* Two spaces after the period expression::
|
||||||
@ -1482,29 +1488,29 @@ compared in budget reports.
|
|||||||
and Forecasting.
|
and Forecasting.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Transaction modifiers, Prev: Periodic transactions, Up: FILE FORMAT
|
File: hledger_journal.info, Node: Auto postings / transaction modifiers, Prev: Periodic transactions, Up: FILE FORMAT
|
||||||
|
|
||||||
1.16 Transaction modifiers
|
1.16 Auto postings / transaction modifiers
|
||||||
==========================
|
==========================================
|
||||||
|
|
||||||
Transaction modifier rules describe changes that should be applied
|
Transaction modifier rules describe changes to be applied automatically
|
||||||
automatically to certain transactions. They can be enabled by using the
|
to certain matched transactions. Currently just one kind of change is
|
||||||
'--auto' flag. Currently, just one kind of change is possible: adding
|
possible - adding extra postings, which we call "automated postings" or
|
||||||
extra postings. These rule-generated postings are known as "automated
|
just "auto postings". These rules become active when you use the
|
||||||
postings" or "auto postings".
|
'--auto' flag.
|
||||||
|
|
||||||
A transaction modifier rule looks quite like a normal transaction,
|
A transaction modifier, AKA auto posting rule, looks much like a
|
||||||
except the first line is an equals sign followed by a query that matches
|
normal transaction except the first line is an equals sign followed by a
|
||||||
certain postings (mnemonic: '=' suggests matching). And each "posting"
|
query that matches certain postings (mnemonic: '=' suggests matching).
|
||||||
is actually a posting-generating rule:
|
And each "posting" is actually a posting-generating rule:
|
||||||
|
|
||||||
= QUERY
|
= QUERY
|
||||||
ACCT AMT
|
ACCT AMT
|
||||||
ACCT [AMT]
|
ACCT [AMT]
|
||||||
...
|
...
|
||||||
|
|
||||||
These posting rules look like normal postings, except the amount can
|
These posting-generating rules look like normal postings, except the
|
||||||
be:
|
amount can be:
|
||||||
|
|
||||||
* a normal amount with a commodity symbol, eg '$2'. This will be
|
* a normal amount with a commodity symbol, eg '$2'. This will be
|
||||||
used as-is.
|
used as-is.
|
||||||
@ -1517,6 +1523,10 @@ be:
|
|||||||
and symbol S). The matched posting's amount will be multiplied by
|
and symbol S). The matched posting's amount will be multiplied by
|
||||||
N, and its commodity symbol will be replaced with S.
|
N, and its commodity symbol will be replaced with S.
|
||||||
|
|
||||||
|
These rules have global effect - a rule appearing anywhere in your
|
||||||
|
data can potentially affect any transaction, including transactions
|
||||||
|
recorded above it or in another file.
|
||||||
|
|
||||||
Some examples:
|
Some examples:
|
||||||
|
|
||||||
; every time I buy food, schedule a dollar donation
|
; every time I buy food, schedule a dollar donation
|
||||||
@ -1553,7 +1563,7 @@ $ hledger print --auto
|
|||||||
* Auto postings and transaction balancing / inferred amounts / balance assertions::
|
* Auto postings and transaction balancing / inferred amounts / balance assertions::
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Transaction modifiers
|
File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
||||||
|
|
||||||
1.16.1 Auto postings and transaction balancing / inferred amounts /
|
1.16.1 Auto postings and transaction balancing / inferred amounts /
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
@ -1585,109 +1595,109 @@ See the [[Cookbook]] at hledger.org for the latest information.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top76
|
Node: Top76
|
||||||
Node: FILE FORMAT2372
|
Node: FILE FORMAT2378
|
||||||
Ref: #file-format2496
|
Ref: #file-format2502
|
||||||
Node: Transactions2783
|
Node: Transactions2805
|
||||||
Ref: #transactions2904
|
Ref: #transactions2926
|
||||||
Node: Postings3588
|
Node: Postings3610
|
||||||
Ref: #postings3715
|
Ref: #postings3737
|
||||||
Node: Dates4710
|
Node: Dates4732
|
||||||
Ref: #dates4825
|
Ref: #dates4847
|
||||||
Node: Simple dates4890
|
Node: Simple dates4912
|
||||||
Ref: #simple-dates5016
|
Ref: #simple-dates5038
|
||||||
Node: Secondary dates5382
|
Node: Secondary dates5404
|
||||||
Ref: #secondary-dates5536
|
Ref: #secondary-dates5558
|
||||||
Node: Posting dates7099
|
Node: Posting dates7121
|
||||||
Ref: #posting-dates7228
|
Ref: #posting-dates7250
|
||||||
Node: Status8602
|
Node: Status8624
|
||||||
Ref: #status8722
|
Ref: #status8744
|
||||||
Node: Description10430
|
Node: Description10452
|
||||||
Ref: #description10568
|
Ref: #description10590
|
||||||
Node: Payee and note10887
|
Node: Payee and note10910
|
||||||
Ref: #payee-and-note11001
|
Ref: #payee-and-note11024
|
||||||
Node: Account names11243
|
Node: Account names11266
|
||||||
Ref: #account-names11386
|
Ref: #account-names11409
|
||||||
Node: Amounts11873
|
Node: Amounts11896
|
||||||
Ref: #amounts12009
|
Ref: #amounts12032
|
||||||
Node: Virtual Postings15026
|
Node: Virtual Postings15049
|
||||||
Ref: #virtual-postings15185
|
Ref: #virtual-postings15208
|
||||||
Node: Balance Assertions16405
|
Node: Balance Assertions16428
|
||||||
Ref: #balance-assertions16580
|
Ref: #balance-assertions16603
|
||||||
Node: Assertions and ordering17538
|
Node: Assertions and ordering17562
|
||||||
Ref: #assertions-and-ordering17724
|
Ref: #assertions-and-ordering17748
|
||||||
Node: Assertions and included files18424
|
Node: Assertions and included files18448
|
||||||
Ref: #assertions-and-included-files18665
|
Ref: #assertions-and-included-files18689
|
||||||
Node: Assertions and multiple -f options18998
|
Node: Assertions and multiple -f options19022
|
||||||
Ref: #assertions-and-multiple--f-options19252
|
Ref: #assertions-and-multiple--f-options19276
|
||||||
Node: Assertions and commodities19384
|
Node: Assertions and commodities19408
|
||||||
Ref: #assertions-and-commodities19614
|
Ref: #assertions-and-commodities19638
|
||||||
Node: Assertions and prices20770
|
Node: Assertions and prices20794
|
||||||
Ref: #assertions-and-prices20982
|
Ref: #assertions-and-prices21006
|
||||||
Node: Assertions and subaccounts21422
|
Node: Assertions and subaccounts21446
|
||||||
Ref: #assertions-and-subaccounts21649
|
Ref: #assertions-and-subaccounts21673
|
||||||
Node: Assertions and virtual postings21973
|
Node: Assertions and virtual postings21997
|
||||||
Ref: #assertions-and-virtual-postings22213
|
Ref: #assertions-and-virtual-postings22237
|
||||||
Node: Assertions and precision22355
|
Node: Assertions and precision22379
|
||||||
Ref: #assertions-and-precision22546
|
Ref: #assertions-and-precision22570
|
||||||
Node: Balance Assignments22813
|
Node: Balance Assignments22837
|
||||||
Ref: #balance-assignments22994
|
Ref: #balance-assignments23018
|
||||||
Node: Balance assignments and prices24158
|
Node: Balance assignments and prices24183
|
||||||
Ref: #balance-assignments-and-prices24330
|
Ref: #balance-assignments-and-prices24355
|
||||||
Node: Transaction prices24554
|
Node: Transaction prices24579
|
||||||
Ref: #transaction-prices24723
|
Ref: #transaction-prices24748
|
||||||
Node: Comments26991
|
Node: Comments27016
|
||||||
Ref: #comments27125
|
Ref: #comments27150
|
||||||
Node: Tags28295
|
Node: Tags28320
|
||||||
Ref: #tags28413
|
Ref: #tags28438
|
||||||
Node: Directives29815
|
Node: Directives29840
|
||||||
Ref: #directives29958
|
Ref: #directives29983
|
||||||
Node: Comment blocks35565
|
Node: Comment blocks35591
|
||||||
Ref: #comment-blocks35710
|
Ref: #comment-blocks35736
|
||||||
Node: Including other files35886
|
Node: Including other files35912
|
||||||
Ref: #including-other-files36066
|
Ref: #including-other-files36092
|
||||||
Node: Default year36474
|
Node: Default year36500
|
||||||
Ref: #default-year36643
|
Ref: #default-year36669
|
||||||
Node: Declaring commodities37066
|
Node: Declaring commodities37092
|
||||||
Ref: #declaring-commodities37249
|
Ref: #declaring-commodities37275
|
||||||
Node: Default commodity38476
|
Node: Default commodity38502
|
||||||
Ref: #default-commodity38652
|
Ref: #default-commodity38678
|
||||||
Node: Market prices39288
|
Node: Market prices39314
|
||||||
Ref: #market-prices39453
|
Ref: #market-prices39479
|
||||||
Node: Declaring accounts40294
|
Node: Declaring accounts40320
|
||||||
Ref: #declaring-accounts40470
|
Ref: #declaring-accounts40496
|
||||||
Node: Account comments41395
|
Node: Account comments41421
|
||||||
Ref: #account-comments41558
|
Ref: #account-comments41584
|
||||||
Node: Account subdirectives41953
|
Node: Account subdirectives41979
|
||||||
Ref: #account-subdirectives42148
|
Ref: #account-subdirectives42174
|
||||||
Node: Account types42461
|
Node: Account types42487
|
||||||
Ref: #account-types42645
|
Ref: #account-types42671
|
||||||
Node: Account display order44289
|
Node: Account display order44315
|
||||||
Ref: #account-display-order44459
|
Ref: #account-display-order44485
|
||||||
Node: Rewriting accounts45588
|
Node: Rewriting accounts45614
|
||||||
Ref: #rewriting-accounts45773
|
Ref: #rewriting-accounts45799
|
||||||
Node: Basic aliases46507
|
Node: Basic aliases46534
|
||||||
Ref: #basic-aliases46653
|
Ref: #basic-aliases46680
|
||||||
Node: Regex aliases47357
|
Node: Regex aliases47384
|
||||||
Ref: #regex-aliases47528
|
Ref: #regex-aliases47555
|
||||||
Node: Multiple aliases48246
|
Node: Multiple aliases48273
|
||||||
Ref: #multiple-aliases48421
|
Ref: #multiple-aliases48448
|
||||||
Node: end aliases48919
|
Node: end aliases48946
|
||||||
Ref: #end-aliases49066
|
Ref: #end-aliases49093
|
||||||
Node: Default parent account49167
|
Node: Default parent account49194
|
||||||
Ref: #default-parent-account49333
|
Ref: #default-parent-account49360
|
||||||
Node: Periodic transactions50217
|
Node: Periodic transactions50244
|
||||||
Ref: #periodic-transactions50399
|
Ref: #periodic-transactions50442
|
||||||
Node: Two spaces after the period expression51524
|
Node: Two spaces after the period expression51568
|
||||||
Ref: #two-spaces-after-the-period-expression51769
|
Ref: #two-spaces-after-the-period-expression51813
|
||||||
Node: Forecasting with periodic transactions52254
|
Node: Forecasting with periodic transactions52298
|
||||||
Ref: #forecasting-with-periodic-transactions52544
|
Ref: #forecasting-with-periodic-transactions52588
|
||||||
Node: Budgeting with periodic transactions54231
|
Node: Budgeting with periodic transactions54275
|
||||||
Ref: #budgeting-with-periodic-transactions54470
|
Ref: #budgeting-with-periodic-transactions54514
|
||||||
Node: Transaction modifiers54929
|
Node: Auto postings / transaction modifiers54973
|
||||||
Ref: #transaction-modifiers55092
|
Ref: #auto-postings-transaction-modifiers55184
|
||||||
Node: Auto postings and transaction balancing / inferred amounts / balance assertions57076
|
Node: Auto postings and transaction balancing / inferred amounts / balance assertions57356
|
||||||
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions57377
|
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions57673
|
||||||
Node: EDITOR SUPPORT57755
|
Node: EDITOR SUPPORT58051
|
||||||
Ref: #editor-support57873
|
Ref: #editor-support58169
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,74 +1,74 @@
|
|||||||
|
|
||||||
.TH "hledger_timeclock" "5" "March 2019" "hledger 1.14" "hledger User Manuals"
|
.TH "hledger_timeclock" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
Timeclock \- the time logging format of timeclock.el, as read by hledger
|
Timeclock - the time logging format of timeclock.el, as read by hledger
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
hledger can read timeclock files.
|
hledger can read timeclock files.
|
||||||
As with Ledger, these are (a subset of) timeclock.el\[aq]s format,
|
As with Ledger, these are (a subset of) timeclock.el\[aq]s format,
|
||||||
containing clock\-in and clock\-out entries as in the example below.
|
containing clock-in and clock-out entries as in the example below.
|
||||||
The date is a simple date.
|
The date is a simple date.
|
||||||
The time format is HH:MM[:SS][+\-ZZZZ].
|
The time format is HH:MM[:SS][+-ZZZZ].
|
||||||
Seconds and timezone are optional.
|
Seconds and timezone are optional.
|
||||||
The timezone, if present, must be four digits and is ignored (currently
|
The timezone, if present, must be four digits and is ignored (currently
|
||||||
the time is always interpreted as a local time).
|
the time is always interpreted as a local time).
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
i\ 2015/03/30\ 09:00:00\ some:account\ name\ \ optional\ description\ after\ two\ spaces
|
i 2015/03/30 09:00:00 some:account name optional description after two spaces
|
||||||
o\ 2015/03/30\ 09:20:00
|
o 2015/03/30 09:20:00
|
||||||
i\ 2015/03/31\ 22:21:45\ another\ account
|
i 2015/03/31 22:21:45 another account
|
||||||
o\ 2015/04/01\ 02:00:34
|
o 2015/04/01 02:00:34
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
hledger treats each clock\-in/clock\-out pair as a transaction posting
|
hledger treats each clock-in/clock-out pair as a transaction posting
|
||||||
some number of hours to an account.
|
some number of hours to an account.
|
||||||
Or if the session spans more than one day, it is split into several
|
Or if the session spans more than one day, it is split into several
|
||||||
transactions, one for each day.
|
transactions, one for each day.
|
||||||
For the above time log, \f[C]hledger\ print\f[] generates these journal
|
For the above time log, \f[C]hledger print\f[R] generates these journal
|
||||||
entries:
|
entries:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ hledger\ \-f\ t.timeclock\ print
|
$ hledger -f t.timeclock print
|
||||||
2015/03/30\ *\ optional\ description\ after\ two\ spaces
|
2015/03/30 * optional description after two spaces
|
||||||
\ \ \ \ (some:account\ name)\ \ \ \ \ \ \ \ \ 0.33h
|
(some:account name) 0.33h
|
||||||
|
|
||||||
2015/03/31\ *\ 22:21\-23:59
|
2015/03/31 * 22:21-23:59
|
||||||
\ \ \ \ (another\ account)\ \ \ \ \ \ \ \ \ 1.64h
|
(another account) 1.64h
|
||||||
|
|
||||||
2015/04/01\ *\ 00:00\-02:00
|
2015/04/01 * 00:00-02:00
|
||||||
\ \ \ \ (another\ account)\ \ \ \ \ \ \ \ \ 2.01h
|
(another account) 2.01h
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Here is a sample.timeclock to download and some queries to try:
|
Here is a sample.timeclock to download and some queries to try:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ hledger\ \-f\ sample.timeclock\ balance\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ current\ time\ balances
|
$ hledger -f sample.timeclock balance # current time balances
|
||||||
$\ hledger\ \-f\ sample.timeclock\ register\ \-p\ 2009/3\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ sessions\ in\ march\ 2009
|
$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
|
||||||
$\ hledger\ \-f\ sample.timeclock\ register\ \-p\ weekly\ \-\-depth\ 1\ \-\-empty\ \ #\ time\ summary\ by\ week
|
$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
To generate time logs, ie to clock in and clock out, you could:
|
To generate time logs, ie to clock in and clock out, you could:
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
use emacs and the built\-in timeclock.el, or the extended
|
use emacs and the built-in timeclock.el, or the extended timeclock-x.el
|
||||||
timeclock\-x.el and perhaps the extras in ledgerutils.el
|
and perhaps the extras in ledgerutils.el
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
at the command line, use these bash aliases:
|
at the command line, use these bash aliases:
|
||||||
\f[C]shell\ \ \ alias\ ti="echo\ i\ `date\ \[aq]+%Y\-%m\-%d\ %H:%M:%S\[aq]`\ \\$*\ >>$TIMELOG"\ \ \ alias\ to="echo\ o\ `date\ \[aq]+%Y\-%m\-%d\ %H:%M:%S\[aq]`\ >>$TIMELOG"\f[]
|
\f[C]shell alias ti=\[dq]echo i \[ga]date \[aq]+%Y-%m-%d %H:%M:%S\[aq]\[ga] \[rs]$* >>$TIMELOG\[dq] alias to=\[dq]echo o \[ga]date \[aq]+%Y-%m-%d %H:%M:%S\[aq]\[ga] >>$TIMELOG\[dq]\f[R]
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
or use the old \f[C]ti\f[] and \f[C]to\f[] scripts in the ledger 2.x
|
or use the old \f[C]ti\f[R] and \f[C]to\f[R] scripts in the ledger 2.x
|
||||||
repository.
|
repository.
|
||||||
These rely on a "timeclock" executable which I think is just the ledger
|
These rely on a \[dq]timeclock\[dq] executable which I think is just the
|
||||||
2 executable renamed.
|
ledger 2 executable renamed.
|
||||||
|
|
||||||
|
|
||||||
.SH "REPORTING BUGS"
|
.SH "REPORTING BUGS"
|
||||||
|
|||||||
@ -4,8 +4,8 @@ stdin.
|
|||||||
|
|
||||||
File: hledger_timeclock.info, Node: Top, Up: (dir)
|
File: hledger_timeclock.info, Node: Top, Up: (dir)
|
||||||
|
|
||||||
hledger_timeclock(5) hledger 1.14
|
hledger_timeclock(5) hledger 1.14.99
|
||||||
*********************************
|
************************************
|
||||||
|
|
||||||
hledger can read timeclock files. As with Ledger, these are (a subset
|
hledger can read timeclock files. As with Ledger, these are (a subset
|
||||||
of) timeclock.el's format, containing clock-in and clock-out entries as
|
of) timeclock.el's format, containing clock-in and clock-out entries as
|
||||||
@ -48,6 +48,7 @@ $ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summa
|
|||||||
* at the command line, use these bash aliases: 'shell alias ti="echo
|
* at the command line, use these bash aliases: 'shell alias ti="echo
|
||||||
i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o
|
i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o
|
||||||
`date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"'
|
`date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"'
|
||||||
|
|
||||||
* or use the old 'ti' and 'to' scripts in the ledger 2.x repository.
|
* or use the old 'ti' and 'to' scripts in the ledger 2.x repository.
|
||||||
These rely on a "timeclock" executable which I think is just the
|
These rely on a "timeclock" executable which I think is just the
|
||||||
ledger 2 executable renamed.
|
ledger 2 executable renamed.
|
||||||
|
|||||||
@ -42,11 +42,12 @@ DESCRIPTION
|
|||||||
|
|
||||||
To generate time logs, ie to clock in and clock out, you could:
|
To generate time logs, ie to clock in and clock out, you could:
|
||||||
|
|
||||||
o use emacs and the built-in timeclock.el, or the extended time-
|
o use emacs and the built-in timeclock.el, or the extended timeclock-
|
||||||
clock-x.el and perhaps the extras in ledgerutils.el
|
x.el and perhaps the extras in ledgerutils.el
|
||||||
|
|
||||||
o at the command line, use these bash aliases:
|
o at the command line, use these bash aliases: shell alias ti="echo i
|
||||||
shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
|
`date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date
|
||||||
|
'+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
|
||||||
|
|
||||||
o or use the old ti and to scripts in the ledger 2.x repository. These
|
o or use the old ti and to scripts in the ledger 2.x repository. These
|
||||||
rely on a "timeclock" executable which I think is just the ledger 2
|
rely on a "timeclock" executable which I think is just the ledger 2
|
||||||
@ -77,4 +78,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14 March 2019 hledger_timeclock(5)
|
hledger 1.14.99 March 2019 hledger_timeclock(5)
|
||||||
|
|||||||
@ -1,32 +1,32 @@
|
|||||||
|
|
||||||
.TH "hledger_timedot" "5" "March 2019" "hledger 1.14" "hledger User Manuals"
|
.TH "hledger_timedot" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
Timedot \- hledger\[aq]s human\-friendly time logging format
|
Timedot - hledger\[aq]s human-friendly time logging format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
Timedot is a plain text format for logging dated, categorised quantities
|
Timedot is a plain text format for logging dated, categorised quantities
|
||||||
(of time, usually), supported by hledger.
|
(of time, usually), supported by hledger.
|
||||||
It is convenient for approximate and retroactive time logging, eg when
|
It is convenient for approximate and retroactive time logging, eg when
|
||||||
the real\-time clock\-in/out required with a timeclock file is too
|
the real-time clock-in/out required with a timeclock file is too precise
|
||||||
precise or too interruptive.
|
or too interruptive.
|
||||||
It can be formatted like a bar chart, making clear at a glance where
|
It can be formatted like a bar chart, making clear at a glance where
|
||||||
time was spent.
|
time was spent.
|
||||||
.PP
|
.PP
|
||||||
Though called "timedot", this format is read by hledger as commodityless
|
Though called \[dq]timedot\[dq], this format is read by hledger as
|
||||||
quantities, so it could be used to represent dated quantities other than
|
commodityless quantities, so it could be used to represent dated
|
||||||
time.
|
quantities other than time.
|
||||||
In the docs below we\[aq]ll assume it\[aq]s time.
|
In the docs below we\[aq]ll assume it\[aq]s time.
|
||||||
.SH FILE FORMAT
|
.SH FILE FORMAT
|
||||||
.PP
|
.PP
|
||||||
A timedot file contains a series of day entries.
|
A timedot file contains a series of day entries.
|
||||||
A day entry begins with a date, and is followed by category/quantity
|
A day entry begins with a date, and is followed by category/quantity
|
||||||
pairs, one per line.
|
pairs, one per line.
|
||||||
Dates are hledger\-style simple dates (see hledger_journal(5)).
|
Dates are hledger-style simple dates (see hledger_journal(5)).
|
||||||
Categories are hledger\-style account names, optionally indented.
|
Categories are hledger-style account names, optionally indented.
|
||||||
As in a hledger journal, there must be at least two spaces between the
|
As in a hledger journal, there must be at least two spaces between the
|
||||||
category (account name) and the quantity.
|
category (account name) and the quantity.
|
||||||
.PP
|
.PP
|
||||||
@ -41,9 +41,9 @@ an integral or decimal number, representing hours.
|
|||||||
Eg: 1.5
|
Eg: 1.5
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
an integral or decimal number immediately followed by a unit symbol
|
an integral or decimal number immediately followed by a unit symbol
|
||||||
\f[C]s\f[], \f[C]m\f[], \f[C]h\f[], \f[C]d\f[], \f[C]w\f[], \f[C]mo\f[],
|
\f[C]s\f[R], \f[C]m\f[R], \f[C]h\f[R], \f[C]d\f[R], \f[C]w\f[R],
|
||||||
or \f[C]y\f[], representing seconds, minutes, hours, days weeks, months
|
\f[C]mo\f[R], or \f[C]y\f[R], representing seconds, minutes, hours, days
|
||||||
or years respectively.
|
weeks, months or years respectively.
|
||||||
Eg: 90m.
|
Eg: 90m.
|
||||||
The following equivalencies are assumed, currently: 1m = 60s, 1h = 60m,
|
The following equivalencies are assumed, currently: 1m = 60s, 1h = 60m,
|
||||||
1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
|
1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
|
||||||
@ -53,16 +53,16 @@ An example:
|
|||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
#\ 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
|
||||||
inc:client1\ \ \ ....\ ....\ ....\ ....\ ....\ ....
|
inc:client1 .... .... .... .... .... ....
|
||||||
fos:haskell\ \ \ ....\ ..\
|
fos:haskell .... ..
|
||||||
biz:research\ \ .
|
biz:research .
|
||||||
|
|
||||||
2016/2/2
|
2016/2/2
|
||||||
inc:client1\ \ \ ....\ ....
|
inc:client1 .... ....
|
||||||
biz:research\ \ .
|
biz:research .
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Or with numbers:
|
Or with numbers:
|
||||||
@ -70,42 +70,42 @@ Or with numbers:
|
|||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
2016/2/3
|
2016/2/3
|
||||||
inc:client1\ \ \ 4
|
inc:client1 4
|
||||||
fos:hledger\ \ \ 3
|
fos:hledger 3
|
||||||
biz:research\ \ 1
|
biz:research 1
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Reporting:
|
Reporting:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ hledger\ \-f\ t.timedot\ print\ date:2016/2/2
|
$ hledger -f t.timedot print date:2016/2/2
|
||||||
2016/02/02\ *
|
2016/02/02 *
|
||||||
\ \ \ \ (inc:client1)\ \ \ \ \ \ \ \ \ \ 2.00
|
(inc:client1) 2.00
|
||||||
|
|
||||||
2016/02/02\ *
|
2016/02/02 *
|
||||||
\ \ \ \ (biz:research)\ \ \ \ \ \ \ \ \ \ 0.25
|
(biz:research) 0.25
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ hledger\ \-f\ t.timedot\ bal\ \-\-daily\ \-\-tree
|
$ hledger -f t.timedot bal --daily --tree
|
||||||
Balance\ changes\ in\ 2016/02/01\-2016/02/03:
|
Balance changes in 2016/02/01-2016/02/03:
|
||||||
|
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2016/02/01d\ \ 2016/02/02d\ \ 2016/02/03d\
|
|| 2016/02/01d 2016/02/02d 2016/02/03d
|
||||||
============++========================================
|
============++========================================
|
||||||
\ biz\ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ 0.25\ \ \ \ \ \ \ \ \ 0.25\ \ \ \ \ \ \ \ \ 1.00\
|
biz || 0.25 0.25 1.00
|
||||||
\ \ \ research\ ||\ \ \ \ \ \ \ \ \ 0.25\ \ \ \ \ \ \ \ \ 0.25\ \ \ \ \ \ \ \ \ 1.00\
|
research || 0.25 0.25 1.00
|
||||||
\ fos\ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ 1.50\ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ 3.00\
|
fos || 1.50 0 3.00
|
||||||
\ \ \ haskell\ \ ||\ \ \ \ \ \ \ \ \ 1.50\ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ \ 0\
|
haskell || 1.50 0 0
|
||||||
\ \ \ hledger\ \ ||\ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ 3.00\
|
hledger || 0 0 3.00
|
||||||
\ inc\ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ 6.00\ \ \ \ \ \ \ \ \ 2.00\ \ \ \ \ \ \ \ \ 4.00\
|
inc || 6.00 2.00 4.00
|
||||||
\ \ \ client1\ \ ||\ \ \ \ \ \ \ \ \ 6.00\ \ \ \ \ \ \ \ \ 2.00\ \ \ \ \ \ \ \ \ 4.00\
|
client1 || 6.00 2.00 4.00
|
||||||
\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
------------++----------------------------------------
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ 7.75\ \ \ \ \ \ \ \ \ 2.25\ \ \ \ \ \ \ \ \ 8.00\
|
|| 7.75 2.25 8.00
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
I prefer to use period for separating account components.
|
I prefer to use period for separating account components.
|
||||||
@ -114,20 +114,20 @@ We can make this work with an account alias:
|
|||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
2016/2/4
|
2016/2/4
|
||||||
fos.hledger.timedot\ \ 4
|
fos.hledger.timedot 4
|
||||||
fos.ledger\ \ \ \ \ \ \ \ \ \ \ ..
|
fos.ledger ..
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
$\ hledger\ \-f\ t.timedot\ \-\-alias\ /\\\\./=:\ bal\ date:2016/2/4
|
$ hledger -f t.timedot --alias /\[rs]\[rs]./=: bal date:2016/2/4
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 4.50\ \ fos
|
4.50 fos
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 4.00\ \ \ \ hledger:timedot
|
4.00 hledger:timedot
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0.50\ \ \ \ ledger
|
0.50 ledger
|
||||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
--------------------
|
||||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 4.50
|
4.50
|
||||||
\f[]
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
Here is a sample.timedot.
|
Here is a sample.timedot.
|
||||||
|
|||||||
@ -4,8 +4,8 @@ stdin.
|
|||||||
|
|
||||||
File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
||||||
|
|
||||||
hledger_timedot(5) hledger 1.14
|
hledger_timedot(5) hledger 1.14.99
|
||||||
*******************************
|
**********************************
|
||||||
|
|
||||||
Timedot is a plain text format for logging dated, categorised quantities
|
Timedot is a plain text format for logging dated, categorised quantities
|
||||||
(of time, usually), supported by hledger. It is convenient for
|
(of time, usually), supported by hledger. It is convenient for
|
||||||
@ -17,6 +17,7 @@ glance where time was spent.
|
|||||||
Though called "timedot", this format is read by hledger as
|
Though called "timedot", this format is read by hledger as
|
||||||
commodityless quantities, so it could be used to represent dated
|
commodityless quantities, so it could be used to represent dated
|
||||||
quantities other than time. In the docs below we'll assume it's time.
|
quantities other than time. In the docs below we'll assume it's time.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* FILE FORMAT::
|
* FILE FORMAT::
|
||||||
@ -110,7 +111,7 @@ $ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top76
|
Node: Top76
|
||||||
Node: FILE FORMAT807
|
Node: FILE FORMAT814
|
||||||
Ref: #file-format908
|
Ref: #file-format915
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -9,10 +9,10 @@ NAME
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
Timedot is a plain text format for logging dated, categorised quanti-
|
Timedot is a plain text format for logging dated, categorised quanti-
|
||||||
ties (of time, usually), supported by hledger. It is convenient for
|
ties (of time, usually), supported by hledger. It is convenient for
|
||||||
approximate and retroactive time logging, eg when the real-time
|
approximate and retroactive time logging, eg when the real-time clock-
|
||||||
clock-in/out required with a timeclock file is too precise or too
|
in/out required with a timeclock file is too precise or too interrup-
|
||||||
interruptive. It can be formatted like a bar chart, making clear at a
|
tive. It can be formatted like a bar chart, making clear at a glance
|
||||||
glance where time was spent.
|
where time was spent.
|
||||||
|
|
||||||
Though called "timedot", this format is read by hledger as commodity-
|
Though called "timedot", this format is read by hledger as commodity-
|
||||||
less quantities, so it could be used to represent dated quantities
|
less quantities, so it could be used to represent dated quantities
|
||||||
@ -124,4 +124,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger 1.14 March 2019 hledger_timedot(5)
|
hledger 1.14.99 March 2019 hledger_timedot(5)
|
||||||
|
|||||||
@ -1,227 +1,161 @@
|
|||||||
|
|
||||||
.TH "hledger\-ui" "1" "March 2019" "hledger\-ui 1.14" "hledger User Manuals"
|
.TH "hledger-ui" "1" "March 2019" "hledger-ui 1.14.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
hledger\-ui \- curses\-style interface for the hledger accounting tool
|
hledger-ui - curses-style interface for the hledger accounting tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.PP
|
.PP
|
||||||
\f[C]hledger\-ui\ [OPTIONS]\ [QUERYARGS]\f[]
|
\f[C]hledger-ui [OPTIONS] [QUERYARGS]\f[R]
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\f[C]hledger\ ui\ \-\-\ [OPTIONS]\ [QUERYARGS]\f[]
|
\f[C]hledger ui -- [OPTIONS] [QUERYARGS]\f[R]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
hledger is a cross\-platform program for tracking money, time, or any
|
hledger is a cross-platform program for tracking money, time, or any
|
||||||
other commodity, using double\-entry accounting and a simple, editable
|
other commodity, using double-entry accounting and a simple, editable
|
||||||
file format.
|
file format.
|
||||||
hledger is inspired by and largely compatible with ledger(1).
|
hledger is inspired by and largely compatible with ledger(1).
|
||||||
.PP
|
.PP
|
||||||
hledger\-ui is hledger\[aq]s curses\-style interface, providing an
|
hledger-ui is hledger\[aq]s curses-style interface, providing an
|
||||||
efficient full\-window text UI for viewing accounts and transactions,
|
efficient full-window text UI for viewing accounts and transactions, and
|
||||||
and some limited data entry capability.
|
some limited data entry capability.
|
||||||
It is easier than hledger\[aq]s command\-line interface, and sometimes
|
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
|
||||||
Note hledger\-ui has some different defaults (experimental):
|
Note hledger-ui has some different defaults (experimental):
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
it generates rule\-based transactions and postings by default
|
it generates rule-based transactions and postings by default (--forecast
|
||||||
(\-\-forecast and \-\-auto are always on).
|
and --auto are always on).
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
it hides transactions dated in the future by default (change this with
|
it hides transactions dated in the future by default (change this with
|
||||||
\-\-future or the F key).
|
--future or the F key).
|
||||||
.PP
|
.PP
|
||||||
Like hledger, it reads data from one or more files in hledger journal,
|
Like hledger, it reads data from one or more files in hledger journal,
|
||||||
timeclock, timedot, or CSV format specified with \f[C]\-f\f[], or
|
timeclock, timedot, or CSV format specified with \f[C]-f\f[R], or
|
||||||
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
|
||||||
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
For more about this see hledger(1), hledger_journal(5) etc.
|
For more about this see hledger(1), hledger_journal(5) etc.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.PP
|
.PP
|
||||||
Note: if invoking hledger\-ui as a hledger subcommand, write
|
Note: if invoking hledger-ui as a hledger subcommand, write \f[C]--\f[R]
|
||||||
\f[C]\-\-\f[] before options as shown above.
|
before options as shown above.
|
||||||
.PP
|
.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.
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-watch\f[]
|
.B \f[C]--watch\f[R]
|
||||||
watch for data and date changes and reload automatically
|
watch for data and date changes and reload automatically
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-theme=default|terminal|greenterm\f[]
|
.B \f[C]--theme=default|terminal|greenterm\f[R]
|
||||||
use this custom display theme
|
use this custom display theme
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-register=ACCTREGEX\f[]
|
.B \f[C]--register=ACCTREGEX\f[R]
|
||||||
start in the (first) matched account\[aq]s register screen
|
start in the (first) matched account\[aq]s register screen
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-change\f[]
|
.B \f[C]--change\f[R]
|
||||||
show period balances (changes) at startup instead of historical balances
|
show period balances (changes) at startup instead of historical balances
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-F\ \-\-flat\f[]
|
.B \f[C]-F --flat\f[R]
|
||||||
show accounts as a list (default)
|
show accounts as a list (default)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-T\ \-\-tree\f[]
|
.B \f[C]-T --tree\f[R]
|
||||||
show accounts as a tree
|
show accounts as a tree
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-future\f[]
|
.B \f[C]--future\f[R]
|
||||||
show transactions dated later than today (normally hidden)
|
show transactions dated later than today (normally hidden)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
hledger input options:
|
hledger input options:
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
|
.B \f[C]-f FILE --file=FILE\f[R]
|
||||||
use a different input file.
|
use a different input file.
|
||||||
For stdin, use \- (default: \f[C]$LEDGER_FILE\f[] or
|
For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or
|
||||||
\f[C]$HOME/.hledger.journal\f[])
|
\f[C]$HOME/.hledger.journal\f[R])
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-rules\-file=RULESFILE\f[]
|
.B \f[C]--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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-separator=CHAR\f[]
|
.B \f[C]--separator=CHAR\f[R]
|
||||||
Field separator to expect when reading CSV (default: \[aq],\[aq])
|
Field separator to expect when reading CSV (default: \[aq],\[aq])
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-alias=OLD=NEW\f[]
|
.B \f[C]--alias=OLD=NEW\f[R]
|
||||||
rename accounts named OLD to NEW
|
rename accounts named OLD to NEW
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-anon\f[]
|
.B \f[C]--anon\f[R]
|
||||||
anonymize accounts and payees
|
anonymize accounts and payees
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-pivot\ FIELDNAME\f[]
|
.B \f[C]--pivot FIELDNAME\f[R]
|
||||||
use some other field or tag for the account name
|
use some other field or tag for the account name
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-I\ \-\-ignore\-assertions\f[]
|
.B \f[C]-I --ignore-assertions\f[R]
|
||||||
ignore any failing balance assertions
|
ignore any failing balance assertions
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
hledger reporting options:
|
hledger reporting options:
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-b\ \-\-begin=DATE\f[]
|
.B \f[C]-b --begin=DATE\f[R]
|
||||||
include postings/txns on or after this date
|
include postings/txns on or after this date
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-e\ \-\-end=DATE\f[]
|
.B \f[C]-e --end=DATE\f[R]
|
||||||
include postings/txns before this date
|
include postings/txns before this date
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-D\ \-\-daily\f[]
|
.B \f[C]-D --daily\f[R]
|
||||||
multiperiod/multicolumn report by day
|
multiperiod/multicolumn report by day
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-W\ \-\-weekly\f[]
|
.B \f[C]-W --weekly\f[R]
|
||||||
multiperiod/multicolumn report by week
|
multiperiod/multicolumn report by week
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-M\ \-\-monthly\f[]
|
.B \f[C]-M --monthly\f[R]
|
||||||
multiperiod/multicolumn report by month
|
multiperiod/multicolumn report by month
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-Q\ \-\-quarterly\f[]
|
.B \f[C]-Q --quarterly\f[R]
|
||||||
multiperiod/multicolumn report by quarter
|
multiperiod/multicolumn report by quarter
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-Y\ \-\-yearly\f[]
|
.B \f[C]-Y --yearly\f[R]
|
||||||
multiperiod/multicolumn report by year
|
multiperiod/multicolumn report by year
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-p\ \-\-period=PERIODEXP\f[]
|
.B \f[C]-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 (overrides the flags above)
|
period expressions syntax (overrides the flags above)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-date2\f[]
|
.B \f[C]--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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-U\ \-\-unmarked\f[]
|
.B \f[C]-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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-P\ \-\-pending\f[]
|
.B \f[C]-P --pending\f[R]
|
||||||
include only pending postings/txns
|
include only pending postings/txns
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-C\ \-\-cleared\f[]
|
.B \f[C]-C --cleared\f[R]
|
||||||
include only cleared postings/txns
|
include only cleared postings/txns
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-R\ \-\-real\f[]
|
.B \f[C]-R --real\f[R]
|
||||||
include only non\-virtual postings
|
include only non-virtual postings
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-NUM\ \-\-depth=NUM\f[]
|
.B \f[C]-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
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-E\ \-\-empty\f[]
|
.B \f[C]-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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-B\ \-\-cost\f[]
|
.B \f[C]-B --cost\f[R]
|
||||||
convert amounts to their cost at transaction time (using the transaction
|
convert amounts to their cost at transaction time (using the transaction
|
||||||
price, if any)
|
price, if any)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-V\ \-\-value\f[]
|
.B \f[C]-V --value\f[R]
|
||||||
convert amounts to their market value on the report end date (using the
|
convert amounts to their market value on the report end date (using the
|
||||||
most recent applicable market price, if any)
|
most recent applicable market price, if any)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-auto\f[]
|
.B \f[C]--auto\f[R]
|
||||||
apply automated posting rules to modify transactions.
|
apply automated posting rules to modify transactions.
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-forecast\f[]
|
.B \f[C]--forecast\f[R]
|
||||||
apply periodic transaction rules to generate future transactions, to 6
|
apply periodic transaction rules to generate future transactions, to 6
|
||||||
months from now or report end date.
|
months from now or report end date.
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
When a reporting option appears more than once in the command line, the
|
When a reporting option appears more than once in the command line, the
|
||||||
last one takes precedence.
|
last one takes precedence.
|
||||||
@ -230,38 +164,33 @@ Some reporting options can also be written as query arguments.
|
|||||||
.PP
|
.PP
|
||||||
hledger help options:
|
hledger help options:
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-h\ \-\-help\f[]
|
.B \f[C]-h --help\f[R]
|
||||||
show general usage (or after COMMAND, command usage)
|
show general usage (or after COMMAND, command usage)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-version\f[]
|
.B \f[C]--version\f[R]
|
||||||
show version
|
show version
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-debug[=N]\f[]
|
.B \f[C]--debug[=N]\f[R]
|
||||||
show debug output (levels 1\-9, default: 1)
|
show debug output (levels 1-9, default: 1)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
A \@FILE argument will be expanded to the contents of FILE, which should
|
A \[at]FILE argument will be expanded to the contents of FILE, which
|
||||||
contain one command line option/argument per line.
|
should contain one command line option/argument per line.
|
||||||
(To prevent this, insert a \f[C]\-\-\f[] argument before.)
|
(To prevent this, insert a \f[C]--\f[R] argument before.)
|
||||||
.SH KEYS
|
.SH KEYS
|
||||||
.PP
|
.PP
|
||||||
\f[C]?\f[] shows a help dialog listing all keys.
|
\f[C]?\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.) Press \f[C]?\f[] again (or \f[C]ESCAPE\f[], or \f[C]LEFT\f[])
|
screen.) Press \f[C]?\f[R] again (or \f[C]ESCAPE\f[R], or
|
||||||
to close it.
|
\f[C]LEFT\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[C]right\f[] (or \f[C]enter\f[]) goes
|
The cursor keys navigate: \f[C]right\f[R] (or \f[C]enter\f[R]) goes
|
||||||
deeper, \f[C]left\f[] returns to the previous screen,
|
deeper, \f[C]left\f[R] returns to the previous screen,
|
||||||
\f[C]up\f[]/\f[C]down\f[]/\f[C]page\ up\f[]/\f[C]page\ down\f[]/\f[C]home\f[]/\f[C]end\f[]
|
\f[C]up\f[R]/\f[C]down\f[R]/\f[C]page up\f[R]/\f[C]page down\f[R]/\f[C]home\f[R]/\f[C]end\f[R]
|
||||||
move up and down through lists.
|
move up and down through lists.
|
||||||
Vi\-style (\f[C]h\f[]/\f[C]j\f[]/\f[C]k\f[]/\f[C]l\f[]) and Emacs\-style
|
Vi-style (\f[C]h\f[R]/\f[C]j\f[R]/\f[C]k\f[R]/\f[C]l\f[R]) and
|
||||||
(\f[C]CTRL\-p\f[]/\f[C]CTRL\-n\f[]/\f[C]CTRL\-f\f[]/\f[C]CTRL\-b\f[])
|
Emacs-style
|
||||||
|
(\f[C]CTRL-p\f[R]/\f[C]CTRL-n\f[R]/\f[C]CTRL-f\f[R]/\f[C]CTRL-b\f[R])
|
||||||
movement 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.
|
||||||
@ -269,67 +198,67 @@ faster you may want to adjust it.
|
|||||||
.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[C]shift\-down/up\f[] steps downward and upward through these standard
|
\f[C]shift-down/up\f[R] steps downward and upward through these standard
|
||||||
report period durations: year, quarter, month, week, day.
|
report period durations: year, quarter, month, week, day.
|
||||||
Then, \f[C]shift\-left/right\f[] moves to the previous/next period.
|
Then, \f[C]shift-left/right\f[R] moves to the previous/next period.
|
||||||
\f[C]t\f[] sets the report period to today.
|
\f[C]t\f[R] sets the report period to today.
|
||||||
With the \f[C]\-\-watch\f[] option, when viewing a "current" period (the
|
With the \f[C]--watch\f[R] option, when viewing a \[dq]current\[dq]
|
||||||
current day, week, month, quarter, or year), the period will move
|
period (the current day, week, month, quarter, or year), the period will
|
||||||
automatically to track the current date.
|
move automatically to track the current date.
|
||||||
To set a non\-standard period, you can use \f[C]/\f[] and a
|
To set a non-standard period, you can use \f[C]/\f[R] and a
|
||||||
\f[C]date:\f[] query.
|
\f[C]date:\f[R] query.
|
||||||
.PP
|
.PP
|
||||||
\f[C]/\f[] lets you set a general filter query limiting the data shown,
|
\f[C]/\f[R] lets you set a general filter query limiting the data shown,
|
||||||
using the same query terms as in hledger and hledger\-web.
|
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[C]ENTER\f[] to set it, or \f[C]ESCAPE\f[]to cancel.
|
press \f[C]ENTER\f[R] to set it, or \f[C]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[C]BACKSPACE\f[] or \f[C]DELETE\f[] removes all filters, showing all
|
\f[C]BACKSPACE\f[R] or \f[C]DELETE\f[R] removes all filters, showing all
|
||||||
transactions.
|
transactions.
|
||||||
.PP
|
.PP
|
||||||
As mentioned above, hledger\-ui shows auto\-generated periodic
|
As mentioned above, hledger-ui shows auto-generated periodic
|
||||||
transactions, and hides future transactions (auto\-generated or not) by
|
transactions, and hides future transactions (auto-generated or not) by
|
||||||
default.
|
default.
|
||||||
\f[C]F\f[] toggles showing and hiding these future transactions.
|
\f[C]F\f[R] toggles showing and hiding these future transactions.
|
||||||
This is similar to using a query like \f[C]date:\-tomorrow\f[], but more
|
This is similar to using a query like \f[C]date:-tomorrow\f[R], but more
|
||||||
convenient.
|
convenient.
|
||||||
(experimental)
|
(experimental)
|
||||||
.PP
|
.PP
|
||||||
\f[C]ESCAPE\f[] removes all filters and jumps back to the top screen.
|
\f[C]ESCAPE\f[R] removes all filters and jumps back to the top screen.
|
||||||
Or, it cancels a minibuffer edit or help dialog in progress.
|
Or, it cancels a minibuffer edit or help dialog in progress.
|
||||||
.PP
|
.PP
|
||||||
\f[C]CTRL\-l\f[] redraws the screen and centers the selection if
|
\f[C]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[C]g\f[] reloads from the data file(s) and updates the current screen
|
\f[C]g\f[R] reloads from the data file(s) and updates the current screen
|
||||||
and any previous screens.
|
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[C]I\f[] toggles balance assertion checking.
|
\f[C]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[C]a\f[] runs command\-line hledger\[aq]s add command, and reloads the
|
\f[C]a\f[R] runs command-line hledger\[aq]s add command, and reloads the
|
||||||
updated file.
|
updated file.
|
||||||
This allows some basic data entry.
|
This allows some basic data entry.
|
||||||
.PP
|
.PP
|
||||||
\f[C]A\f[] is like \f[C]a\f[], but runs the hledger\-iadd tool, which
|
\f[C]A\f[R] is like \f[C]a\f[R], but runs the hledger-iadd tool, which
|
||||||
provides a curses\-style interface.
|
provides a curses-style interface.
|
||||||
This key will be available if \f[C]hledger\-iadd\f[] is installed in
|
This key will be available if \f[C]hledger-iadd\f[R] is installed in
|
||||||
$PATH.
|
$PATH.
|
||||||
.PP
|
.PP
|
||||||
\f[C]E\f[] runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default
|
\f[C]E\f[R] runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default
|
||||||
(\f[C]emacsclient\ \-a\ ""\ \-nw\f[]) on the journal file.
|
(\f[C]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[C]q\f[] quits the application.
|
\f[C]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
|
||||||
.SS Accounts screen
|
.SS Accounts screen
|
||||||
.PP
|
.PP
|
||||||
@ -342,21 +271,21 @@ if you specify a query on the command line, it shows just the matched
|
|||||||
accounts and the balances from matched transactions.
|
accounts and the balances from matched transactions.
|
||||||
.PP
|
.PP
|
||||||
Account names are shown as a flat list by default.
|
Account names are shown as a flat list by default.
|
||||||
Press \f[C]T\f[] to toggle tree mode.
|
Press \f[C]T\f[R] to toggle tree mode.
|
||||||
In flat mode, account balances are exclusive of subaccounts, except
|
In flat mode, account balances are exclusive of subaccounts, except
|
||||||
where subaccounts are hidden by a depth limit (see below).
|
where subaccounts are hidden by a depth limit (see below).
|
||||||
In tree mode, all account balances are inclusive of subaccounts.
|
In tree mode, all account balances are inclusive of subaccounts.
|
||||||
.PP
|
.PP
|
||||||
To see less detail, press a number key, \f[C]1\f[] to \f[C]9\f[], to set
|
To see less detail, press a number key, \f[C]1\f[R] to \f[C]9\f[R], to
|
||||||
a depth limit.
|
set a depth limit.
|
||||||
Or use \f[C]\-\f[] to decrease and \f[C]+\f[]/\f[C]=\f[] to increase the
|
Or use \f[C]-\f[R] to decrease and \f[C]+\f[R]/\f[C]=\f[R] to increase
|
||||||
depth limit.
|
the depth limit.
|
||||||
\f[C]0\f[] shows even less detail, collapsing all accounts to a single
|
\f[C]0\f[R] shows even less detail, collapsing all accounts to a single
|
||||||
total.
|
total.
|
||||||
To remove the depth limit, set it higher than the maximum account depth,
|
To remove the depth limit, set it higher than the maximum account depth,
|
||||||
or press \f[C]ESCAPE\f[].
|
or press \f[C]ESCAPE\f[R].
|
||||||
.PP
|
.PP
|
||||||
\f[C]H\f[] toggles between showing historical balances or period
|
\f[C]H\f[R] toggles between showing historical balances or period
|
||||||
balances.
|
balances.
|
||||||
Historical balances (the default) are ending balances at the end of the
|
Historical balances (the default) are ending balances at the end of the
|
||||||
report period, taking into account all transactions before that date
|
report period, taking into account all transactions before that date
|
||||||
@ -368,21 +297,21 @@ Period balances ignore transactions before the report start date, so
|
|||||||
they show the change in balance during the report period.
|
they show the change in balance during the report period.
|
||||||
They are more useful eg when viewing a time log.
|
They are more useful eg when viewing a time log.
|
||||||
.PP
|
.PP
|
||||||
\f[C]U\f[] toggles filtering by unmarked status, including or excluding
|
\f[C]U\f[R] toggles filtering by unmarked status, including or excluding
|
||||||
unmarked postings in the balances.
|
unmarked postings in the balances.
|
||||||
Similarly, \f[C]P\f[] toggles pending postings, and \f[C]C\f[] toggles
|
Similarly, \f[C]P\f[R] toggles pending postings, and \f[C]C\f[R] toggles
|
||||||
cleared postings.
|
cleared postings.
|
||||||
(By default, balances include all postings; if you activate one or two
|
(By default, balances include all postings; if you activate one or two
|
||||||
status filters, only those postings are included; and if you activate
|
status filters, only those postings are included; and if you activate
|
||||||
all three, the filter is removed.)
|
all three, the filter is removed.)
|
||||||
.PP
|
.PP
|
||||||
\f[C]R\f[] toggles real mode, in which virtual postings are ignored.
|
\f[C]R\f[R] toggles real mode, in which virtual postings are ignored.
|
||||||
.PP
|
.PP
|
||||||
\f[C]Z\f[] 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
|
balances are shown (hledger-ui shows zero items by default, unlike
|
||||||
command\-line hledger).
|
command-line hledger).
|
||||||
.PP
|
.PP
|
||||||
Press \f[C]right\f[] or \f[C]enter\f[] to view an account\[aq]s
|
Press \f[C]right\f[R] or \f[C]enter\f[R] to view an account\[aq]s
|
||||||
transactions register.
|
transactions register.
|
||||||
.SS Register screen
|
.SS Register screen
|
||||||
.PP
|
.PP
|
||||||
@ -399,7 +328,7 @@ inflow to this account, negative for an outflow.
|
|||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
the running historical total or period total for the current account,
|
the running historical total or period total for the current account,
|
||||||
after the transaction.
|
after the transaction.
|
||||||
This can be toggled with \f[C]H\f[].
|
This can be toggled with \f[C]H\f[R].
|
||||||
Similar to the accounts screen, the historical total is affected by
|
Similar to the accounts screen, the historical total is affected by
|
||||||
transactions (filtered by the filter query) before the report start
|
transactions (filtered by the filter query) before the report start
|
||||||
date, while the period total is not.
|
date, while the period total is not.
|
||||||
@ -416,23 +345,23 @@ to the balance shown on the accounts screen.
|
|||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
Tree mode/flat mode can be toggled with \f[C]T\f[] here also.
|
Tree mode/flat mode can be toggled with \f[C]T\f[R] here also.
|
||||||
.PP
|
.PP
|
||||||
\f[C]U\f[] toggles filtering by unmarked status, showing or hiding
|
\f[C]U\f[R] toggles filtering by unmarked status, showing or hiding
|
||||||
unmarked transactions.
|
unmarked transactions.
|
||||||
Similarly, \f[C]P\f[] toggles pending transactions, and \f[C]C\f[]
|
Similarly, \f[C]P\f[R] toggles pending transactions, and \f[C]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[C]R\f[] toggles real mode, in which virtual postings are ignored.
|
\f[C]R\f[R] toggles real mode, in which virtual postings are ignored.
|
||||||
.PP
|
.PP
|
||||||
\f[C]Z\f[] 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,
|
nonzero change are shown (hledger-ui shows zero items by default, unlike
|
||||||
unlike command\-line hledger).
|
command-line hledger).
|
||||||
.PP
|
.PP
|
||||||
Press \f[C]right\f[] (or \f[C]enter\f[]) to view the selected
|
Press \f[C]right\f[R] (or \f[C]enter\f[R]) to view the selected
|
||||||
transaction in detail.
|
transaction in detail.
|
||||||
.SS Transaction screen
|
.SS Transaction screen
|
||||||
.PP
|
.PP
|
||||||
@ -445,8 +374,8 @@ 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[C]up\f[] and \f[C]down\f[] will step through all transactions listed
|
\f[C]up\f[R] and \f[C]down\f[R] will step through all transactions
|
||||||
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.
|
||||||
They will vary depending on which account register you came from
|
They will vary depending on which account register you came from
|
||||||
@ -463,39 +392,39 @@ normal operation.
|
|||||||
(Or, you can press escape to cancel the reload attempt.)
|
(Or, you can press escape to cancel the reload attempt.)
|
||||||
.SH ENVIRONMENT
|
.SH ENVIRONMENT
|
||||||
.PP
|
.PP
|
||||||
\f[B]COLUMNS\f[] 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[] The journal file path when not specified with
|
\f[B]LEDGER_FILE\f[R] The journal file path when not specified with
|
||||||
\f[C]\-f\f[].
|
\f[C]-f\f[R].
|
||||||
Default: \f[C]~/.hledger.journal\f[] (on windows, perhaps
|
Default: \f[C]\[ti]/.hledger.journal\f[R] (on windows, perhaps
|
||||||
\f[C]C:/Users/USER/.hledger.journal\f[]).
|
\f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.PP
|
.PP
|
||||||
Reads data from one or more files in hledger journal, timeclock,
|
Reads data from one or more files in hledger journal, timeclock,
|
||||||
timedot, or CSV format specified with \f[C]\-f\f[], or
|
timedot, or CSV format specified with \f[C]-f\f[R], or
|
||||||
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
|
||||||
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.PP
|
.PP
|
||||||
The need to precede options with \f[C]\-\-\f[] when invoked from hledger
|
The need to precede options with \f[C]--\f[R] when invoked from hledger
|
||||||
is awkward.
|
is awkward.
|
||||||
.PP
|
.PP
|
||||||
\f[C]\-f\-\f[] doesn\[aq]t work (hledger\-ui can\[aq]t read from stdin).
|
\f[C]-f-\f[R] doesn\[aq]t work (hledger-ui can\[aq]t read from stdin).
|
||||||
.PP
|
.PP
|
||||||
\f[C]\-V\f[] affects only the accounts screen.
|
\f[C]-V\f[R] affects only the accounts screen.
|
||||||
.PP
|
.PP
|
||||||
When you press \f[C]g\f[], the current and all previous screens are
|
When you press \f[C]g\f[R], the current and all previous screens are
|
||||||
regenerated, which may cause a noticeable pause with large files.
|
regenerated, which may cause a noticeable pause with large files.
|
||||||
Also there is no visual indication that this is in progress.
|
Also there is no visual indication that this is in progress.
|
||||||
.PP
|
.PP
|
||||||
\f[C]\-\-watch\f[] is not yet fully robust.
|
\f[C]--watch\f[R] is not yet fully robust.
|
||||||
It works well for normal usage, but many file changes in a short time
|
It works well for normal usage, but many file changes in a short time
|
||||||
(eg saving the file thousands of times with an editor macro) can cause
|
(eg saving the file thousands of times with an editor macro) can cause
|
||||||
problems at least on OSX.
|
problems at least on OSX.
|
||||||
Symptoms include: unresponsive UI, periodic resetting of the cursor
|
Symptoms include: unresponsive UI, periodic resetting of the cursor
|
||||||
position, momentary display of parse errors, high CPU usage eventually
|
position, momentary display of parse errors, high CPU usage eventually
|
||||||
subsiding, and possibly a small but persistent build\-up of CPU usage
|
subsiding, and possibly a small but persistent build-up of CPU usage
|
||||||
until the program is restarted.
|
until the program is restarted.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger-ui.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
|
File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||||
|
|
||||||
hledger-ui(1) hledger-ui 1.14
|
hledger-ui(1) hledger-ui 1.14.99
|
||||||
*****************************
|
********************************
|
||||||
|
|
||||||
hledger-ui is hledger's curses-style interface, providing an efficient
|
hledger-ui is hledger's curses-style interface, providing an efficient
|
||||||
full-window text UI for viewing accounts and transactions, and some
|
full-window text UI for viewing accounts and transactions, and some
|
||||||
@ -24,6 +24,7 @@ journal, timeclock, timedot, or CSV format specified with '-f', or
|
|||||||
'$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps
|
'$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps
|
||||||
'C:/Users/USER/.hledger.journal'). For more about this see hledger(1),
|
'C:/Users/USER/.hledger.journal'). For more about this see hledger(1),
|
||||||
hledger_journal(5) etc.
|
hledger_journal(5) etc.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* OPTIONS::
|
* OPTIONS::
|
||||||
@ -398,19 +399,19 @@ to cancel the reload attempt.)
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top71
|
Node: Top71
|
||||||
Node: OPTIONS1100
|
Node: OPTIONS1107
|
||||||
Ref: #options1197
|
Ref: #options1204
|
||||||
Node: KEYS4616
|
Node: KEYS4623
|
||||||
Ref: #keys4711
|
Ref: #keys4718
|
||||||
Node: SCREENS7967
|
Node: SCREENS7974
|
||||||
Ref: #screens8052
|
Ref: #screens8059
|
||||||
Node: Accounts screen8142
|
Node: Accounts screen8149
|
||||||
Ref: #accounts-screen8270
|
Ref: #accounts-screen8277
|
||||||
Node: Register screen10486
|
Node: Register screen10493
|
||||||
Ref: #register-screen10641
|
Ref: #register-screen10648
|
||||||
Node: Transaction screen12637
|
Node: Transaction screen12644
|
||||||
Ref: #transaction-screen12795
|
Ref: #transaction-screen12802
|
||||||
Node: Error screen13665
|
Node: Error screen13672
|
||||||
Ref: #error-screen13787
|
Ref: #error-screen13794
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -18,9 +18,9 @@ DESCRIPTION
|
|||||||
|
|
||||||
hledger-ui is hledger's curses-style interface, providing an efficient
|
hledger-ui is hledger's curses-style interface, providing an efficient
|
||||||
full-window text UI for viewing accounts and transactions, and some
|
full-window text UI for viewing accounts and transactions, and some
|
||||||
limited data entry capability. It is easier than hledger's com-
|
limited data entry capability. It is easier than hledger's command-
|
||||||
mand-line interface, and sometimes quicker and more convenient than the
|
line interface, and sometimes quicker and more convenient than the web
|
||||||
web interface.
|
interface.
|
||||||
|
|
||||||
Note hledger-ui has some different defaults (experimental):
|
Note hledger-ui has some different defaults (experimental):
|
||||||
|
|
||||||
@ -179,22 +179,22 @@ KEYS
|
|||||||
or LEFT) to close it. The following keys work on most screens:
|
or LEFT) to close it. The following keys work on most screens:
|
||||||
|
|
||||||
The cursor keys navigate: right (or enter) goes deeper, left returns to
|
The cursor keys navigate: right (or enter) goes deeper, left returns to
|
||||||
the previous screen, up/down/page up/page down/home/end move up and
|
the previous screen, up/down/page up/page down/home/end move up and
|
||||||
down through lists. Vi-style (h/j/k/l) and Emacs-style
|
down through lists. Vi-style (h/j/k/l) and Emacs-style (CTRL-p/CTRL-
|
||||||
(CTRL-p/CTRL-n/CTRL-f/CTRL-b) movement keys are also supported. A tip:
|
n/CTRL-f/CTRL-b) movement keys are also supported. A tip: movement
|
||||||
movement speed is limited by your keyboard repeat rate, to move faster
|
speed is limited by your keyboard repeat rate, to move faster you may
|
||||||
you may want to adjust it. (If you're on a mac, the Karabiner app is
|
want to adjust it. (If you're on a mac, the Karabiner app is one way
|
||||||
one way to do that.)
|
to do that.)
|
||||||
|
|
||||||
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). shift-
|
||||||
shift-down/up steps downward and upward through these standard report
|
down/up steps downward and upward through these standard report period
|
||||||
period durations: year, quarter, month, week, day. Then,
|
durations: year, quarter, month, week, day. Then, shift-left/right
|
||||||
shift-left/right moves to the previous/next period. t sets the report
|
moves to the previous/next period. t sets the report period to today.
|
||||||
period to today. With the --watch option, when viewing a "current"
|
With the --watch option, when viewing a "current" period (the current
|
||||||
period (the current day, week, month, quarter, or year), the period
|
day, week, month, quarter, or year), the period will move automatically
|
||||||
will move automatically to track the current date. To set a non-stan-
|
to track the current date. To set a non-standard period, you can use /
|
||||||
dard period, you can use / and a date: query.
|
and a date: query.
|
||||||
|
|
||||||
/ lets you set a general filter query limiting the data shown, using
|
/ lets you set a general filter query limiting the data shown, using
|
||||||
the same query terms as in hledger and hledger-web. While editing the
|
the same query terms as in hledger and hledger-web. While editing the
|
||||||
@ -226,15 +226,15 @@ KEYS
|
|||||||
a runs command-line hledger's add command, and reloads the updated
|
a runs command-line hledger's add command, and reloads the updated
|
||||||
file. This allows some basic data entry.
|
file. This allows some basic data entry.
|
||||||
|
|
||||||
A is like a, but runs the hledger-iadd tool, which provides a
|
A is like a, but runs the hledger-iadd tool, which provides a curses-
|
||||||
curses-style interface. This key will be available if hledger-iadd is
|
style interface. This key will be available if hledger-iadd is
|
||||||
installed in $PATH.
|
installed in $PATH.
|
||||||
|
|
||||||
E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emac-
|
E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a ""
|
||||||
sclient -a "" -nw) on the journal file. With some editors (emacs, vi),
|
-nw) on the journal file. With some editors (emacs, vi), the cursor
|
||||||
the cursor will be positioned at the current transaction when invoked
|
will be positioned at the current transaction when invoked from the
|
||||||
from the register and transaction screens, and at the error location
|
register and transaction screens, and at the error location (if possi-
|
||||||
(if possible) when invoked from the error screen.
|
ble) when invoked from the error screen.
|
||||||
|
|
||||||
q quits the application.
|
q quits the application.
|
||||||
|
|
||||||
@ -406,4 +406,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-ui 1.14 March 2019 hledger-ui(1)
|
hledger-ui 1.14.99 March 2019 hledger-ui(1)
|
||||||
|
|||||||
@ -1,34 +1,34 @@
|
|||||||
|
|
||||||
.TH "hledger\-web" "1" "March 2019" "hledger\-web 1.14" "hledger User Manuals"
|
.TH "hledger-web" "1" "March 2019" "hledger-web 1.14.99" "hledger User Manuals"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
hledger\-web \- web interface for the hledger accounting tool
|
hledger-web - web interface for the hledger accounting tool
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.PP
|
.PP
|
||||||
\f[C]hledger\-web\ [OPTIONS]\f[]
|
\f[C]hledger-web [OPTIONS]\f[R]
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
\f[C]hledger\ web\ \-\-\ [OPTIONS]\f[]
|
\f[C]hledger web -- [OPTIONS]\f[R]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
hledger is a cross\-platform program for tracking money, time, or any
|
hledger is a cross-platform program for tracking money, time, or any
|
||||||
other commodity, using double\-entry accounting and a simple, editable
|
other commodity, using double-entry accounting and a simple, editable
|
||||||
file format.
|
file format.
|
||||||
hledger is inspired by and largely compatible with ledger(1).
|
hledger is inspired by and largely compatible with ledger(1).
|
||||||
.PP
|
.PP
|
||||||
hledger\-web is hledger\[aq]s web interface.
|
hledger-web is hledger\[aq]s web interface.
|
||||||
It starts a simple web application for browsing and adding transactions,
|
It starts a simple web application for browsing and adding transactions,
|
||||||
and optionally opens it in a web browser window if possible.
|
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
|
It provides a more user-friendly UI than the hledger CLI or hledger-ui
|
||||||
interface, showing more at once (accounts, the current account register,
|
interface, showing more at once (accounts, the current account register,
|
||||||
balance charts) and allowing history\-aware data entry, interactive
|
balance charts) and allowing history-aware data entry, interactive
|
||||||
searching, and bookmarking.
|
searching, and bookmarking.
|
||||||
.PP
|
.PP
|
||||||
hledger\-web also lets you share a ledger with multiple users, or even
|
hledger-web also lets you share a ledger with multiple users, or even
|
||||||
the public web.
|
the public web.
|
||||||
There is no access control, so if you need that you should put it behind
|
There is no access control, so if you need that you should put it behind
|
||||||
a suitable web proxy.
|
a suitable web proxy.
|
||||||
@ -37,201 +37,135 @@ instance, it writes a numbered backup of the main journal file (only ?)
|
|||||||
on every edit.
|
on every edit.
|
||||||
.PP
|
.PP
|
||||||
Like hledger, it reads data from one or more files in hledger journal,
|
Like hledger, it reads data from one or more files in hledger journal,
|
||||||
timeclock, timedot, or CSV format specified with \f[C]\-f\f[], or
|
timeclock, timedot, or CSV format specified with \f[C]-f\f[R], or
|
||||||
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
|
||||||
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
For more about this see hledger(1), hledger_journal(5) etc.
|
For more about this see hledger(1), hledger_journal(5) etc.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.PP
|
.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
|
||||||
in addition to any search query entered there.
|
in addition to any search query entered there.
|
||||||
.PP
|
.PP
|
||||||
Note: if invoking hledger\-web as a hledger subcommand, write
|
Note: if invoking hledger-web as a hledger subcommand, write
|
||||||
\f[C]\-\-\f[] before options, as shown in the synopsis above.
|
\f[C]--\f[R] before options, as shown in the synopsis above.
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-serve\f[]
|
.B \f[C]--serve\f[R]
|
||||||
serve and log requests, don\[aq]t browse or auto\-exit
|
serve and log requests, don\[aq]t browse or auto-exit
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-host=IPADDR\f[]
|
.B \f[C]--host=IPADDR\f[R]
|
||||||
listen on this IP address (default: 127.0.0.1)
|
listen on this IP address (default: 127.0.0.1)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-port=PORT\f[]
|
.B \f[C]--port=PORT\f[R]
|
||||||
listen on this TCP port (default: 5000)
|
listen on this TCP port (default: 5000)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-base\-url=URL\f[]
|
.B \f[C]--base-url=URL\f[R]
|
||||||
set the base url (default: http://IPADDR:PORT).
|
set the base url (default: http://IPADDR:PORT).
|
||||||
You would change this when sharing over the network, or integrating
|
You would change this when sharing over the network, or integrating
|
||||||
within a larger website.
|
within a larger website.
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-file\-url=URL\f[]
|
.B \f[C]--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.
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-capabilities=CAP[,CAP..]\f[]
|
.B \f[C]--capabilities=CAP[,CAP..]\f[R]
|
||||||
enable the view, add, and/or manage capabilities (default: view,add)
|
enable the view, add, and/or manage capabilities (default: view,add)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-capabilities\-header=HTTPHEADER\f[]
|
.B \f[C]--capabilities-header=HTTPHEADER\f[R]
|
||||||
read capabilities to enable from a HTTP header, like
|
read capabilities to enable from a HTTP header, like
|
||||||
X\-Sandstorm\-Permissions (default: disabled)
|
X-Sandstorm-Permissions (default: disabled)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
hledger input options:
|
hledger input options:
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
|
.B \f[C]-f FILE --file=FILE\f[R]
|
||||||
use a different input file.
|
use a different input file.
|
||||||
For stdin, use \- (default: \f[C]$LEDGER_FILE\f[] or
|
For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or
|
||||||
\f[C]$HOME/.hledger.journal\f[])
|
\f[C]$HOME/.hledger.journal\f[R])
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-rules\-file=RULESFILE\f[]
|
.B \f[C]--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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-separator=CHAR\f[]
|
.B \f[C]--separator=CHAR\f[R]
|
||||||
Field separator to expect when reading CSV (default: \[aq],\[aq])
|
Field separator to expect when reading CSV (default: \[aq],\[aq])
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-alias=OLD=NEW\f[]
|
.B \f[C]--alias=OLD=NEW\f[R]
|
||||||
rename accounts named OLD to NEW
|
rename accounts named OLD to NEW
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-anon\f[]
|
.B \f[C]--anon\f[R]
|
||||||
anonymize accounts and payees
|
anonymize accounts and payees
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-pivot\ FIELDNAME\f[]
|
.B \f[C]--pivot FIELDNAME\f[R]
|
||||||
use some other field or tag for the account name
|
use some other field or tag for the account name
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-I\ \-\-ignore\-assertions\f[]
|
.B \f[C]-I --ignore-assertions\f[R]
|
||||||
ignore any failing balance assertions
|
ignore any failing balance assertions
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
hledger reporting options:
|
hledger reporting options:
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-b\ \-\-begin=DATE\f[]
|
.B \f[C]-b --begin=DATE\f[R]
|
||||||
include postings/txns on or after this date
|
include postings/txns on or after this date
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-e\ \-\-end=DATE\f[]
|
.B \f[C]-e --end=DATE\f[R]
|
||||||
include postings/txns before this date
|
include postings/txns before this date
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-D\ \-\-daily\f[]
|
.B \f[C]-D --daily\f[R]
|
||||||
multiperiod/multicolumn report by day
|
multiperiod/multicolumn report by day
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-W\ \-\-weekly\f[]
|
.B \f[C]-W --weekly\f[R]
|
||||||
multiperiod/multicolumn report by week
|
multiperiod/multicolumn report by week
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-M\ \-\-monthly\f[]
|
.B \f[C]-M --monthly\f[R]
|
||||||
multiperiod/multicolumn report by month
|
multiperiod/multicolumn report by month
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-Q\ \-\-quarterly\f[]
|
.B \f[C]-Q --quarterly\f[R]
|
||||||
multiperiod/multicolumn report by quarter
|
multiperiod/multicolumn report by quarter
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-Y\ \-\-yearly\f[]
|
.B \f[C]-Y --yearly\f[R]
|
||||||
multiperiod/multicolumn report by year
|
multiperiod/multicolumn report by year
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-p\ \-\-period=PERIODEXP\f[]
|
.B \f[C]-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 (overrides the flags above)
|
period expressions syntax (overrides the flags above)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-date2\f[]
|
.B \f[C]--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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-U\ \-\-unmarked\f[]
|
.B \f[C]-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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-P\ \-\-pending\f[]
|
.B \f[C]-P --pending\f[R]
|
||||||
include only pending postings/txns
|
include only pending postings/txns
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-C\ \-\-cleared\f[]
|
.B \f[C]-C --cleared\f[R]
|
||||||
include only cleared postings/txns
|
include only cleared postings/txns
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-R\ \-\-real\f[]
|
.B \f[C]-R --real\f[R]
|
||||||
include only non\-virtual postings
|
include only non-virtual postings
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-NUM\ \-\-depth=NUM\f[]
|
.B \f[C]-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
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-E\ \-\-empty\f[]
|
.B \f[C]-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)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-B\ \-\-cost\f[]
|
.B \f[C]-B --cost\f[R]
|
||||||
convert amounts to their cost at transaction time (using the transaction
|
convert amounts to their cost at transaction time (using the transaction
|
||||||
price, if any)
|
price, if any)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-V\ \-\-value\f[]
|
.B \f[C]-V --value\f[R]
|
||||||
convert amounts to their market value on the report end date (using the
|
convert amounts to their market value on the report end date (using the
|
||||||
most recent applicable market price, if any)
|
most recent applicable market price, if any)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-auto\f[]
|
.B \f[C]--auto\f[R]
|
||||||
apply automated posting rules to modify transactions.
|
apply automated posting rules to modify transactions.
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-forecast\f[]
|
.B \f[C]--forecast\f[R]
|
||||||
apply periodic transaction rules to generate future transactions, to 6
|
apply periodic transaction rules to generate future transactions, to 6
|
||||||
months from now or report end date.
|
months from now or report end date.
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
When a reporting option appears more than once in the command line, the
|
When a reporting option appears more than once in the command line, the
|
||||||
last one takes precedence.
|
last one takes precedence.
|
||||||
@ -240,59 +174,53 @@ Some reporting options can also be written as query arguments.
|
|||||||
.PP
|
.PP
|
||||||
hledger help options:
|
hledger help options:
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-h\ \-\-help\f[]
|
.B \f[C]-h --help\f[R]
|
||||||
show general usage (or after COMMAND, command usage)
|
show general usage (or after COMMAND, command usage)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-version\f[]
|
.B \f[C]--version\f[R]
|
||||||
show version
|
show version
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-debug[=N]\f[]
|
.B \f[C]--debug[=N]\f[R]
|
||||||
show debug output (levels 1\-9, default: 1)
|
show debug output (levels 1-9, default: 1)
|
||||||
.RS
|
|
||||||
.RE
|
|
||||||
.PP
|
.PP
|
||||||
A \@FILE argument will be expanded to the contents of FILE, which should
|
A \[at]FILE argument will be expanded to the contents of FILE, which
|
||||||
contain one command line option/argument per line.
|
should contain one command line option/argument per line.
|
||||||
(To prevent this, insert a \f[C]\-\-\f[] argument before.)
|
(To prevent this, insert a \f[C]--\f[R] argument before.)
|
||||||
.PP
|
.PP
|
||||||
By default, hledger\-web starts the web app in "transient mode" and also
|
By default, hledger-web starts the web app in \[dq]transient mode\[dq]
|
||||||
opens it in your default web browser if possible.
|
and 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
|
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
|
open in a browser window, and will exit after two minutes of inactivity
|
||||||
(no requests and no browser windows viewing it).
|
(no requests and no browser windows viewing it).
|
||||||
With \f[C]\-\-serve\f[], it just runs the web app without exiting, and
|
With \f[C]--serve\f[R], it just runs the web app without exiting, and
|
||||||
logs requests to the console.
|
logs requests to the console.
|
||||||
.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[C]\-\-host\f[] to change this, eg
|
You can use \f[C]--host\f[R] to change this, eg \f[C]--host 0.0.0.0\f[R]
|
||||||
\f[C]\-\-host\ 0.0.0.0\f[] to listen on all configured addresses.
|
to listen on all configured addresses.
|
||||||
.PP
|
.PP
|
||||||
Similarly, use \f[C]\-\-port\f[] to set a TCP port other than 5000, eg
|
Similarly, use \f[C]--port\f[R] to set a TCP port other than 5000, eg if
|
||||||
if you are running multiple hledger\-web instances.
|
you are running multiple hledger-web instances.
|
||||||
.PP
|
.PP
|
||||||
You can use \f[C]\-\-base\-url\f[] to change the protocol, hostname,
|
You can use \f[C]--base-url\f[R] to change the protocol, hostname, port
|
||||||
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[C]http://HOST:PORT/\f[] using the server\[aq]s
|
The default is \f[C]http://HOST:PORT/\f[R] using the server\[aq]s
|
||||||
configured host address and TCP port (or \f[C]http://HOST\f[] if PORT is
|
configured host address and TCP port (or \f[C]http://HOST\f[R] if PORT
|
||||||
80).
|
is 80).
|
||||||
.PP
|
.PP
|
||||||
With \f[C]\-\-file\-url\f[] you can set a different base url for static
|
With \f[C]--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.
|
||||||
.SH PERMISSIONS
|
.SH PERMISSIONS
|
||||||
.PP
|
.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[C]\-\-host\f[] above).
|
setting the IP address it listens on (see \f[C]--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
|
||||||
@ -302,56 +230,59 @@ 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[C]\-\-capabilities=CAP[,CAP..]\f[] flag when you start it,
|
using the \f[C]--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[C]view,add\f[]:
|
The default value is \f[C]view,add\f[R]:
|
||||||
.RS 2
|
.RS 2
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]view\f[] \- allows viewing the journal file and all included files
|
\f[C]view\f[R] - allows viewing the journal file and all included files
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]add\f[] \- allows adding new transactions to the main journal file
|
\f[C]add\f[R] - allows adding new transactions to the main journal file
|
||||||
.IP \[bu] 2
|
.IP \[bu] 2
|
||||||
\f[C]manage\f[] \- allows editing, uploading or downloading the main or
|
\f[C]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[C]\-\-capabilities\-header=HTTPHEADER\f[] flag to specify a
|
using the \f[C]--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
|
.PP
|
||||||
If you enable the \f[C]manage\f[] capability mentioned above, you\[aq]ll
|
If you enable the \f[C]manage\f[R] capability mentioned above,
|
||||||
see a new "spanner" button to the right of the search form.
|
you\[aq]ll see a new \[dq]spanner\[dq] button to the right of the search
|
||||||
|
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
|
||||||
any files it includes.
|
any files it includes.
|
||||||
.PP
|
.PP
|
||||||
Note, unlike any other hledger command, in this mode you (or any
|
Note, unlike any other hledger command, in this mode you (or any
|
||||||
visitor) can alter or wipe the data files.
|
visitor) can alter or wipe the data files.
|
||||||
.PP
|
.PP
|
||||||
Normally whenever a file is changed in this way, hledger\-web saves a
|
Normally whenever a file is changed in this way, hledger-web saves a
|
||||||
numbered backup (assuming file permissions allow it, the disk is not
|
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\[aq]ll have to arrange to commit the
|
currently; if you use one, you\[aq]ll have to arrange to commit the
|
||||||
changes yourself (eg with a cron job or a file watcher like entr).
|
changes yourself (eg with a cron job or a file watcher like entr).
|
||||||
.PP
|
.PP
|
||||||
Changes which would leave the journal file(s) unparseable or non\-valid
|
Changes which would leave the journal file(s) unparseable or non-valid
|
||||||
(eg with failing balance assertions) are prevented.
|
(eg with failing balance assertions) are prevented.
|
||||||
(Probably.
|
(Probably.
|
||||||
This needs re\-testing.)
|
This needs re-testing.)
|
||||||
.SH RELOADING
|
.SH RELOADING
|
||||||
.PP
|
.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
|
edit it directly, outside of hledger-web), and it will show the new data
|
||||||
data when you reload the page or navigate to a new page.
|
when you reload the page or navigate to a new page.
|
||||||
If a change makes a file unparseable, hledger\-web will display an error
|
If a change makes a file unparseable, hledger-web will display an error
|
||||||
message until the file has been fixed.
|
message until the file has been fixed.
|
||||||
.SH JSON API
|
.SH JSON API
|
||||||
.PP
|
.PP
|
||||||
In addition to the web UI, hledger\-web provides some JSON API routes.
|
In addition to the web UI, hledger-web provides some API routes that
|
||||||
These are similar to the API provided by the hledger\-api tool, but it
|
serve JSON in response to GET requests.
|
||||||
may be convenient to have them in hledger\-web also.
|
Currently these are same ones provided by the hledger-api tool, but
|
||||||
|
hledger-web will likely receive more attention than hledger-api in
|
||||||
|
future:
|
||||||
.IP
|
.IP
|
||||||
.nf
|
.nf
|
||||||
\f[C]
|
\f[C]
|
||||||
@ -361,31 +292,65 @@ may be convenient to have them in hledger\-web also.
|
|||||||
/commodities
|
/commodities
|
||||||
/accounts
|
/accounts
|
||||||
/accounttransactions/#AccountName
|
/accounttransactions/#AccountName
|
||||||
\f[]
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Also, you can append a new transaction to the journal by sending a PUT
|
||||||
|
request to \f[C]/add\f[R] (hledger-web only).
|
||||||
|
As with the web UI\[aq]s add form, hledger-web must be started with the
|
||||||
|
\f[C]add\f[R] capability for this (enabled by default).
|
||||||
|
.PP
|
||||||
|
The payload should be a valid hledger transaction as JSON, similar to
|
||||||
|
what you get from \f[C]/transactions\f[R] or
|
||||||
|
\f[C]/accounttransactions\f[R].
|
||||||
|
.PP
|
||||||
|
Another way to generate test data is with the
|
||||||
|
\f[C]readJsonFile\f[R]/\f[C]writeJsonFile\f[R] helpers in
|
||||||
|
Hledger.Web.Json, which read or write any of hledger\[aq]s JSON-capable
|
||||||
|
types from or to a file.
|
||||||
|
Eg here we write the first transaction of a sample journal:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$ make ghci-web
|
||||||
|
>>> :m +*Hledger.Web.Json
|
||||||
|
>>> writeJsonFile \[dq]txn.json\[dq] (head $ jtxns samplejournal)
|
||||||
|
>>> :q
|
||||||
|
$ python -m json.tool <txn.json >txn.pretty.json # optional: make human-readable
|
||||||
|
\f[R]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
(sample output & discussion)
|
||||||
|
.PP
|
||||||
|
And here\[aq]s how to test adding that with curl:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$ curl -s http://127.0.0.1:5000/add -X PUT -H \[aq]Content-Type: application/json\[aq] --data-binary \[at]txn.pretty.json; echo
|
||||||
|
\f[R]
|
||||||
.fi
|
.fi
|
||||||
.SH ENVIRONMENT
|
.SH ENVIRONMENT
|
||||||
.PP
|
.PP
|
||||||
\f[B]LEDGER_FILE\f[] The journal file path when not specified with
|
\f[B]LEDGER_FILE\f[R] The journal file path when not specified with
|
||||||
\f[C]\-f\f[].
|
\f[C]-f\f[R].
|
||||||
Default: \f[C]~/.hledger.journal\f[] (on windows, perhaps
|
Default: \f[C]\[ti]/.hledger.journal\f[R] (on windows, perhaps
|
||||||
\f[C]C:/Users/USER/.hledger.journal\f[]).
|
\f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.PP
|
.PP
|
||||||
Reads data from one or more files in hledger journal, timeclock,
|
Reads data from one or more files in hledger journal, timeclock,
|
||||||
timedot, or CSV format specified with \f[C]\-f\f[], or
|
timedot, or CSV format specified with \f[C]-f\f[R], or
|
||||||
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
|
||||||
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||||
.SH BUGS
|
.SH BUGS
|
||||||
.PP
|
.PP
|
||||||
The need to precede options with \f[C]\-\-\f[] when invoked from hledger
|
The need to precede options with \f[C]--\f[R] when invoked from hledger
|
||||||
is awkward.
|
is awkward.
|
||||||
.PP
|
.PP
|
||||||
\f[C]\-f\-\f[] doesn\[aq]t work (hledger\-web can\[aq]t read from
|
\f[C]-f-\f[R] doesn\[aq]t work (hledger-web can\[aq]t read from stdin).
|
||||||
stdin).
|
|
||||||
.PP
|
.PP
|
||||||
Query arguments and some hledger options are ignored.
|
Query arguments and some hledger options are ignored.
|
||||||
.PP
|
.PP
|
||||||
Does not work in text\-mode browsers.
|
Does not work in text-mode browsers.
|
||||||
.PP
|
.PP
|
||||||
Does not work well on small screens.
|
Does not work well on small screens.
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ This is hledger-web.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
|
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||||
|
|
||||||
hledger-web(1) hledger-web 1.14
|
hledger-web(1) hledger-web 1.14.99
|
||||||
*******************************
|
**********************************
|
||||||
|
|
||||||
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
|
application for browsing and adding transactions, and optionally opens
|
||||||
@ -25,6 +25,7 @@ journal, timeclock, timedot, or CSV format specified with '-f', or
|
|||||||
'$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps
|
'$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps
|
||||||
'C:/Users/USER/.hledger.journal'). For more about this see hledger(1),
|
'C:/Users/USER/.hledger.journal'). For more about this see hledger(1),
|
||||||
hledger_journal(5) etc.
|
hledger_journal(5) etc.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* OPTIONS::
|
* OPTIONS::
|
||||||
@ -287,9 +288,10 @@ File: hledger-web.info, Node: JSON API, Prev: RELOADING, Up: Top
|
|||||||
5 JSON API
|
5 JSON API
|
||||||
**********
|
**********
|
||||||
|
|
||||||
In addition to the web UI, hledger-web provides some JSON API routes.
|
In addition to the web UI, hledger-web provides some API routes that
|
||||||
These are similar to the API provided by the hledger-api tool, but it
|
serve JSON in response to GET requests. Currently these are same ones
|
||||||
may be convenient to have them in hledger-web also.
|
provided by the hledger-api tool, but hledger-web will likely receive
|
||||||
|
more attention than hledger-api in future:
|
||||||
|
|
||||||
/accountnames
|
/accountnames
|
||||||
/transactions
|
/transactions
|
||||||
@ -298,18 +300,43 @@ may be convenient to have them in hledger-web also.
|
|||||||
/accounts
|
/accounts
|
||||||
/accounttransactions/#AccountName
|
/accounttransactions/#AccountName
|
||||||
|
|
||||||
|
Also, you can append a new transaction to the journal by sending a
|
||||||
|
PUT request to '/add' (hledger-web only). As with the web UI's add
|
||||||
|
form, hledger-web must be started with the 'add' capability for this
|
||||||
|
(enabled by default).
|
||||||
|
|
||||||
|
The payload should be a valid hledger transaction as JSON, similar to
|
||||||
|
what you get from '/transactions' or '/accounttransactions'.
|
||||||
|
|
||||||
|
Another way to generate test data is with the
|
||||||
|
'readJsonFile'/'writeJsonFile' helpers in Hledger.Web.Json, which read
|
||||||
|
or write any of hledger's JSON-capable types from or to a file. Eg here
|
||||||
|
we write the first transaction of a sample journal:
|
||||||
|
|
||||||
|
$ make ghci-web
|
||||||
|
>>> :m +*Hledger.Web.Json
|
||||||
|
>>> writeJsonFile "txn.json" (head $ jtxns samplejournal)
|
||||||
|
>>> :q
|
||||||
|
$ python -m json.tool <txn.json >txn.pretty.json # optional: make human-readable
|
||||||
|
|
||||||
|
(sample output & discussion)
|
||||||
|
|
||||||
|
And here's how to test adding that with curl:
|
||||||
|
|
||||||
|
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
|
||||||
|
|
||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top72
|
Node: Top72
|
||||||
Node: OPTIONS1354
|
Node: OPTIONS1361
|
||||||
Ref: #options1459
|
Ref: #options1466
|
||||||
Node: PERMISSIONS6549
|
Node: PERMISSIONS6556
|
||||||
Ref: #permissions6688
|
Ref: #permissions6695
|
||||||
Node: EDITING UPLOADING DOWNLOADING7900
|
Node: EDITING UPLOADING DOWNLOADING7907
|
||||||
Ref: #editing-uploading-downloading8081
|
Ref: #editing-uploading-downloading8088
|
||||||
Node: RELOADING8915
|
Node: RELOADING8922
|
||||||
Ref: #reloading9049
|
Ref: #reloading9056
|
||||||
Node: JSON API9359
|
Node: JSON API9366
|
||||||
Ref: #json-api9453
|
Ref: #json-api9460
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -187,8 +187,8 @@ OPTIONS
|
|||||||
without exiting, and logs requests to the console.
|
without exiting, and logs requests to the console.
|
||||||
|
|
||||||
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. You can use --host to change this, eg
|
to local requests. You can use --host to change this, eg --host
|
||||||
--host 0.0.0.0 to listen on all configured addresses.
|
0.0.0.0 to listen on all configured addresses.
|
||||||
|
|
||||||
Similarly, use --port to set a TCP port other than 5000, eg if you are
|
Similarly, use --port to set a TCP port other than 5000, eg if you are
|
||||||
running multiple hledger-web instances.
|
running multiple hledger-web instances.
|
||||||
@ -260,9 +260,10 @@ RELOADING
|
|||||||
until the file has been fixed.
|
until the file has been fixed.
|
||||||
|
|
||||||
JSON API
|
JSON API
|
||||||
In addition to the web UI, hledger-web provides some JSON API routes.
|
In addition to the web UI, hledger-web provides some API routes that
|
||||||
These are similar to the API provided by the hledger-api tool, but it
|
serve JSON in response to GET requests. Currently these are same ones
|
||||||
may be convenient to have them in hledger-web also.
|
provided by the hledger-api tool, but hledger-web will likely receive
|
||||||
|
more attention than hledger-api in future:
|
||||||
|
|
||||||
/accountnames
|
/accountnames
|
||||||
/transactions
|
/transactions
|
||||||
@ -271,6 +272,31 @@ JSON API
|
|||||||
/accounts
|
/accounts
|
||||||
/accounttransactions/#AccountName
|
/accounttransactions/#AccountName
|
||||||
|
|
||||||
|
Also, you can append a new transaction to the journal by sending a PUT
|
||||||
|
request to /add (hledger-web only). As with the web UI's add form,
|
||||||
|
hledger-web must be started with the add capability for this (enabled
|
||||||
|
by default).
|
||||||
|
|
||||||
|
The payload should be a valid hledger transaction as JSON, similar to
|
||||||
|
what you get from /transactions or /accounttransactions.
|
||||||
|
|
||||||
|
Another way to generate test data is with the readJsonFile/writeJson-
|
||||||
|
File helpers in Hledger.Web.Json, which read or write any of hledger's
|
||||||
|
JSON-capable types from or to a file. Eg here we write the first
|
||||||
|
transaction of a sample journal:
|
||||||
|
|
||||||
|
$ make ghci-web
|
||||||
|
>>> :m +*Hledger.Web.Json
|
||||||
|
>>> writeJsonFile "txn.json" (head $ jtxns samplejournal)
|
||||||
|
>>> :q
|
||||||
|
$ python -m json.tool <txn.json >txn.pretty.json # optional: make human-readable
|
||||||
|
|
||||||
|
(sample output & discussion)
|
||||||
|
|
||||||
|
And here's how to test adding that with curl:
|
||||||
|
|
||||||
|
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
|
||||||
|
|
||||||
ENVIRONMENT
|
ENVIRONMENT
|
||||||
LEDGER_FILE The journal file path when not specified with -f. Default:
|
LEDGER_FILE The journal file path when not specified with -f. Default:
|
||||||
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
||||||
@ -319,4 +345,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
hledger-web 1.14 March 2019 hledger-web(1)
|
hledger-web 1.14.99 March 2019 hledger-web(1)
|
||||||
|
|||||||
2850
hledger/hledger.1
2850
hledger/hledger.1
File diff suppressed because it is too large
Load Diff
@ -3,8 +3,8 @@ This is hledger.info, produced by makeinfo version 6.5 from stdin.
|
|||||||
|
|
||||||
File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
|
File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
|
||||||
|
|
||||||
hledger(1) hledger 1.14.1
|
hledger(1) hledger 1.14.99
|
||||||
*************************
|
**************************
|
||||||
|
|
||||||
This is hledger's command-line interface (there are also curses and web
|
This is hledger's command-line interface (there are also curses and web
|
||||||
interfaces). Its basic function is to read a plain text file describing
|
interfaces). Its basic function is to read a plain text file describing
|
||||||
@ -40,6 +40,7 @@ hledger never changes existing transactions.
|
|||||||
'~/.hledger.journal', or run 'hledger add' and follow the prompts. Then
|
'~/.hledger.journal', or run 'hledger add' and follow the prompts. Then
|
||||||
try some commands like 'hledger print' or 'hledger balance'. Run
|
try some commands like 'hledger print' or 'hledger balance'. Run
|
||||||
'hledger' with no arguments for a list of commands.
|
'hledger' with no arguments for a list of commands.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* EXAMPLES::
|
* EXAMPLES::
|
||||||
@ -131,7 +132,7 @@ File: hledger.info, Node: OPTIONS, Next: QUERIES, Prev: EXAMPLES, Up: Top
|
|||||||
* Pivoting::
|
* Pivoting::
|
||||||
* Cost::
|
* Cost::
|
||||||
* Market value::
|
* Market value::
|
||||||
* Combining -B and -V::
|
* Combining -B -V --value::
|
||||||
* Output destination::
|
* Output destination::
|
||||||
* Output format::
|
* Output format::
|
||||||
* Regular expressions::
|
* Regular expressions::
|
||||||
@ -303,6 +304,7 @@ characters. Eg:
|
|||||||
|
|
||||||
'hledger register -p 'last year' "accounts receivable
|
'hledger register -p 'last year' "accounts receivable
|
||||||
(receivable|payable)" amt:\>100'.
|
(receivable|payable)" amt:\>100'.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* More escaping::
|
* More escaping::
|
||||||
@ -393,24 +395,38 @@ File: hledger.info, Node: Unicode characters, Next: Input files, Prev: Comman
|
|||||||
2.7 Unicode characters
|
2.7 Unicode characters
|
||||||
======================
|
======================
|
||||||
|
|
||||||
hledger is expected to handle unicode (non-ascii) characters, but this
|
hledger is expected to handle non-ascii characters correctly:
|
||||||
requires a well-configured environment.
|
|
||||||
|
|
||||||
To handle unicode characters in the command line or input data, a
|
* they should be parsed correctly in input files and on the command
|
||||||
system locale that can decode them must be configured (POSIX's default
|
line, by all hledger tools (add, iadd, hledger-web's
|
||||||
'C' locale will not work). Eg in bash, you could do:
|
search/add/edit forms, etc.)
|
||||||
|
|
||||||
export LANG=en_US.UTF-8
|
* they should be displayed correctly by all hledger tools, and
|
||||||
|
on-screen alignment should be preserved.
|
||||||
|
|
||||||
See Troubleshooting for more about this.
|
This requires a well-configured environment. Here are some tips:
|
||||||
|
|
||||||
Unicode characters should appear correctly in hledger's output. For
|
* A system locale must be configured, and it must be one that can
|
||||||
the hledger and hledger-ui tools, this requires that
|
decode the characters being used. In bash, you can set a locale
|
||||||
|
like this: 'export LANG=en_US.UTF-8'. There are some more details
|
||||||
|
in Troubleshooting. This step is essential - without it, hledger
|
||||||
|
will quit on encountering a non-ascii character (as with all
|
||||||
|
GHC-compiled programs).
|
||||||
|
|
||||||
* your terminal supports unicode
|
* your terminal software (eg Terminal.app, iTerm, CMD.exe, xterm..)
|
||||||
* the terminal's font includes the required unicode glyphs
|
must support unicode
|
||||||
* the terminal is configured to display "wide" characters as double
|
|
||||||
width (otherwise report alignment will be off)
|
* the terminal must be using a font which includes the required
|
||||||
|
unicode glyphs
|
||||||
|
|
||||||
|
* the terminal should be configured to display wide characters as
|
||||||
|
double width (for report alignment)
|
||||||
|
|
||||||
|
* on Windows, for best results you should run hledger in the same
|
||||||
|
kind of environment in which it was built. Eg hledger built in the
|
||||||
|
standard CMD.EXE environment (like the binaries on our download
|
||||||
|
page) might show display problems when run in a cygwin or msys
|
||||||
|
terminal, and vice versa. (See eg #961).
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Input files, Next: Smart dates, Prev: Unicode characters, Up: OPTIONS
|
File: hledger.info, Node: Input files, Next: Smart dates, Prev: Unicode characters, Up: OPTIONS
|
||||||
@ -729,22 +745,15 @@ The '-B/--cost' flag converts amounts to their cost at transaction time,
|
|||||||
if they have a transaction price specified.
|
if they have a transaction price specified.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Market value, Next: Combining -B and -V, Prev: Cost, Up: OPTIONS
|
File: hledger.info, Node: Market value, Next: Combining -B -V --value, Prev: Cost, Up: OPTIONS
|
||||||
|
|
||||||
2.16 Market value
|
2.16 Market value
|
||||||
=================
|
=================
|
||||||
|
|
||||||
The '-V/--value' flag converts reported amounts to their current market
|
The '-V/--market' flag converts reported amounts to their market value
|
||||||
value.
|
in another commodity. It uses the commodity referenced in the latest
|
||||||
Specifically, when there is a market price (P directive) for the
|
market price (P directive) dated on or before the valuation date. The
|
||||||
amount's commodity, dated on or before today's date (or the report end
|
default valuation date is today. For example:
|
||||||
date if specified), the amount will be converted to the price's
|
|
||||||
commodity.
|
|
||||||
|
|
||||||
When there are multiple applicable P directives, -V chooses the most
|
|
||||||
recent one, or in case of equal dates, the last-parsed one.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
# one euro is worth this many dollars from nov 1
|
# one euro is worth this many dollars from nov 1
|
||||||
P 2016/11/01 € $1.10
|
P 2016/11/01 € $1.10
|
||||||
@ -773,25 +782,211 @@ specified, defaults to today)
|
|||||||
$ hledger -f t.j bal -N euros -V
|
$ hledger -f t.j bal -N euros -V
|
||||||
$103.00 assets:euros
|
$103.00 assets:euros
|
||||||
|
|
||||||
Currently, hledger's -V only uses market prices recorded with P
|
Ledger users: Ledger's -V also infers market prices from journal
|
||||||
directives, not transaction prices (unlike Ledger).
|
entries, but we don't do that. hledger's -V uses only market prices
|
||||||
|
declared explicitly, with P directives. (Mnemonic: -B/-cost uses
|
||||||
|
transaction prices, -V/-market uses market prices.)
|
||||||
|
|
||||||
Currently, -V has a limitation in multicolumn balance reports: it
|
* Menu:
|
||||||
uses the market prices on the report end date for all columns. (Instead
|
|
||||||
of the prices on each column's end date.)
|
* More control over valuation::
|
||||||
|
* Effect of --value on reports::
|
||||||
|
* Some useful value reports::
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Combining -B and -V, Next: Output destination, Prev: Market value, Up: OPTIONS
|
File: hledger.info, Node: More control over valuation, Next: Effect of --value on reports, Up: Market value
|
||||||
|
|
||||||
2.17 Combining -B and -V
|
2.16.1 More control over valuation
|
||||||
========================
|
----------------------------------
|
||||||
|
|
||||||
Using -B/-cost and -V/-value together is currently allowed, but the
|
_(experimental, added 201905)_
|
||||||
results are probably not meaningful. Let us know if you find a use for
|
|
||||||
this.
|
You can control valuation more precisely with the '--value' option.
|
||||||
|
|
||||||
|
--value=TYPE which type of valuation should be done ? cost|end|now|YYYY-MM-DD
|
||||||
|
|
||||||
|
The argument is one of the keywords shown, or their first letter, or
|
||||||
|
a custom date. The precise effect of the keywords is command-specific,
|
||||||
|
but here is their general meaning:
|
||||||
|
|
||||||
|
'--value=cost' (or 'c')
|
||||||
|
|
||||||
|
Convert amounts to cost, using the prices recorded in transactions.
|
||||||
|
'-B'/'--cost' does this.
|
||||||
|
'--value=end' (or 'e')
|
||||||
|
|
||||||
|
Convert amounts to their value in default valuation commodity using
|
||||||
|
market prices on the last day of the report period (or of each
|
||||||
|
subperiod in a multiperiod report). When no report period is
|
||||||
|
specified, uses the journal's last transaction date.
|
||||||
|
'--value=now' (or 'n')
|
||||||
|
|
||||||
|
Convert amounts to their value in default valuation commodity using
|
||||||
|
current market prices (as of when report is generated).
|
||||||
|
'-V'/'--market' does this.
|
||||||
|
'--value=YYYY-MM-DD'
|
||||||
|
|
||||||
|
Convert amounts to their value in default valuation commodity using
|
||||||
|
market prices on the given date (which must be 8 digits with '-' or
|
||||||
|
'/' or '.' separators). Eg '--value=2019-04-25'.
|
||||||
|
|
||||||
|
Here are the effects of '--value' as seen with 'print':
|
||||||
|
|
||||||
|
P 2000-01-01 A 1 B
|
||||||
|
P 2000-02-01 A 2 B
|
||||||
|
P 2000-03-01 A 3 B
|
||||||
|
P 2000-04-01 A 4 B
|
||||||
|
|
||||||
|
2000-01-01
|
||||||
|
(a) 1 A @ 5 B
|
||||||
|
|
||||||
|
2000-02-01
|
||||||
|
(a) 1 A @ 6 B
|
||||||
|
|
||||||
|
2000-03-01
|
||||||
|
(a) 1 A @ 7 B
|
||||||
|
|
||||||
|
Show the cost of each posting:
|
||||||
|
|
||||||
|
$ hledger -f- print --value=cost
|
||||||
|
2000/01/01
|
||||||
|
(a) 5 B
|
||||||
|
|
||||||
|
2000/02/01
|
||||||
|
(a) 6 B
|
||||||
|
|
||||||
|
2000/03/01
|
||||||
|
(a) 7 B
|
||||||
|
|
||||||
|
Show the value as of the last day of the report period (2000-02-29):
|
||||||
|
|
||||||
|
$ hledger -f- print --value=end date:2000/01-2000/03
|
||||||
|
2000-01-01
|
||||||
|
(a) 2 B
|
||||||
|
|
||||||
|
2000-02-01
|
||||||
|
(a) 2 B
|
||||||
|
|
||||||
|
With no report period specified, that shows the value as of the last
|
||||||
|
day of the journal (2000-03-01):
|
||||||
|
|
||||||
|
$ hledger -f- print --value=end
|
||||||
|
2000/01/01
|
||||||
|
(a) 3 B
|
||||||
|
|
||||||
|
2000/02/01
|
||||||
|
(a) 3 B
|
||||||
|
|
||||||
|
2000/03/01
|
||||||
|
(a) 3 B
|
||||||
|
|
||||||
|
Show the current value (the 2000-04-01 price is still in effect
|
||||||
|
today):
|
||||||
|
|
||||||
|
$ hledger -f- print --value=now
|
||||||
|
2000-01-01
|
||||||
|
(a) 4 B
|
||||||
|
|
||||||
|
2000-02-01
|
||||||
|
(a) 4 B
|
||||||
|
|
||||||
|
2000-03-01
|
||||||
|
(a) 4 B
|
||||||
|
|
||||||
|
Show the value on 2000/01/15:
|
||||||
|
|
||||||
|
$ hledger -f- print --value=2000-01-15
|
||||||
|
2000/01/01
|
||||||
|
(a) 1 B
|
||||||
|
|
||||||
|
2000/02/01
|
||||||
|
(a) 1 B
|
||||||
|
|
||||||
|
2000/03/01
|
||||||
|
(a) 1 B
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: Output destination, Next: Output format, Prev: Combining -B and -V, Up: OPTIONS
|
File: hledger.info, Node: Effect of --value on reports, Next: Some useful value reports, Prev: More control over valuation, Up: Market value
|
||||||
|
|
||||||
|
2.16.2 Effect of -value on reports
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Below is how '--value' affects each of hledger's reports, currently.
|
||||||
|
You're not expected to remember all this, but when troubleshooting a
|
||||||
|
report, look here. If you find problems - useless reports, misbehaving
|
||||||
|
reports, or error messages being printed - please report them (with
|
||||||
|
reproducible examples) eg at #329.
|
||||||
|
|
||||||
|
Report type '--value' '--value' 'end' '--value'
|
||||||
|
'cost' 'DATE'/'now'
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
*print*
|
||||||
|
posting cost, as market value at report market value at
|
||||||
|
amounts recorded in end DATE
|
||||||
|
transaction
|
||||||
|
balance show show unvalued show unvalued
|
||||||
|
assertions/assignmentsunvalued
|
||||||
|
*register*
|
||||||
|
starting cost of market value at day market value at
|
||||||
|
balance starting before report start DATE
|
||||||
|
with -H balance
|
||||||
|
posting cost market value at report market value at
|
||||||
|
amounts end DATE
|
||||||
|
posting summarised market value each market value each
|
||||||
|
amounts, cost summary posting at summary posting
|
||||||
|
multiperiod period end at DATE
|
||||||
|
running sum/average sum/average of the sum/average of
|
||||||
|
total/average of the displayed values the displayed
|
||||||
|
displayed values
|
||||||
|
values
|
||||||
|
*balance
|
||||||
|
(bs, cf,
|
||||||
|
is..)*
|
||||||
|
starting costs of market value at day market value at
|
||||||
|
balances starting before report start of DATE of sum of
|
||||||
|
with -H balances sum of previous postings previous postings
|
||||||
|
balances, summed costs market value at period market value at
|
||||||
|
simple end of sum of postings DATE of sum of
|
||||||
|
balance postings
|
||||||
|
report
|
||||||
|
balances, summed costs market value at period market value at
|
||||||
|
multiperiod end of sum of postings DATE of sum of
|
||||||
|
report postings
|
||||||
|
budget costs of budget-setting periodic budget-setting
|
||||||
|
amounts budget txns are valued at periodic txns are
|
||||||
|
with amounts period end valued at DATE
|
||||||
|
-budget
|
||||||
|
column/row/grandsum/average market value at period market value at
|
||||||
|
totals/averagesof the end of sum/average of DATE of
|
||||||
|
displayed postings sum/average of
|
||||||
|
values postings
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: Some useful value reports, Prev: Effect of --value on reports, Up: Market value
|
||||||
|
|
||||||
|
2.16.3 Some useful value reports
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Here are some probably useful reports - please send suggestions if you
|
||||||
|
find out more:
|
||||||
|
|
||||||
|
Command: Description of report: Could answer:
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
'hledger bs -M Monthly historical value How are my investments
|
||||||
|
--value=p' of assets/liabilities performing ?
|
||||||
|
'hledger is -M Monthly contemporaneous How much foreign currency
|
||||||
|
--value=t' value of revenues/expenses have I been spending ?
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: Combining -B -V --value, Next: Output destination, Prev: Market value, Up: OPTIONS
|
||||||
|
|
||||||
|
2.17 Combining -B, -V, -value
|
||||||
|
=============================
|
||||||
|
|
||||||
|
The rightmost of these flags wins.
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: Output destination, Next: Output format, Prev: Combining -B -V --value, Up: OPTIONS
|
||||||
|
|
||||||
2.18 Output destination
|
2.18 Output destination
|
||||||
=======================
|
=======================
|
||||||
@ -987,6 +1182,7 @@ unambiguous prefix of a command name ('hledger inc').
|
|||||||
Here are all the builtin commands in alphabetical order. See also
|
Here are all the builtin commands in alphabetical order. See also
|
||||||
'hledger' for a more organised command list, and 'hledger CMD -h' for
|
'hledger' for a more organised command list, and 'hledger CMD -h' for
|
||||||
detailed command help.
|
detailed command help.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* accounts::
|
* accounts::
|
||||||
@ -1162,6 +1358,7 @@ show real-world account balances. In some cases the -H/-historical flag
|
|||||||
is used to ensure this (more below).
|
is used to ensure this (more below).
|
||||||
|
|
||||||
The balance command can produce several styles of report:
|
The balance command can produce several styles of report:
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Classic balance report::
|
* Classic balance report::
|
||||||
@ -1250,7 +1447,9 @@ with data fields interpolated like so:
|
|||||||
'%[MIN][.MAX](FIELDNAME)'
|
'%[MIN][.MAX](FIELDNAME)'
|
||||||
|
|
||||||
* MIN pads with spaces to at least this width (optional)
|
* MIN pads with spaces to at least this width (optional)
|
||||||
|
|
||||||
* MAX truncates at this width (optional)
|
* MAX truncates at this width (optional)
|
||||||
|
|
||||||
* FIELDNAME must be enclosed in parentheses, and can be one of:
|
* FIELDNAME must be enclosed in parentheses, and can be one of:
|
||||||
|
|
||||||
* 'depth_spacer' - a number of spaces equal to the account's
|
* 'depth_spacer' - a number of spaces equal to the account's
|
||||||
@ -1390,6 +1589,10 @@ different information:
|
|||||||
----------------------++-------------------------------------
|
----------------------++-------------------------------------
|
||||||
|| 0 0 0
|
|| 0 0 0
|
||||||
|
|
||||||
|
Note that '--cumulative' or '--historical/-H' disable
|
||||||
|
'--row-total/-T', since summing end balances generally does not make
|
||||||
|
sense.
|
||||||
|
|
||||||
Multicolumn balance reports display accounts in flat mode by default;
|
Multicolumn balance reports display accounts in flat mode by default;
|
||||||
to see the hierarchy, use '--tree'.
|
to see the hierarchy, use '--tree'.
|
||||||
|
|
||||||
@ -1557,6 +1760,7 @@ Budget performance in 2017/11/01-2017/12/31:
|
|||||||
|| 0 [ 0] 0 [ 0]
|
|| 0 [ 0] 0 [ 0]
|
||||||
|
|
||||||
For more examples, see Budgeting and Forecasting.
|
For more examples, see Budgeting and Forecasting.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Nested budgets::
|
* Nested budgets::
|
||||||
@ -1696,7 +1900,9 @@ Total:
|
|||||||
each report period. As with multicolumn balance reports, you can alter
|
each report period. As with multicolumn balance reports, you can alter
|
||||||
the report mode with '--change'/'--cumulative'/'--historical'. Normally
|
the report mode with '--change'/'--cumulative'/'--historical'. Normally
|
||||||
balancesheet shows historical ending balances, which is what you need
|
balancesheet shows historical ending balances, which is what you need
|
||||||
for a balance sheet; note this means it ignores report begin dates.
|
for a balance sheet; note this means it ignores report begin dates (and
|
||||||
|
'-T/--row-total', since summing end balances generally does not make
|
||||||
|
sense).
|
||||||
|
|
||||||
This command also supports output destination and output format
|
This command also supports output destination and output format
|
||||||
selection.
|
selection.
|
||||||
@ -1815,7 +2021,7 @@ end of a period.
|
|||||||
|
|
||||||
The closing transaction transfers balances to "equity:closing
|
The closing transaction transfers balances to "equity:closing
|
||||||
balances". The opening transaction transfers balances from
|
balances". The opening transaction transfers balances from
|
||||||
"equity:opening balances". You can chose to print just one of the
|
"equity:opening balances". You can choose to print just one of the
|
||||||
transactions by using the '--opening' or '--closing' flag.
|
transactions by using the '--opening' or '--closing' flag.
|
||||||
|
|
||||||
If you split your journal files by time (eg yearly), you will
|
If you split your journal files by time (eg yearly), you will
|
||||||
@ -1959,6 +2165,29 @@ see only uncategorised transactions:
|
|||||||
|
|
||||||
$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
|
$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Importing balance assignments::
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.info, Node: Importing balance assignments, Up: import
|
||||||
|
|
||||||
|
4.13.1 Importing balance assignments
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Entries added by import will have their posting amounts made explicit
|
||||||
|
(like 'hledger print -x'). This means that any balance assignments in
|
||||||
|
imported files must be evaluated; but, imported files don't get to see
|
||||||
|
the main file's account balances. As a result, importing entries with
|
||||||
|
balance assignments (eg from an institution that provides only balances
|
||||||
|
and not posting amounts) will probably generate incorrect posting
|
||||||
|
amounts. To avoid this problem, use print instead of import:
|
||||||
|
|
||||||
|
$ hledger print IMPORTFILE [--new] >> $LEDGER_FILE
|
||||||
|
|
||||||
|
(If you think import should leave amounts implicit like print does,
|
||||||
|
please test it and send a pull request.)
|
||||||
|
|
||||||
|
|
||||||
File: hledger.info, Node: incomestatement, Next: prices, Prev: import, Up: COMMANDS
|
File: hledger.info, Node: incomestatement, Next: prices, Prev: import, Up: COMMANDS
|
||||||
|
|
||||||
@ -2225,6 +2454,7 @@ $ hledger register --monthly assets --depth 1h
|
|||||||
these will be adjusted outward if necessary to contain a whole number of
|
these will be adjusted outward if necessary to contain a whole number of
|
||||||
intervals. This ensures that the first and last intervals are full
|
intervals. This ensures that the first and last intervals are full
|
||||||
length and comparable to the others in the report.
|
length and comparable to the others in the report.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Custom register output::
|
* Custom register output::
|
||||||
@ -2292,9 +2522,9 @@ transaction's first posting amount.
|
|||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
|
$ hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
|
||||||
hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
|
$ hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
|
||||||
hledger-rewrite.hs -f rewrites.hledger
|
$ hledger-rewrite.hs -f rewrites.hledger
|
||||||
|
|
||||||
rewrites.hledger may consist of entries like:
|
rewrites.hledger may consist of entries like:
|
||||||
|
|
||||||
@ -2557,6 +2787,7 @@ haskell) library functions that built-in commands do, for command-line
|
|||||||
options, journal parsing, reporting, etc.
|
options, journal parsing, reporting, etc.
|
||||||
|
|
||||||
Here are some hledger add-ons available:
|
Here are some hledger add-ons available:
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Official add-ons::
|
* Official add-ons::
|
||||||
@ -2570,6 +2801,7 @@ File: hledger.info, Node: Official add-ons, Next: Third party add-ons, Up: AD
|
|||||||
====================
|
====================
|
||||||
|
|
||||||
These are maintained and released along with hledger.
|
These are maintained and released along with hledger.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* api::
|
* api::
|
||||||
@ -2608,6 +2840,7 @@ File: hledger.info, Node: Third party add-ons, Next: Experimental add-ons, Pr
|
|||||||
|
|
||||||
These are maintained separately, and usually updated shortly after a
|
These are maintained separately, and usually updated shortly after a
|
||||||
hledger release.
|
hledger release.
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* diff::
|
* diff::
|
||||||
@ -2661,6 +2894,7 @@ These are available in source form in the hledger repo's bin/ directory;
|
|||||||
installing them is pretty easy. They may be less mature and documented
|
installing them is pretty easy. They may be less mature and documented
|
||||||
than built-in commands. Reading and tweaking these is a good way to
|
than built-in commands. Reading and tweaking these is a good way to
|
||||||
start making your own!
|
start making your own!
|
||||||
|
|
||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* autosync::
|
* autosync::
|
||||||
@ -2697,160 +2931,168 @@ hledger-check.hs checks more powerful account balance assertions.
|
|||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top68
|
Node: Top68
|
||||||
Node: EXAMPLES1888
|
Node: EXAMPLES1891
|
||||||
Ref: #examples1988
|
Ref: #examples1991
|
||||||
Node: OPTIONS3634
|
Node: OPTIONS3637
|
||||||
Ref: #options3736
|
Ref: #options3739
|
||||||
Node: General options4171
|
Node: General options4178
|
||||||
Ref: #general-options4296
|
Ref: #general-options4303
|
||||||
Node: Command options6978
|
Node: Command options6985
|
||||||
Ref: #command-options7129
|
Ref: #command-options7136
|
||||||
Node: Command arguments7527
|
Node: Command arguments7534
|
||||||
Ref: #command-arguments7681
|
Ref: #command-arguments7688
|
||||||
Node: Argument files7802
|
Node: Argument files7809
|
||||||
Ref: #argument-files7978
|
Ref: #argument-files7985
|
||||||
Node: Special characters in arguments and queries8244
|
Node: Special characters in arguments and queries8251
|
||||||
Ref: #special-characters-in-arguments-and-queries8478
|
Ref: #special-characters-in-arguments-and-queries8485
|
||||||
Node: More escaping8928
|
Node: More escaping8936
|
||||||
Ref: #more-escaping9090
|
Ref: #more-escaping9098
|
||||||
Node: Even more escaping9386
|
Node: Even more escaping9394
|
||||||
Ref: #even-more-escaping9580
|
Ref: #even-more-escaping9588
|
||||||
Node: Less escaping10251
|
Node: Less escaping10259
|
||||||
Ref: #less-escaping10413
|
Ref: #less-escaping10421
|
||||||
Node: Command line tips10658
|
Node: Command line tips10666
|
||||||
Ref: #command-line-tips10844
|
Ref: #command-line-tips10852
|
||||||
Node: Unicode characters11221
|
Node: Unicode characters11229
|
||||||
Ref: #unicode-characters11377
|
Ref: #unicode-characters11385
|
||||||
Node: Input files12102
|
Node: Input files12797
|
||||||
Ref: #input-files12238
|
Ref: #input-files12933
|
||||||
Node: Smart dates14208
|
Node: Smart dates14903
|
||||||
Ref: #smart-dates14349
|
Ref: #smart-dates15044
|
||||||
Node: Report start & end date15755
|
Node: Report start & end date16450
|
||||||
Ref: #report-start-end-date15927
|
Ref: #report-start-end-date16622
|
||||||
Node: Report intervals16993
|
Node: Report intervals17688
|
||||||
Ref: #report-intervals17158
|
Ref: #report-intervals17853
|
||||||
Node: Period expressions17559
|
Node: Period expressions18254
|
||||||
Ref: #period-expressions17719
|
Ref: #period-expressions18414
|
||||||
Node: Depth limiting21676
|
Node: Depth limiting22371
|
||||||
Ref: #depth-limiting21820
|
Ref: #depth-limiting22515
|
||||||
Node: Pivoting22162
|
Node: Pivoting22857
|
||||||
Ref: #pivoting22280
|
Ref: #pivoting22975
|
||||||
Node: Cost23956
|
Node: Cost24651
|
||||||
Ref: #cost24064
|
Ref: #cost24759
|
||||||
Node: Market value24182
|
Node: Market value24877
|
||||||
Ref: #market-value24317
|
Ref: #market-value25016
|
||||||
Node: Combining -B and -V25683
|
Node: More control over valuation26257
|
||||||
Ref: #combining--b-and--v25846
|
Ref: #more-control-over-valuation26442
|
||||||
Node: Output destination25993
|
Node: Effect of --value on reports28897
|
||||||
Ref: #output-destination26155
|
Ref: #effect-of---value-on-reports29116
|
||||||
Node: Output format26438
|
Node: Some useful value reports31807
|
||||||
Ref: #output-format26590
|
Ref: #some-useful-value-reports31986
|
||||||
Node: Regular expressions26975
|
Node: Combining -B -V --value32484
|
||||||
Ref: #regular-expressions27112
|
Ref: #combining--b--v---value32661
|
||||||
Node: QUERIES28473
|
Node: Output destination32697
|
||||||
Ref: #queries28575
|
Ref: #output-destination32863
|
||||||
Node: COMMANDS32537
|
Node: Output format33146
|
||||||
Ref: #commands32649
|
Ref: #output-format33298
|
||||||
Node: accounts33649
|
Node: Regular expressions33683
|
||||||
Ref: #accounts33747
|
Ref: #regular-expressions33820
|
||||||
Node: activity34446
|
Node: QUERIES35181
|
||||||
Ref: #activity34556
|
Ref: #queries35283
|
||||||
Node: add34939
|
Node: COMMANDS39245
|
||||||
Ref: #add35038
|
Ref: #commands39357
|
||||||
Node: balance37625
|
Node: accounts40358
|
||||||
Ref: #balance37736
|
Ref: #accounts40456
|
||||||
Node: Classic balance report39177
|
Node: activity41155
|
||||||
Ref: #classic-balance-report39350
|
Ref: #activity41265
|
||||||
Node: Customising the classic balance report40719
|
Node: add41648
|
||||||
Ref: #customising-the-classic-balance-report40947
|
Ref: #add41747
|
||||||
Node: Colour support43021
|
Node: balance44334
|
||||||
Ref: #colour-support43188
|
Ref: #balance44445
|
||||||
Node: Flat mode43361
|
Node: Classic balance report45887
|
||||||
Ref: #flat-mode43509
|
Ref: #classic-balance-report46060
|
||||||
Node: Depth limited balance reports43922
|
Node: Customising the classic balance report47429
|
||||||
Ref: #depth-limited-balance-reports44122
|
Ref: #customising-the-classic-balance-report47657
|
||||||
Node: Multicolumn balance report44578
|
Node: Colour support49733
|
||||||
Ref: #multicolumn-balance-report44776
|
Ref: #colour-support49900
|
||||||
Node: Budget report49956
|
Node: Flat mode50073
|
||||||
Ref: #budget-report50099
|
Ref: #flat-mode50221
|
||||||
Node: Nested budgets55300
|
Node: Depth limited balance reports50634
|
||||||
Ref: #nested-budgets55412
|
Ref: #depth-limited-balance-reports50834
|
||||||
Ref: #output-format-158892
|
Node: Multicolumn balance report51290
|
||||||
Node: balancesheet58970
|
Ref: #multicolumn-balance-report51488
|
||||||
Ref: #balancesheet59106
|
Node: Budget report56802
|
||||||
Node: balancesheetequity60340
|
Ref: #budget-report56945
|
||||||
Ref: #balancesheetequity60489
|
Node: Nested budgets62147
|
||||||
Node: cashflow61050
|
Ref: #nested-budgets62259
|
||||||
Ref: #cashflow61178
|
Ref: #output-format-165739
|
||||||
Node: check-dates62206
|
Node: balancesheet65817
|
||||||
Ref: #check-dates62333
|
Ref: #balancesheet65953
|
||||||
Node: check-dupes62612
|
Node: balancesheetequity67268
|
||||||
Ref: #check-dupes62736
|
Ref: #balancesheetequity67417
|
||||||
Node: close63029
|
Node: cashflow67978
|
||||||
Ref: #close63137
|
Ref: #cashflow68106
|
||||||
Node: files66550
|
Node: check-dates69134
|
||||||
Ref: #files66651
|
Ref: #check-dates69261
|
||||||
Node: help66798
|
Node: check-dupes69540
|
||||||
Ref: #help66898
|
Ref: #check-dupes69664
|
||||||
Node: import67991
|
Node: close69957
|
||||||
Ref: #import68105
|
Ref: #close70065
|
||||||
Node: incomestatement68849
|
Node: files73479
|
||||||
Ref: #incomestatement68983
|
Ref: #files73580
|
||||||
Node: prices70319
|
Node: help73727
|
||||||
Ref: #prices70434
|
Ref: #help73827
|
||||||
Node: print70713
|
Node: import74920
|
||||||
Ref: #print70823
|
Ref: #import75034
|
||||||
Node: print-unique75316
|
Node: Importing balance assignments75822
|
||||||
Ref: #print-unique75442
|
Ref: #importing-balance-assignments75970
|
||||||
Node: register75727
|
Node: incomestatement76619
|
||||||
Ref: #register75854
|
Ref: #incomestatement76753
|
||||||
Node: Custom register output80025
|
Node: prices78089
|
||||||
Ref: #custom-register-output80154
|
Ref: #prices78204
|
||||||
Node: register-match81416
|
Node: print78483
|
||||||
Ref: #register-match81550
|
Ref: #print78593
|
||||||
Node: rewrite81901
|
Node: print-unique83086
|
||||||
Ref: #rewrite82016
|
Ref: #print-unique83212
|
||||||
Node: Re-write rules in a file83865
|
Node: register83497
|
||||||
Ref: #re-write-rules-in-a-file83999
|
Ref: #register83624
|
||||||
Node: Diff output format85209
|
Node: Custom register output87796
|
||||||
Ref: #diff-output-format85378
|
Ref: #custom-register-output87925
|
||||||
Node: rewrite vs print --auto86470
|
Node: register-match89187
|
||||||
Ref: #rewrite-vs.-print---auto86649
|
Ref: #register-match89321
|
||||||
Node: roi87205
|
Node: rewrite89672
|
||||||
Ref: #roi87303
|
Ref: #rewrite89787
|
||||||
Node: stats88315
|
Node: Re-write rules in a file91642
|
||||||
Ref: #stats88414
|
Ref: #re-write-rules-in-a-file91776
|
||||||
Node: tags89168
|
Node: Diff output format92986
|
||||||
Ref: #tags89266
|
Ref: #diff-output-format93155
|
||||||
Node: test89496
|
Node: rewrite vs print --auto94247
|
||||||
Ref: #test89580
|
Ref: #rewrite-vs.-print---auto94426
|
||||||
Node: ADD-ON COMMANDS90341
|
Node: roi94982
|
||||||
Ref: #add-on-commands90451
|
Ref: #roi95080
|
||||||
Node: Official add-ons91738
|
Node: stats96092
|
||||||
Ref: #official-add-ons91878
|
Ref: #stats96191
|
||||||
Node: api91965
|
Node: tags96945
|
||||||
Ref: #api92054
|
Ref: #tags97043
|
||||||
Node: ui92106
|
Node: test97273
|
||||||
Ref: #ui92205
|
Ref: #test97357
|
||||||
Node: web92263
|
Node: ADD-ON COMMANDS98118
|
||||||
Ref: #web92352
|
Ref: #add-on-commands98228
|
||||||
Node: Third party add-ons92398
|
Node: Official add-ons99516
|
||||||
Ref: #third-party-add-ons92573
|
Ref: #official-add-ons99656
|
||||||
Node: diff92708
|
Node: api99744
|
||||||
Ref: #diff92805
|
Ref: #api99833
|
||||||
Node: iadd92904
|
Node: ui99885
|
||||||
Ref: #iadd93018
|
Ref: #ui99984
|
||||||
Node: interest93101
|
Node: web100042
|
||||||
Ref: #interest93222
|
Ref: #web100131
|
||||||
Node: irr93317
|
Node: Third party add-ons100177
|
||||||
Ref: #irr93415
|
Ref: #third-party-add-ons100352
|
||||||
Node: Experimental add-ons93546
|
Node: diff100488
|
||||||
Ref: #experimental-add-ons93698
|
Ref: #diff100585
|
||||||
Node: autosync93978
|
Node: iadd100684
|
||||||
Ref: #autosync94089
|
Ref: #iadd100798
|
||||||
Node: chart94328
|
Node: interest100881
|
||||||
Ref: #chart94447
|
Ref: #interest101002
|
||||||
Node: check94518
|
Node: irr101097
|
||||||
Ref: #check94620
|
Ref: #irr101195
|
||||||
|
Node: Experimental add-ons101326
|
||||||
|
Ref: #experimental-add-ons101478
|
||||||
|
Node: autosync101759
|
||||||
|
Ref: #autosync101870
|
||||||
|
Node: chart102109
|
||||||
|
Ref: #chart102228
|
||||||
|
Node: check102299
|
||||||
|
Ref: #check102401
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user