;doc: regen manuals (on server)

Usually done on my laptop, but the toolchain on both machines should
produce the same result these days..

[ci skip]
This commit is contained in:
Simon Michael 2019-09-09 08:02:49 -07:00
parent fb521e248b
commit 85d48a6b0e
10 changed files with 719 additions and 592 deletions

View File

@ -24,9 +24,9 @@ DESCRIPTION
When reading a CSV file named FILE.csv, hledger looks for a conversion When reading a CSV file named FILE.csv, hledger looks for a conversion
rules file named FILE.csv.rules in the same directory. You can over- rules file named FILE.csv.rules in the same directory. You can over-
ride this with the --rules-file option. If the rules file does not ex- ride this with the --rules-file option. If the rules file does not
ist, hledger will auto-create one with some example rules, which you'll exist, hledger will auto-create one with some example rules, which
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's often necessary to specify the date format, and the number of It's often necessary to specify the date format, and the number of
@ -192,8 +192,8 @@ CSV TIPS
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 re- Each journal entry will have two postings, to account1 and account2
spectively. 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.
@ -229,9 +229,9 @@ CSV TIPS
CSV balance assertions/assignments CSV balance assertions/assignments
If the CSV includes a running balance, you can assign that to one of 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- the pseudo fields balance (or balance1) or balance2. This will gener-
ate a balance assertion (or if the amount is left empty, a balance as- ate a balance assertion (or if the amount is left empty, a balance
signment), on the first or second posting, whenever the running balance assignment), on the first or second posting, whenever the running bal-
field is non-empty. (TODO: #1000) 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

View File

@ -1579,11 +1579,45 @@ parent account.
.SS Periodic transactions .SS Periodic transactions
.PP .PP
Periodic transaction rules describe transactions that recur. Periodic transaction rules describe transactions that recur.
They allow you to generate future transactions for forecasting, without They allow hledger to generate temporary future transactions to help
having to write them out explicitly in the journal (with with forecasting, so you don\[aq]t have to write out each one in the
\f[C]--forecast\f[R]). journal, and it\[aq]s easy to try out different forecasts.
Secondly, they also can be used to define budget goals (with Secondly, they are also used to define the budgets shown in budget
\f[C]--budget\f[R]). reports.
.PP
Periodic transactions can be a little tricky, so before you use them,
read this whole section - or at least these tips:
.IP "1." 3
Two spaces accidentally added or omitted will cause you trouble - read
about this below.
.IP "2." 3
For troubleshooting, show the generated transactions with
\f[C]hledger print --forecast tag:generated\f[R] or
\f[C]hledger register --forecast tag:generated\f[R].
.IP "3." 3
Forecasted transactions will begin only after the last non-forecasted
transaction\[aq]s date.
.IP "4." 3
Forecasted transactions will end 6 months from today, by default.
See below for the exact start/end rules.
.IP "5." 3
period expressions can be tricky.
Their documentation needs improvement, but is worth studying.
.IP "6." 3
Some period expressions with a repeating interval must begin on a
natural boundary of that interval.
Eg in \f[C]weekly from DATE\f[R], DATE must be a monday.
\f[C]\[ti] weekly from 2019/10/1\f[R] (a tuesday) will give an error.
.IP "7." 3
Other period expressions with an interval are automatically expanded to
cover a whole number of that interval.
(This is done to improve reports, but it also affects periodic
transactions.
Yes, it\[aq]s a bit inconsistent with the above.) Eg:
\f[C]\[ti] every 10th day of month from 2020/01\f[R], which is
equivalent to \f[C]\[ti] every 10th day of month from 2020/01/01\f[R],
will be adjusted to start on 2019/12/10.
.SS Periodic rule syntax
.PP .PP
A periodic transaction rule looks like a normal journal entry, with the A periodic transaction rule looks like a normal journal entry, with the
date replaced by a tilde (\f[C]\[ti]\f[R]) followed by a period date replaced by a tilde (\f[C]\[ti]\f[R]) followed by a period
@ -1607,7 +1641,7 @@ Partial or relative dates (M/D, D, tomorrow, last week) in the period
expression can work (useful or not). expression can work (useful or not).
They will be relative to today\[aq]s date, unless a Y default year They will be relative to today\[aq]s date, unless a Y default year
directive is in effect, in which case they will be relative to Y/1/1. directive is in effect, in which case they will be relative to Y/1/1.
.SS Two spaces after the period expression .SS Two spaces between period expression and description!
.PP .PP
If the period expression is followed by a transaction description, these If the period expression is followed by a transaction description, these
must be separated by \f[B]two or more spaces\f[R]. must be separated by \f[B]two or more spaces\f[R].
@ -1625,6 +1659,14 @@ example:
income:acme inc income:acme inc
\f[R] \f[R]
.fi .fi
.PP
So,
.IP \[bu] 2
Do write two spaces between your period expression and your transaction
description, if any.
.IP \[bu] 2
Don\[aq]t accidentally write two spaces in the middle of your period
expression.
.SS Forecasting with periodic transactions .SS Forecasting with periodic transactions
.PP .PP
With the \f[C]--forecast\f[R] flag, each periodic transaction rule With the \f[C]--forecast\f[R] flag, each periodic transaction rule
@ -1686,8 +1728,8 @@ Eg the first example above declares a goal of spending $2000 on rent
(and also, a goal of depositing $2000 into checking) every month. (and also, a goal of depositing $2000 into checking) every month.
Goals and actual performance can then be compared in budget reports. Goals and actual performance can then be compared in budget reports.
.PP .PP
For more details, see: balance: Budget report and Cookbook: Budgeting For more details, see: balance: Budget report and Budgeting and
and Forecasting. Forecasting.
.PP .PP
.SS Auto postings / transaction modifiers .SS Auto postings / transaction modifiers
.PP .PP

View File

@ -1412,12 +1412,52 @@ File: hledger_journal.info, Node: Periodic transactions, Next: Auto postings /
========================== ==========================
Periodic transaction rules describe transactions that recur. They allow Periodic transaction rules describe transactions that recur. They allow
you to generate future transactions for forecasting, without having to hledger to generate temporary future transactions to help with
write them out explicitly in the journal (with '--forecast'). Secondly, forecasting, so you don't have to write out each one in the journal, and
they also can be used to define budget goals (with '--budget'). it's easy to try out different forecasts. Secondly, they are also used
to define the budgets shown in budget reports.
A periodic transaction rule looks like a normal journal entry, with Periodic transactions can be a little tricky, so before you use them,
the date replaced by a tilde ('~') followed by a period expression read this whole section - or at least these tips:
1. Two spaces accidentally added or omitted will cause you trouble -
read about this below.
2. For troubleshooting, show the generated transactions with 'hledger
print --forecast tag:generated' or 'hledger register --forecast
tag:generated'.
3. Forecasted transactions will begin only after the last
non-forecasted transaction's date.
4. Forecasted transactions will end 6 months from today, by default.
See below for the exact start/end rules.
5. period expressions can be tricky. Their documentation needs
improvement, but is worth studying.
6. Some period expressions with a repeating interval must begin on a
natural boundary of that interval. Eg in 'weekly from DATE', DATE
must be a monday. '~ weekly from 2019/10/1' (a tuesday) will give
an error.
7. Other period expressions with an interval are automatically
expanded to cover a whole number of that interval. (This is done
to improve reports, but it also affects periodic transactions.
Yes, it's a bit inconsistent with the above.) Eg: '~ every 10th
day of month from 2020/01', which is equivalent to '~ every 10th
day of month from 2020/01/01', will be adjusted to start on
2019/12/10.
* Menu:
* Periodic rule syntax::
* Two spaces between period expression and description!::
* Forecasting with periodic transactions::
* Budgeting with periodic transactions::

File: hledger_journal.info, Node: Periodic rule syntax, Next: Two spaces between period expression and description!, Up: Periodic transactions
1.15.1 Periodic rule syntax
---------------------------
A periodic transaction rule looks like a normal journal entry, with the
date replaced by a tilde ('~') followed by a period expression
(mnemonic: '~' looks like a recurring sine wave.): (mnemonic: '~' looks like a recurring sine wave.):
~ monthly ~ monthly
@ -1433,17 +1473,11 @@ 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:
* Two spaces after the period expression::
* Forecasting with periodic transactions::
* Budgeting with periodic transactions::
 
File: hledger_journal.info, Node: Two spaces after the period expression, Next: Forecasting with periodic transactions, Up: Periodic transactions File: hledger_journal.info, Node: Two spaces between period expression and description!, Next: Forecasting with periodic transactions, Prev: Periodic rule syntax, Up: Periodic transactions
1.15.1 Two spaces after the period expression 1.15.2 Two spaces between period expression and description!
--------------------------------------------- ------------------------------------------------------------
If the period expression is followed by a transaction description, these If the period expression is followed by a transaction description, these
must be separated by *two or more spaces*. This helps hledger know must be separated by *two or more spaces*. This helps hledger know
@ -1457,10 +1491,17 @@ accidentally alter their meaning, as in this example:
assets:bank:checking $1500 assets:bank:checking $1500
income:acme inc income:acme inc
 So,
File: hledger_journal.info, Node: Forecasting with periodic transactions, Next: Budgeting with periodic transactions, Prev: Two spaces after the period expression, Up: Periodic transactions
1.15.2 Forecasting with periodic transactions * Do write two spaces between your period expression and your
transaction description, if any.
* Don't accidentally write two spaces in the middle of your period
expression.

File: hledger_journal.info, Node: Forecasting with periodic transactions, Next: Budgeting with periodic transactions, Prev: Two spaces between period expression and description!, Up: Periodic transactions
1.15.3 Forecasting with periodic transactions
--------------------------------------------- ---------------------------------------------
With the '--forecast' flag, each periodic transaction rule generates With the '--forecast' flag, each periodic transaction rule generates
@ -1513,7 +1554,7 @@ disables forecast transactions on previous dates.)
 
File: hledger_journal.info, Node: Budgeting with periodic transactions, Prev: Forecasting with periodic transactions, Up: Periodic transactions File: hledger_journal.info, Node: Budgeting with periodic transactions, Prev: Forecasting with periodic transactions, Up: Periodic transactions
1.15.3 Budgeting with periodic transactions 1.15.4 Budgeting with periodic transactions
------------------------------------------- -------------------------------------------
With the '--budget' flag, currently supported by the balance command, With the '--budget' flag, currently supported by the balance command,
@ -1523,8 +1564,8 @@ spending $2000 on rent (and also, a goal of depositing $2000 into
checking) every month. Goals and actual performance can then be checking) every month. Goals and actual performance can then be
compared in budget reports. compared in budget reports.
For more details, see: balance: Budget report and Cookbook: Budgeting For more details, see: balance: Budget report and Budgeting and
and Forecasting. Forecasting.
 
File: hledger_journal.info, Node: Auto postings / transaction modifiers, Prev: Periodic transactions, Up: FILE FORMAT File: hledger_journal.info, Node: Auto postings / transaction modifiers, Prev: Periodic transactions, Up: FILE FORMAT
@ -1760,21 +1801,23 @@ Node: Default parent account50218
Ref: #default-parent-account50384 Ref: #default-parent-account50384
Node: Periodic transactions51268 Node: Periodic transactions51268
Ref: #periodic-transactions51466 Ref: #periodic-transactions51466
Node: Two spaces after the period expression52592 Node: Periodic rule syntax53338
Ref: #two-spaces-after-the-period-expression52837 Ref: #periodic-rule-syntax53544
Node: Forecasting with periodic transactions53322 Node: Two spaces between period expression and description!54248
Ref: #forecasting-with-periodic-transactions53612 Ref: #two-spaces-between-period-expression-and-description54567
Node: Budgeting with periodic transactions55638 Node: Forecasting with periodic transactions55251
Ref: #budgeting-with-periodic-transactions55877 Ref: #forecasting-with-periodic-transactions55556
Node: Auto postings / transaction modifiers56336 Node: Budgeting with periodic transactions57582
Ref: #auto-postings-transaction-modifiers56547 Ref: #budgeting-with-periodic-transactions57821
Node: Auto postings and dates58776 Node: Auto postings / transaction modifiers58270
Ref: #auto-postings-and-dates59033 Ref: #auto-postings-transaction-modifiers58481
Node: Auto postings and transaction balancing / inferred amounts / balance assertions59208 Node: Auto postings and dates60710
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions59583 Ref: #auto-postings-and-dates60967
Node: Auto posting tags59961 Node: Auto postings and transaction balancing / inferred amounts / balance assertions61142
Ref: #auto-posting-tags60200 Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61517
Node: EDITOR SUPPORT60865 Node: Auto posting tags61895
Ref: #editor-support60983 Ref: #auto-posting-tags62134
Node: EDITOR SUPPORT62799
Ref: #editor-support62917
 
End Tag Table End Tag Table

View File

@ -7,9 +7,9 @@ NAME
Journal - hledger's default file format, representing a General Journal Journal - hledger's default file format, representing a General Journal
DESCRIPTION DESCRIPTION
hledger's usual data source is a plain text file containing journal en- hledger's usual data source is a plain text file containing journal
tries in hledger journal format. This file represents a standard ac- entries in hledger journal format. This file represents a standard
counting general journal. I use file names ending in .journal, but accounting general journal. I use file names ending in .journal, but
that's not required. The journal file contains a number of transaction that's not required. The journal file contains a number of transaction
entries, each describing a transfer of money (or any commodity) between entries, each describing a transfer of money (or any commodity) between
two or more named accounts, in a simple format readable by both hledger two or more named accounts, in a simple format readable by both hledger
@ -23,8 +23,8 @@ DESCRIPTION
You can use hledger without learning any more about this file; just use You can use hledger without learning any more about this file; just use
the add or web commands to create and update it. Many users, though, the add or web commands to create and update it. Many users, though,
also edit the journal file directly with a text editor, perhaps as- also edit the journal file directly with a text editor, perhaps
sisted by the helper modes for emacs or vim. assisted by the helper modes for emacs or vim.
Here's an example: Here's an example:
@ -58,9 +58,9 @@ DESCRIPTION
FILE FORMAT FILE FORMAT
Transactions Transactions
Transactions are movements of some quantity of commodities between Transactions are movements of some quantity of commodities between
named accounts. Each transaction is represented by a journal entry be- named accounts. Each transaction is represented by a journal entry
ginning with a simple date in column 0. This can be followed by any of beginning with a simple date in column 0. This can be followed by any
the following, separated by spaces: of the following, separated by spaces:
o (optional) a status character (empty, !, or *) o (optional) a status character (empty, !, or *)
@ -104,16 +104,16 @@ FILE FORMAT
Simple dates Simple dates
Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D) Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
Leading zeros are optional. The year may be omitted, in which case it Leading zeros are optional. The year may be omitted, in which case it
will be inferred from the context - the current transaction, the de- will be inferred from the context - the current transaction, the
fault year set with a default year directive, or the current date when default year set with a default year directive, or the current date
the command is run. Some examples: 2010/01/31, 1/31, 2010-01-31, when the command is run. Some examples: 2010/01/31, 1/31, 2010-01-31,
2010.1.31. 2010.1.31.
Secondary dates Secondary dates
Real-life transactions sometimes involve more than one date - eg the Real-life transactions sometimes involve more than one date - eg the
date you write a cheque, and the date it clears in your bank. When you date you write a cheque, and the date it clears in your bank. When you
want to model this, eg for more accurate balances, you can specify in- want to model this, eg for more accurate balances, you can specify
dividual posting dates, which I recommend. Or, you can use the sec- individual posting dates, which I recommend. Or, you can use the sec-
ondary dates (aka auxiliary/effective dates) feature, supported for ondary dates (aka auxiliary/effective dates) feature, supported for
compatibility with Ledger. compatibility with Ledger.
@ -142,15 +142,15 @@ FILE FORMAT
Secondary dates require some effort; you must use them consistently in Secondary dates require some effort; you must use them consistently in
your journal entries and remember whether to use or not use the --date2 your journal entries and remember whether to use or not use the --date2
flag for your reports. They are included in hledger for Ledger compat- flag for your reports. They are included in hledger for Ledger compat-
ibility, but posting dates are a more powerful and less confusing al- ibility, but posting dates are a more powerful and less confusing
ternative. alternative.
Posting dates Posting dates
You can give individual postings a different date from their parent You can give individual postings a different date from their parent
transaction, by adding a posting comment containing a tag (see below) transaction, by adding a posting comment containing a tag (see below)
like date:DATE. This is probably the best way to control posting dates like date:DATE. This is probably the best way to control posting dates
precisely. Eg in this example the expense should appear in May re- precisely. Eg in this example the expense should appear in May
ports, and the deduction from checking should be reported on 6/1 for reports, and the deduction from checking should be reported on 6/1 for
easy bank reconciliation: easy bank reconciliation:
2015/5/30 2015/5/30
@ -177,9 +177,9 @@ FILE FORMAT
Status Status
Transactions, or individual postings within a transaction, can have a Transactions, or individual postings within a transaction, can have a
status mark, which is a single character before the transaction de- status mark, which is a single character before the transaction
scription or posting account name, separated from it by a space, indi- description or posting account name, separated from it by a space,
cating one of three statuses: indicating one of three statuses:
mark status mark status
------------------ ------------------
@ -192,8 +192,8 @@ FILE FORMAT
status:* queries; or the U, P, C keys in hledger-ui. status:* queries; or the U, P, C keys in hledger-ui.
Note, in Ledger and in older versions of hledger, the "unmarked" state Note, in Ledger and in older versions of hledger, the "unmarked" state
is called "uncleared". As of hledger 1.3 we have renamed it to un- is called "uncleared". As of hledger 1.3 we have renamed it to
marked for clarity. unmarked for clarity.
To replicate Ledger and old hledger's behaviour of also matching pend- To replicate Ledger and old hledger's behaviour of also matching pend-
ing, combine -U and -P. ing, combine -U and -P.
@ -215,8 +215,8 @@ FILE FORMAT
rect rect
With this scheme, you would use -PC to see the current balance at your With this scheme, you would use -PC to see the current balance at your
bank, -U to see things which will probably hit your bank soon (like un- bank, -U to see things which will probably hit your bank soon (like
cashed checks), and no flags to see the most up-to-date state of your uncashed checks), and no flags to see the most up-to-date state of your
finances. finances.
Description Description
@ -229,9 +229,9 @@ FILE FORMAT
Payee and note Payee and note
You can optionally include a | (pipe) character in descriptions to sub- You can optionally include a | (pipe) character in descriptions to sub-
divide the description into separate fields for payee/payer name on the divide the description into separate fields for payee/payer name on the
left (up to the first |) and an additional note field on the right (af- left (up to the first |) and an additional note field on the right
ter the first |). This may be worthwhile if you need to do more pre- (after the first |). This may be worthwhile if you need to do more
cise querying and pivoting by payee or by note. precise querying and pivoting by payee or by note.
Account names Account names
Account names typically have several parts separated by a full colon, Account names typically have several parts separated by a full colon,
@ -580,11 +580,11 @@ FILE FORMAT
nodes to be ignored, allowing emacs users to fold and navigate their nodes to be ignored, allowing emacs users to fold and navigate their
journals with org-mode or orgstruct-mode.) journals with org-mode or orgstruct-mode.)
You can attach comments to a transaction by writing them after the de- You can attach comments to a transaction by writing them after the
scription and/or indented on the following lines (before the postings). description and/or indented on the following lines (before the post-
Similarly, you can attach comments to an individual posting by writing ings). Similarly, you can attach comments to an individual posting by
them after the amount and/or indented on the following lines. Transac- writing them after the amount and/or indented on the following lines.
tion and posting comments must begin with a semicolon (;). Transaction and posting comments must begin with a semicolon (;).
Some examples: Some examples:
@ -660,33 +660,33 @@ FILE FORMAT
here is a table summarising the directives and their effects, with here is a table summarising the directives and their effects, with
links to more detailed docs. links to more detailed docs.
direc- end di- subdi- purpose can affect (as of direc- end subdi- purpose can affect (as of
tive rective rec- 2018/06) tive directive rec- 2018/06)
tives tives
------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------
account any document account names, de- all entries in all account any document account names, all entries in all
text clare account types & dis- files, before or text declare account types & dis- files, before or
play order after play order after
alias end rewrite account names following in- alias end rewrite account names following
aliases line/included en- aliases inline/included
tries until end of entries until end
current file or end of current file or
directive end directive
apply end apply prepend a common parent to following in- apply end apply prepend a common parent to following
account account account names line/included en- account account account names inline/included
tries until end of entries until end
current file or end of current file or
directive end directive
comment end com- ignore part of journal following in- comment end com- ignore part of journal following
ment line/included en- ment inline/included
tries until end of entries until end
current file or end of current file or
directive end directive
commod- format declare a commodity and its number notation: commod- format declare a commodity and its number notation:
ity number notation & display following entries ity number notation & display following entries
style in that commodity style in that commodity
@ -709,13 +709,13 @@ FILE FORMAT
include include entries/directives what the included include include entries/directives what the included
from another file directives affect from another file directives affect
P declare a market price for a amounts of that P declare a market price for a amounts of that
commodity commodity in re- commodity commodity in
ports, when -V is reports, when -V is
used used
Y declare a year for yearless following in- Y declare a year for yearless following
dates line/included en- dates inline/included
tries until end of entries until end
current file of current file
And some definitions: And some definitions:
@ -731,8 +731,8 @@ FILE FORMAT
scope are affected by a directive scope are affected by a directive
As you can see, directives vary in which journal entries and files they As you can see, directives vary in which journal entries and files they
affect, and whether they are focussed on input (parsing) or output (re- affect, and whether they are focussed on input (parsing) or output
ports). Some directives have multiple effects. (reports). Some directives have multiple effects.
If you have a journal made up of multiple files, or pass multiple -f If you have a journal made up of multiple files, or pass multiple -f
options on the command line, note that directives which affect input options on the command line, note that directives which affect input
@ -756,8 +756,8 @@ FILE FORMAT
file. The include file path may contain common glob patterns (e.g. file. The include file path may contain common glob patterns (e.g.
*). *).
The include directive can only be used in journal files. It can in- The include directive can only be used in journal files. It can
clude journal, timeclock or timedot files, but not CSV files. include journal, timeclock or timedot files, but not CSV files.
Default year Default year
You can set a default year to be used for subsequent dates which don't You can set a default year to be used for subsequent dates which don't
@ -813,8 +813,8 @@ FILE FORMAT
Normally the display format is inferred from journal entries, but this Normally the display format is inferred from journal entries, but this
can be unpredictable; declaring it with a commodity directive overrides can be unpredictable; declaring it with a commodity directive overrides
this and removes ambiguity. Towards this end, amounts in commodity di- this and removes ambiguity. Towards this end, amounts in commodity
rectives must always be written with a decimal point (a period or directives must always be written with a decimal point (a period or
comma, followed by 0 or more decimal digits). comma, followed by 0 or more decimal digits).
Commodity directives do not affect how amounts are parsed; the parser Commodity directives do not affect how amounts are parsed; the parser
@ -839,8 +839,8 @@ FILE FORMAT
a decimal point. a decimal point.
Market prices Market prices
The P directive declares a market price, which is an exchange rate be- The P directive declares a market price, which is an exchange rate
tween two commodities on a certain date. (In Ledger, they are called between two commodities on a certain date. (In Ledger, they are called
"historical prices".) These are often obtained from a stock exchange, "historical prices".) These are often obtained from a stock exchange,
cryptocurrency exchange, or the foreign exchange market. cryptocurrency exchange, or the foreign exchange market.
@ -865,8 +865,8 @@ FILE FORMAT
commodity using these prices. commodity using these prices.
Declaring accounts Declaring accounts
account directives can be used to pre-declare accounts. Though not re- account directives can be used to pre-declare accounts. Though not
quired, they can provide several benefits: required, they can provide several benefits:
o They can document your intended chart of accounts, providing a refer- o They can document your intended chart of accounts, providing a refer-
ence. ence.
@ -925,8 +925,8 @@ FILE FORMAT
detected automatically. detected automatically.
Account types declared with tags Account types declared with tags
More generally, you can declare an account's type with an account di- More generally, you can declare an account's type with an account
rective, by writing a type: tag in a comment, followed by one of the directive, by writing a type: tag in a comment, followed by one of the
words Asset, Liability, Equity, Revenue, Expense, or one of the letters words Asset, Liability, Equity, Revenue, Expense, or one of the letters
ALERX (case insensitive): ALERX (case insensitive):
@ -1025,9 +1025,9 @@ FILE FORMAT
Or, you can use the --alias 'OLD=NEW' option on the command line. This Or, you can use the --alias 'OLD=NEW' option on the command line. This
affects all entries. It's useful for trying out aliases interactively. affects all entries. It's useful for trying out aliases interactively.
OLD and NEW are case sensitive full account names. hledger will re- OLD and NEW are case sensitive full account names. hledger will
place any occurrence of the old account name with the new one. Subac- replace any occurrence of the old account name with the new one. Sub-
counts are also affected. Eg: accounts are also affected. Eg:
alias checking = assets:bank:wells fargo:checking alias checking = assets:bank:wells fargo:checking
; rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" ; rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
@ -1092,9 +1092,9 @@ FILE FORMAT
end aliases end aliases
Default parent account Default parent account
You can specify a parent account which will be prepended to all ac- You can specify a parent account which will be prepended to all
counts within a section of the journal. Use the apply account and end accounts within a section of the journal. Use the apply account and
apply account directives like so: end apply account directives like so:
apply account home apply account home
@ -1128,11 +1128,44 @@ FILE FORMAT
account. account.
Periodic transactions Periodic transactions
Periodic transaction rules describe transactions that recur. They al- Periodic transaction rules describe transactions that recur. They
low you to generate future transactions for forecasting, without having allow hledger to generate temporary future transactions to help with
to write them out explicitly in the journal (with --forecast). Sec- forecasting, so you don't have to write out each one in the journal,
ondly, they also can be used to define budget goals (with --budget). and it's easy to try out different forecasts. Secondly, they are also
used to define the budgets shown in budget reports.
Periodic transactions can be a little tricky, so before you use them,
read this whole section - or at least these tips:
1. Two spaces accidentally added or omitted will cause you trouble -
read about this below.
2. For troubleshooting, show the generated transactions with hledger
print --forecast tag:generated or hledger register --forecast
tag:generated.
3. Forecasted transactions will begin only after the last non-fore-
casted transaction's date.
4. Forecasted transactions will end 6 months from today, by default.
See below for the exact start/end rules.
5. period expressions can be tricky. Their documentation needs
improvement, but is worth studying.
6. Some period expressions with a repeating interval must begin on a
natural boundary of that interval. Eg in weekly from DATE, DATE
must be a monday. ~ weekly from 2019/10/1 (a tuesday) will give an
error.
7. Other period expressions with an interval are automatically expanded
to cover a whole number of that interval. (This is done to improve
reports, but it also affects periodic transactions. Yes, it's a bit
inconsistent with the above.) Eg: ~ every 10th day of month from
2020/01, which is equivalent to ~ every 10th day of month from
2020/01/01, will be adjusted to start on 2019/12/10.
Periodic rule syntax
A periodic transaction rule looks like a normal journal entry, with the A periodic transaction rule looks like a normal journal entry, with the
date replaced by a tilde (~) followed by a period expression (mnemonic: date replaced by a tilde (~) followed by a period expression (mnemonic:
~ looks like a recurring sine wave.): ~ looks like a recurring sine wave.):
@ -1150,7 +1183,7 @@ FILE FORMAT
date, unless a Y default year directive is in effect, in which case date, unless a Y default year directive is in effect, in which case
they will be relative to Y/1/1. they will be relative to Y/1/1.
Two spaces after the period expression Two spaces between period expression and description!
If the period expression is followed by a transaction description, If the period expression is followed by a transaction description,
these must be separated by two or more spaces. This helps hledger know these must be separated by two or more spaces. This helps hledger know
where the period expression ends, so that descriptions can not acciden- where the period expression ends, so that descriptions can not acciden-
@ -1163,9 +1196,17 @@ FILE FORMAT
assets:bank:checking $1500 assets:bank:checking $1500
income:acme inc income:acme inc
So,
o Do write two spaces between your period expression and your transac-
tion description, if any.
o Don't accidentally write two spaces in the middle of your period
expression.
Forecasting with periodic transactions Forecasting with periodic transactions
With the --forecast flag, each periodic transaction rule generates fu- With the --forecast flag, each periodic transaction rule generates
ture transactions recurring at the specified interval. These are not future transactions recurring at the specified interval. These are not
saved in the journal, but appear in all reports. They will look like saved in the journal, but appear in all reports. They will look like
normal transactions, but with an extra tag: normal transactions, but with an extra tag:
@ -1220,8 +1261,8 @@ FILE FORMAT
checking) every month. Goals and actual performance can then be com- checking) every month. Goals and actual performance can then be com-
pared in budget reports. pared in budget reports.
For more details, see: balance: Budget report and Cookbook: Budgeting For more details, see: balance: Budget report and Budgeting and Fore-
and Forecasting. casting.
Auto postings / transaction modifiers Auto postings / transaction modifiers
Transaction modifier rules, AKA auto posting rules, describe changes to Transaction modifier rules, AKA auto posting rules, describe changes to

View File

@ -28,8 +28,8 @@ FILE FORMAT
Quantities can be written as: Quantities can be written as:
o a sequence of dots (.) representing quarter hours. Spaces may op- o a sequence of dots (.) representing quarter hours. Spaces may
tionally be used for grouping and readability. Eg: .... .. optionally be used for grouping and readability. Eg: .... ..
o an integral or decimal number, representing hours. Eg: 1.5 o an integral or decimal number, representing hours. Eg: 1.5

View File

@ -117,8 +117,8 @@ OPTIONS
using period expressions syntax using period expressions syntax
--date2 --date2
match the secondary date instead (see command help for other ef- match the secondary date instead (see command help for other
fects) effects)
-U --unmarked -U --unmarked
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
@ -204,8 +204,8 @@ KEYS
BACKSPACE or DELETE removes all filters, showing all transactions. BACKSPACE or DELETE removes all filters, showing all transactions.
As mentioned above, hledger-ui shows auto-generated periodic transac- As mentioned above, hledger-ui shows auto-generated periodic transac-
tions, and hides future transactions (auto-generated or not) by de- tions, and hides future transactions (auto-generated or not) by
fault. F toggles showing and hiding these future transactions. This default. F toggles showing and hiding these future transactions. This
is similar to using a query like date:-tomorrow, but more convenient. is similar to using a query like date:-tomorrow, but more convenient.
(experimental) (experimental)
@ -227,8 +227,8 @@ KEYS
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 curses- A is like a, but runs the hledger-iadd tool, which provides a curses-
style interface. This key will be available if hledger-iadd is in- style interface. This key will be available if hledger-iadd is
stalled in $PATH. installed in $PATH.
E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a "" E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a ""
-nw) on the journal file. With some editors (emacs, vi), the cursor -nw) on the journal file. With some editors (emacs, vi), the cursor
@ -250,35 +250,36 @@ SCREENS
Account names are shown as a flat list by default. Press T to toggle Account names are shown as a flat list by default. Press T to toggle
tree mode. In flat mode, account balances are exclusive of subac- tree mode. In flat mode, account balances are exclusive of subac-
counts, except where subaccounts are hidden by a depth limit (see be- counts, except where subaccounts are hidden by a depth limit (see
low). In tree mode, all account balances are inclusive of subaccounts. below). In tree mode, all account balances are inclusive of subac-
counts.
To see less detail, press a number key, 1 to 9, to set a depth limit. To see less detail, press a number key, 1 to 9, to set a depth limit.
Or use - to decrease and +/= to increase the depth limit. 0 shows even Or use - to decrease and +/= to increase the depth limit. 0 shows even
less detail, collapsing all accounts to a single total. To remove the less detail, collapsing all accounts to a single total. To remove the
depth limit, set it higher than the maximum account depth, or press ES- depth limit, set it higher than the maximum account depth, or press
CAPE. ESCAPE.
H toggles between showing historical balances or period balances. His- H toggles between showing historical balances or period balances. His-
torical balances (the default) are ending balances at the end of the torical 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
(filtered by the filter query if any), including transactions before (filtered by the filter query if any), including transactions before
the start of the report period. In other words, historical balances the start of the report period. In other words, historical balances
are what you would see on a bank statement for that account (unless are what you would see on a bank statement for that account (unless
disturbed by a filter query). Period balances ignore transactions be- disturbed by a filter query). Period balances ignore transactions
fore the report start date, so they show the change in balance during before the report start date, so they show the change in balance during
the report period. They are more useful eg when viewing a time log. the report period. They are more useful eg when viewing a time log.
U toggles filtering by unmarked status, including or excluding unmarked U toggles filtering by unmarked status, including or excluding unmarked
postings in the balances. Similarly, P toggles pending postings, and C postings in the balances. Similarly, P toggles pending postings, and C
toggles cleared postings. (By default, balances include all postings; toggles cleared postings. (By default, balances include all postings;
if you activate one or two status filters, only those postings are in- if you activate one or two status filters, only those postings are
cluded; and if you activate all three, the filter is removed.) included; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored. R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only accounts with nonzero balances Z toggles nonzero mode, in which only accounts with nonzero balances
are shown (hledger-ui shows zero items by default, unlike command-line are shown (hledger-ui shows zero items by default, unlike command-line
hledger). hledger).
Press right or enter to view an account's transactions register. Press right or enter to view an account's transactions register.
@ -287,63 +288,63 @@ SCREENS
This screen shows the transactions affecting a particular account, like This screen shows the transactions affecting a particular account, like
a check register. Each line represents one transaction and shows: a check register. Each line represents one transaction and shows:
o the other account(s) involved, in abbreviated form. (If there are o the other account(s) involved, in abbreviated form. (If there are
both real and virtual postings, it shows only the accounts affected both real and virtual postings, it shows only the accounts affected
by real postings.) by real postings.)
o the overall change to the current account's balance; positive for an o the overall change to the current account's balance; positive for an
inflow to this account, negative for an outflow. inflow to this account, negative for an outflow.
o the running historical total or period total for the current account, o the running historical total or period total for the current account,
after the transaction. This can be toggled with H. Similar to the after the transaction. This can be toggled with H. Similar to the
accounts screen, the historical total is affected by transactions accounts screen, the historical total is affected by transactions
(filtered by the filter query) before the report start date, while (filtered by the filter query) before the report start date, while
the period total is not. If the historical total is not disturbed by the period total is not. If the historical total is not disturbed by
a filter query, it will be the running historical balance you would a filter query, it will be the running historical balance you would
see on a bank register for the current account. see on a bank register for the current account.
Transactions affecting this account's subaccounts will be included in Transactions affecting this account's subaccounts will be included in
the register if the accounts screen is in tree mode, or if it's in flat the register if the accounts screen is in tree mode, or if it's in flat
mode but this account has subaccounts which are not shown due to a mode but this account has subaccounts which are not shown due to a
depth limit. In other words, the register always shows the transac- depth limit. In other words, the register always shows the transac-
tions contributing to the balance shown on the accounts screen. tions contributing to the balance shown on the accounts screen.
Tree mode/flat mode can be toggled with T here also. Tree mode/flat mode can be toggled with T here also.
U toggles filtering by unmarked status, showing or hiding unmarked U toggles filtering by unmarked status, showing or hiding unmarked
transactions. Similarly, P toggles pending transactions, and C toggles transactions. Similarly, P toggles pending transactions, and C toggles
cleared transactions. (By default, transactions with all statuses are cleared transactions. (By default, transactions with all statuses are
shown; if you activate one or two status filters, only those transac- shown; if you activate one or two status filters, only those transac-
tions are shown; and if you activate all three, the filter is removed.) tions are shown; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored. R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only transactions posting a nonzero Z toggles nonzero mode, in which only transactions posting a nonzero
change are shown (hledger-ui shows zero items by default, unlike com- change are shown (hledger-ui shows zero items by default, unlike com-
mand-line hledger). mand-line hledger).
Press right (or enter) to view the selected transaction in detail. Press right (or enter) to view the selected transaction in detail.
Transaction screen Transaction screen
This screen shows a single transaction, as a general journal entry, This screen shows a single transaction, as a general journal entry,
similar to hledger's print command and journal format (hledger_jour- similar to hledger's print command and journal format (hledger_jour-
nal(5)). nal(5)).
The transaction's date(s) and any cleared flag, transaction code, de- The transaction's date(s) and any cleared flag, transaction code,
scription, comments, along with all of its account postings are shown. description, comments, along with all of its account postings are
Simple transactions have two postings, but there can be more (or in shown. Simple transactions have two postings, but there can be more
certain cases, fewer). (or in certain cases, fewer).
up and down will step through all transactions listed in the previous up and down will step through all transactions listed in the previous
account register screen. In the title bar, the numbers in parentheses account register screen. In the title bar, the numbers in parentheses
show your position within that account register. They will vary de- show your position within that account register. They will vary
pending on which account register you came from (remember most transac- depending on which account register you came from (remember most trans-
tions appear in multiple account registers). The #N number preceding actions appear in multiple account registers). The #N number preceding
them is the transaction's position within the complete unfiltered jour- them is the transaction's position within the complete unfiltered jour-
nal, which is a more stable id (at least until the next reload). nal, which is a more stable id (at least until the next reload).
Error screen Error screen
This screen will appear if there is a problem, such as a parse error, This screen will appear if there is a problem, such as a parse error,
when you press g to reload. Once you have fixed the problem, press g when you press g to reload. Once you have fixed the problem, press g
again to reload and resume normal operation. (Or, you can press escape again to reload and resume normal operation. (Or, you can press escape
to cancel the reload attempt.) to cancel the reload attempt.)
@ -351,17 +352,17 @@ ENVIRONMENT
COLUMNS The screen width to use. Default: the full terminal width. COLUMNS The screen width to use. Default: the full terminal width.
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-
nal). nal).
FILES FILES
Reads data from one or more files in hledger journal, timeclock, time- Reads data from one or more files in hledger journal, timeclock, time-
dot, or CSV format specified with -f, or $LEDGER_FILE, or dot, or CSV format specified with -f, or $LEDGER_FILE, or
$HOME/.hledger.journal (on windows, perhaps $HOME/.hledger.journal (on windows, perhaps
C:/Users/USER/.hledger.journal). C:/Users/USER/.hledger.journal).
BUGS BUGS
The need to precede options with -- when invoked from hledger is awk- The need to precede options with -- when invoked from hledger is awk-
ward. ward.
-f- doesn't work (hledger-ui can't read from stdin). -f- doesn't work (hledger-ui can't read from stdin).
@ -369,24 +370,24 @@ BUGS
-V affects only the accounts screen. -V affects only the accounts screen.
When you press g, the current and all previous screens are regenerated, When you press g, the current and all previous screens are regenerated,
which may cause a noticeable pause with large files. Also there is no which may cause a noticeable pause with large files. Also there is no
visual indication that this is in progress. visual indication that this is in progress.
--watch is not yet fully robust. It works well for normal usage, but --watch is not yet fully robust. It works well for normal usage, but
many file changes in a short time (eg saving the file thousands of many file changes in a short time (eg saving the file thousands of
times with an editor macro) can cause problems at least on OSX. Symp- times with an editor macro) can cause problems at least on OSX. Symp-
toms include: unresponsive UI, periodic resetting of the cursor posi- toms include: unresponsive UI, periodic resetting of the cursor posi-
tion, momentary display of parse errors, high CPU usage eventually sub- tion, momentary display of parse errors, high CPU usage eventually sub-
siding, and possibly a small but persistent build-up of CPU usage until siding, and possibly a small but persistent build-up of CPU usage until
the program is restarted. the program is restarted.
Also, if you are viewing files mounted from another machine, --watch Also, if you are viewing files mounted from another machine, --watch
requires that both machine clocks are roughly in step. requires that both machine clocks are roughly in step.
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)
@ -400,7 +401,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)

View File

@ -19,9 +19,9 @@ DESCRIPTION
hledger-web is hledger's web interface. It starts a simple web appli- hledger-web is hledger's web interface. It starts a simple web appli-
cation for browsing and adding transactions, and optionally opens it in cation for browsing and adding transactions, and optionally opens it in
a web browser window if possible. It provides a more user-friendly UI a web browser window if possible. It provides a more user-friendly UI
than the hledger CLI or hledger-ui interface, showing more at once (ac- than the hledger CLI or hledger-ui interface, showing more at once
counts, the current account register, balance charts) and allowing his- (accounts, the current account register, balance charts) and allowing
tory-aware data entry, interactive searching, and bookmarking. history-aware data entry, interactive searching, and bookmarking.
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. There is no access control, so if you need that you the public web. There is no access control, so if you need that you
@ -127,8 +127,8 @@ OPTIONS
using period expressions syntax using period expressions syntax
--date2 --date2
match the secondary date instead (see command help for other ef- match the secondary date instead (see command help for other
fects) effects)
-U --unmarked -U --unmarked
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
@ -214,8 +214,8 @@ PERMISSIONS
You can restrict who can reach it by You can restrict who can reach it by
o setting the IP address it listens on (see --host above). By default o setting the IP address it listens on (see --host above). By default
it listens on 127.0.0.1, accessible to all users on the local ma- it listens on 127.0.0.1, accessible to all users on the local
chine. machine.
o putting it behind an authenticating proxy, using eg apache or nginx o putting it behind an authenticating proxy, using eg apache or nginx
@ -231,8 +231,8 @@ PERMISSIONS
o add - allows adding new transactions to the main journal file o add - allows adding new transactions to the main journal file
o manage - allows editing, uploading or downloading the main or in- o manage - allows editing, uploading or downloading the main or
cluded files included files
o using the --capabilities-header=HTTPHEADER flag to specify a HTTP o using the --capabilities-header=HTTPHEADER flag to specify a HTTP
header from which it will read capabilities to enable. hledger-web header from which it will read capabilities to enable. hledger-web
@ -242,8 +242,8 @@ PERMISSIONS
EDITING, UPLOADING, DOWNLOADING EDITING, UPLOADING, DOWNLOADING
If you enable the manage capability mentioned above, you'll see a new If you enable the manage capability mentioned above, you'll see a new
"spanner" button to the right of the search form. Clicking this will "spanner" button to the right of the search form. Clicking this will
let you edit, upload, or download the journal file or any files it in- let you edit, upload, or download the journal file or any files it
cludes. includes.
Note, unlike any other hledger command, in this mode you (or any visi- Note, unlike any other hledger command, in this mode you (or any visi-
tor) can alter or wipe the data files. tor) can alter or wipe the data files.
@ -262,8 +262,8 @@ RELOADING
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 when you reload the page or navigate to a new page. If a change data when you reload the page or navigate to a new page. If a change
makes a file unparseable, hledger-web will display an error message un- makes a file unparseable, hledger-web will display an error message
til the file has been fixed. until the file has been fixed.
(Note: if you are viewing files mounted from another machine, make sure (Note: if you are viewing files mounted from another machine, make sure
that both machine clocks are roughly in step.) that both machine clocks are roughly in step.)

View File

@ -3634,7 +3634,7 @@ account, but it\[aq]s superseded now by the built-in roi command.
.SS Experimental add-ons .SS Experimental add-ons
.PP .PP
These are available in source form in the hledger repo\[aq]s bin/ These are available in source form in the hledger repo\[aq]s bin/
directory; installing them is pretty easy. directory.
They may be less mature and documented than built-in commands. They may be less mature and documented than built-in commands.
Reading and tweaking these is a good way to start making your own! Reading and tweaking these is a good way to start making your own!
.SS autosync .SS autosync

View File

@ -3119,10 +3119,9 @@ File: hledger.info, Node: Experimental add-ons, Prev: Third party add-ons, Up
5.3 Experimental add-ons 5.3 Experimental add-ons
======================== ========================
These are available in source form in the hledger repo's bin/ directory; 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 They may be less mature and documented than built-in commands. Reading
than built-in commands. Reading and tweaking these is a good way to and tweaking these is a good way to start making your own!
start making your own!
* Menu: * Menu:
@ -3328,11 +3327,11 @@ Node: irr108282
Ref: #irr108380 Ref: #irr108380
Node: Experimental add-ons108511 Node: Experimental add-ons108511
Ref: #experimental-add-ons108663 Ref: #experimental-add-ons108663
Node: autosync108944 Node: autosync108911
Ref: #autosync109055 Ref: #autosync109022
Node: chart109294 Node: chart109261
Ref: #chart109413 Ref: #chart109380
Node: check109484 Node: check109451
Ref: #check109586 Ref: #check109553
 
End Tag Table End Tag Table

File diff suppressed because it is too large Load Diff