Merge branch 'manuals' into master
This commit is contained in:
commit
a024ac14a9
16
Shake.hs
16
Shake.hs
@ -97,7 +97,7 @@ usage =
|
|||||||
-- ,"./Shake relnotes create draft release notes"
|
-- ,"./Shake relnotes create draft release notes"
|
||||||
|
|
||||||
-- groff = "groff -c" ++ " -Wall" -- see "groff" below
|
-- groff = "groff -c" ++ " -Wall" -- see "groff" below
|
||||||
makeinfo = "makeinfo" ++ " --no-warn" -- silence makeinfo warnings - comment out to see them
|
makeinfo = "makeinfo --no-split --force --no-warn --no-validate" -- silence makeinfo warnings, comment these to see them
|
||||||
pandoc = "pandoc --strip-comments"
|
pandoc = "pandoc --strip-comments"
|
||||||
gitcommit = "git commit --allow-empty"
|
gitcommit = "git commit --allow-empty"
|
||||||
|
|
||||||
@ -400,18 +400,20 @@ main = do
|
|||||||
let src = manpageNameToManualName out <.> "m4.md"
|
let src = manpageNameToManualName out <.> "m4.md"
|
||||||
commonm4 = "doc/common.m4"
|
commonm4 = "doc/common.m4"
|
||||||
dir = takeDirectory out
|
dir = takeDirectory out
|
||||||
|
pkg = dir
|
||||||
packagemanversionm4 = dir </> ".version.m4"
|
packagemanversionm4 = dir </> ".version.m4"
|
||||||
packagemandatem4 = dir </> ".date.m4"
|
packagemandatem4 = dir </> ".date.m4"
|
||||||
tmpl = "doc/manpage.nroff"
|
tmpl = "doc/manpage.nroff"
|
||||||
mandate <- formatTime defaultTimeLocale "%B %Y" <$> liftIO getCurrentDay
|
pkgversion <- liftIO $ readFile $ dir </> ".version"
|
||||||
|
-- mandate <- formatTime defaultTimeLocale "%B %Y" <$> liftIO getCurrentDay -- XXX not using this.. compare with .date.m4
|
||||||
-- assume all other m4 files in dir are included by this one XXX not true in hledger-lib
|
-- assume all other m4 files in dir are included by this one XXX not true in hledger-lib
|
||||||
deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir </>) <$> S.getDirectoryContents dir
|
deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir </>) <$> S.getDirectoryContents dir
|
||||||
need $ [src, commonm4, packagemanversionm4, packagemandatem4, tmpl] ++ deps
|
need $ [src, commonm4, packagemanversionm4, packagemandatem4, tmpl] ++ deps
|
||||||
when (dir=="hledger") $ need commandmds
|
when (dir=="hledger") $ need commandmds
|
||||||
-- cmd_ Shell sed "-i -e" ("'s/(_monthyear_}}, *)\\{\\{[^}]+/\\1{{"++mandate++"/;'") packagem4 -- forces a rebuild, only when month has changed ?
|
|
||||||
cmd Shell
|
cmd Shell
|
||||||
"m4 -P -DMAN -I" dir commonm4 packagemanversionm4 packagemandatem4 src "|"
|
"m4 -P -DMAN -I" dir commonm4 packagemanversionm4 packagemandatem4 src "|"
|
||||||
pandoc fromsrcmd "-s" "--template" tmpl
|
pandoc fromsrcmd "-s" "--template" tmpl
|
||||||
|
("-V footer='"++pkg++"-"++pkgversion++"'")
|
||||||
"--lua-filter tools/pandoc-drop-html-blocks.lua"
|
"--lua-filter tools/pandoc-drop-html-blocks.lua"
|
||||||
"--lua-filter tools/pandoc-drop-html-inlines.lua"
|
"--lua-filter tools/pandoc-drop-html-inlines.lua"
|
||||||
"--lua-filter tools/pandoc-drop-links.lua"
|
"--lua-filter tools/pandoc-drop-links.lua"
|
||||||
@ -419,6 +421,7 @@ main = do
|
|||||||
|
|
||||||
-- Generate plain text manuals suitable for embedding in
|
-- Generate plain text manuals suitable for embedding in
|
||||||
-- executables and viewing with a pager, from the man pages.
|
-- executables and viewing with a pager, from the man pages.
|
||||||
|
-- (Depends on the nroffmanuals.)
|
||||||
phony "txtmanuals" $ need txtmanuals
|
phony "txtmanuals" $ need txtmanuals
|
||||||
txtmanuals |%> \out -> do -- hledger/hledger.txt
|
txtmanuals |%> \out -> do -- hledger/hledger.txt
|
||||||
let src = manualNameToManpageName $ dropExtension out
|
let src = manualNameToManpageName $ dropExtension out
|
||||||
@ -444,13 +447,16 @@ main = do
|
|||||||
when (dir=="hledger") $ need commandmds
|
when (dir=="hledger") $ need commandmds
|
||||||
cmd Shell
|
cmd Shell
|
||||||
"m4 -P -DINFO -I" dir commonm4 packagemanversionm4 src "|"
|
"m4 -P -DINFO -I" dir commonm4 packagemanversionm4 src "|"
|
||||||
sed "-e 's/^#(#+)/\\1/'" "|"
|
-- sed "-e 's/^#(#+)/\\1/'" "|"
|
||||||
pandoc fromsrcmd
|
pandoc fromsrcmd
|
||||||
"--lua-filter tools/pandoc-drop-html-blocks.lua"
|
"--lua-filter tools/pandoc-drop-html-blocks.lua"
|
||||||
"--lua-filter tools/pandoc-drop-html-inlines.lua"
|
"--lua-filter tools/pandoc-drop-html-inlines.lua"
|
||||||
"--lua-filter tools/pandoc-drop-links.lua"
|
"--lua-filter tools/pandoc-drop-links.lua"
|
||||||
|
-- add "standalone" headers ? sounds good for setting text encoding,
|
||||||
|
-- but messes up quotes ('a' becomes ^Xa^Y)
|
||||||
|
-- "-s"
|
||||||
"-t texinfo |"
|
"-t texinfo |"
|
||||||
makeinfo "--force --no-split -o" out
|
makeinfo "-o" out
|
||||||
|
|
||||||
|
|
||||||
-- WEBSITE MARKDOWN SOURCE
|
-- WEBSITE MARKDOWN SOURCE
|
||||||
|
|||||||
@ -13,17 +13,22 @@ m4_dnl
|
|||||||
m4_dnl Author to show in man pages.
|
m4_dnl Author to show in man pages.
|
||||||
m4_define({{_author_}}, {{}})m4_dnl
|
m4_define({{_author_}}, {{}})m4_dnl
|
||||||
m4_dnl
|
m4_dnl
|
||||||
m4_dnl Macros for conditionally including format-specific content
|
m4_dnl Macros for conditionally including or excluding content based on the format
|
||||||
m4_dnl $1 is the manual's web slug: hledger, hledger-ui, journal, csv etc.
|
m4_dnl (man, web or info).
|
||||||
m4_dnl include in man pages only
|
m4_define({{_man_}}, m4_ifdef({{MAN}},{{$1}}) )m4_dnl
|
||||||
m4_define({{_man_}}, m4_ifdef({{MAN}},{{$1}}) )m4_dnl
|
m4_define({{_notman_}}, m4_ifdef({{MAN}},,{{$1}}) )m4_dnl
|
||||||
m4_dnl include in web manuals only
|
m4_define({{_web_}}, m4_ifdef({{WEB}},{{$1}}) )m4_dnl
|
||||||
m4_define({{_web_}}, m4_ifdef({{WEB}},{{$1}}) )m4_dnl
|
m4_define({{_notweb_}}, m4_ifdef({{WEB}},,{{$1}}) )m4_dnl
|
||||||
m4_dnl include in info manuals only
|
m4_define({{_info_}}, m4_ifdef({{INFO}},{{$1}}) )m4_dnl
|
||||||
m4_define({{_info_}}, m4_ifdef({{INFO}},{{$1}}) )m4_dnl
|
m4_define({{_notinfo_}}, m4_ifdef({{INFO}},,{{$1}}) )m4_dnl
|
||||||
m4_dnl include in text manuals only - not implemented
|
|
||||||
m4_dnl m4_define({{_txt_}}, m4_ifdef({{TXT}},{{$1}}) )m4_dnl
|
|
||||||
m4_dnl
|
m4_dnl
|
||||||
|
m4_dnl A command's heading and included doc source.
|
||||||
|
m4_dnl Usage: _command_(## commandname, Markdownfilebasename)
|
||||||
|
m4_define({{_command_}},
|
||||||
|
{{$1
|
||||||
|
_include_(Hledger/Cli/Commands/$2.md)
|
||||||
|
}})m4_dnl
|
||||||
|
m4_dnl
|
||||||
m4_dnl Two side-by-side columns.
|
m4_dnl Two side-by-side columns.
|
||||||
m4_define({{_col2_}},
|
m4_define({{_col2_}},
|
||||||
{{<div class="container-fluid">
|
{{<div class="container-fluid">
|
||||||
|
|||||||
@ -2,7 +2,7 @@ $if(has-tables)$
|
|||||||
.\"t
|
.\"t
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
.TH "$title/nowrap$" "$section/nowrap$" "$date/nowrap$" "$footer/nowrap$" "hledger User Manuals"
|
.TH "$title/nowrap/uppercase$" "$section/nowrap$" "$date/nowrap$" "$footer/nowrap$" "hledger User Manuals"
|
||||||
|
|
||||||
$for(header-includes)$
|
$for(header-includes)$
|
||||||
$header-includes$
|
$header-includes$
|
||||||
@ -36,6 +36,6 @@ Copyright (C) 2007-2020 Simon Michael.
|
|||||||
Released under GNU GPL v3 or later.
|
Released under GNU GPL v3 or later.
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
hledger(1), hledger\-ui(1), hledger\-web(1),
|
hledger(1), hledger\-ui(1), hledger\-web(1), ledger(1)
|
||||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5),
|
|
||||||
ledger(1)
|
hledger_journal(5), hledger_csv(5), hledger_timeclock(5), hledger_timedot(5)
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger_csv(5) hledger _version_
|
% hledger_csv(5)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -6,7 +6,11 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
CSV - how hledger reads CSV data, and the CSV rules file format
|
m4_dnl _info_({{
|
||||||
|
m4_dnl # hledger csv format
|
||||||
|
m4_dnl }})
|
||||||
|
|
||||||
|
How hledger reads CSV data, and the CSV rules file format.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger_journal(5) hledger _version_
|
% hledger_journal(5)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -6,7 +6,11 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
Journal - hledger's default file format, representing a General Journal
|
m4_dnl _info_({{
|
||||||
|
m4_dnl # hledger journal format
|
||||||
|
m4_dnl }})
|
||||||
|
|
||||||
|
hledger's default file format, representing a General Journal.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
@ -72,10 +76,6 @@ Here's an example:
|
|||||||
```
|
```
|
||||||
-->
|
-->
|
||||||
|
|
||||||
_man_({{
|
|
||||||
# FILE FORMAT
|
|
||||||
}})
|
|
||||||
|
|
||||||
Here's a description of each part of the file format
|
Here's a description of each part of the file format
|
||||||
(and hledger's data model).
|
(and hledger's data model).
|
||||||
These are mostly in the order you'll use them, but in some cases
|
These are mostly in the order you'll use them, but in some cases
|
||||||
@ -83,7 +83,7 @@ related concepts have been grouped together for easy reference,
|
|||||||
or linked before they are introduced,
|
or linked before they are introduced,
|
||||||
so feel free to skip over anything that looks unnecessary right now.
|
so feel free to skip over anything that looks unnecessary right now.
|
||||||
|
|
||||||
## Transactions
|
# TRANSACTIONS
|
||||||
|
|
||||||
Transactions are the main unit of information in a journal file.
|
Transactions are the main unit of information in a journal file.
|
||||||
They represent events, typically a movement of some quantity of
|
They represent events, typically a movement of some quantity of
|
||||||
@ -109,9 +109,9 @@ Here's a simple journal file containing one transaction:
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Dates
|
# DATES
|
||||||
|
|
||||||
### Simple dates
|
## Simple dates
|
||||||
|
|
||||||
Dates in the journal file use *simple dates* format:
|
Dates in the journal file use *simple dates* format:
|
||||||
`YYYY-MM-DD` or `YYYY/MM/DD` or `YYYY.MM.DD`, with leading zeros optional.
|
`YYYY-MM-DD` or `YYYY/MM/DD` or `YYYY.MM.DD`, with leading zeros optional.
|
||||||
@ -123,7 +123,7 @@ Some examples: `2010-01-31`, `2010/01/31`, `2010.1.31`, `1/31`.
|
|||||||
(The UI also accepts simple dates, as well as the more flexible [smart
|
(The UI also accepts simple dates, as well as the more flexible [smart
|
||||||
dates](hledger.html#smart-dates) documented in the hledger manual.)
|
dates](hledger.html#smart-dates) documented in the hledger manual.)
|
||||||
|
|
||||||
### Secondary dates
|
## Secondary dates
|
||||||
|
|
||||||
Real-life transactions sometimes involve more than one date - eg the date
|
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 want to
|
you write a cheque, and the date it clears in your bank. When you want to
|
||||||
@ -161,7 +161,7 @@ $ hledger register checking --date2
|
|||||||
2010-02-19 movie ticket assets:checking $-10 $-10
|
2010-02-19 movie ticket assets:checking $-10 $-10
|
||||||
```
|
```
|
||||||
|
|
||||||
### 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](#comments) containing a
|
transaction, by adding a [posting comment](#comments) containing a
|
||||||
@ -198,7 +198,7 @@ attempt to parse any square-bracketed sequence of the `0123456789/-.=`
|
|||||||
characters in this way. With this syntax, DATE infers its year from
|
characters in this way. With this syntax, DATE infers its year from
|
||||||
the transaction and DATE2 infers its year from DATE.
|
the transaction and DATE2 infers its year from DATE.
|
||||||
|
|
||||||
## Status
|
# STATUS
|
||||||
|
|
||||||
Transactions, or individual postings within a transaction,
|
Transactions, or individual postings within a transaction,
|
||||||
can have a status mark, which is a single character before
|
can have a status mark, which is a single character before
|
||||||
@ -239,20 +239,20 @@ With this scheme, you would use
|
|||||||
`-U` to see things which will probably hit your bank soon (like uncashed checks),
|
`-U` to see things which will probably hit your bank soon (like uncashed checks),
|
||||||
and no flags to see the most up-to-date state of your finances.
|
and no flags to see the most up-to-date state of your finances.
|
||||||
|
|
||||||
## Description
|
# DESCRIPTION
|
||||||
|
|
||||||
A transaction's description is the rest of the line following the date and status mark (or until a comment begins).
|
A transaction's description is the rest of the line following the date and status mark (or until a comment begins).
|
||||||
Sometimes called the "narration" in traditional bookkeeping, it can be used for whatever you wish,
|
Sometimes called the "narration" in traditional bookkeeping, it can be used for whatever you wish,
|
||||||
or left blank. Transaction descriptions can be queried, unlike [comments](#comments).
|
or left blank. Transaction descriptions can be queried, unlike [comments](#comments).
|
||||||
|
|
||||||
### Payee and note
|
## Payee and note
|
||||||
|
|
||||||
You can optionally include a `|` (pipe) character in descriptions to subdivide the description
|
You can optionally include a `|` (pipe) character in descriptions to subdivide the description
|
||||||
into separate fields for payee/payer name on the left (up to the first `|`) and an additional note
|
into separate fields for payee/payer name on the left (up to the first `|`) and an additional note
|
||||||
field on the right (after the first `|`). This may be worthwhile if you need to do more precise
|
field on the right (after the first `|`). This may be worthwhile if you need to do more precise
|
||||||
[querying](hledger.html#queries) and [pivoting](hledger.html#pivoting) by payee or by note.
|
[querying](hledger.html#queries) and [pivoting](hledger.html#pivoting) by payee or by note.
|
||||||
|
|
||||||
## Comments
|
# COMMENTS
|
||||||
|
|
||||||
Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
|
Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
|
||||||
star (`*`) are comments, and will be ignored. (Star comments cause
|
star (`*`) are comments, and will be ignored. (Star comments cause
|
||||||
@ -291,7 +291,7 @@ end comment
|
|||||||
You can also comment larger regions of a file using [`comment` and `end comment` directives](#comment-blocks).
|
You can also comment larger regions of a file using [`comment` and `end comment` directives](#comment-blocks).
|
||||||
|
|
||||||
|
|
||||||
## Tags
|
# TAGS
|
||||||
|
|
||||||
Tags are a way to add extra labels or labelled data to postings and transactions,
|
Tags are a way to add extra labels or labelled data to postings and transactions,
|
||||||
which you can then [search](hledger.html#queries) or [pivot](hledger.html#pivoting) on.
|
which you can then [search](hledger.html#queries) or [pivot](hledger.html#pivoting) on.
|
||||||
@ -333,7 +333,7 @@ Tags are like Ledger's
|
|||||||
[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata)
|
[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata)
|
||||||
feature, except hledger's tag values are simple strings.
|
feature, except hledger's tag values are simple strings.
|
||||||
|
|
||||||
## Postings
|
# POSTINGS
|
||||||
|
|
||||||
A posting is an addition of some amount to, or removal of some amount from, an account.
|
A posting is an addition of some amount to, or removal of some amount from, an account.
|
||||||
Each posting line begins with at least one space or tab (2 or 4 spaces is common), followed by:
|
Each posting line begins with at least one space or tab (2 or 4 spaces is common), followed by:
|
||||||
@ -351,7 +351,7 @@ Be sure to note the unusual two-space delimiter between account name and amount.
|
|||||||
This makes it easy to write account names containing spaces.
|
This makes it easy to write account names containing spaces.
|
||||||
But if you accidentally leave only one space (or tab) before the amount, the amount will be considered part of the account name.
|
But if you accidentally leave only one space (or tab) before the amount, the amount will be considered part of the account name.
|
||||||
|
|
||||||
### Virtual postings
|
## Virtual postings
|
||||||
|
|
||||||
A posting with a parenthesised account name is called a *virtual posting*
|
A posting with a parenthesised account name is called a *virtual posting*
|
||||||
or *unbalanced posting*, which means it is exempt from the usual rule
|
or *unbalanced posting*, which means it is exempt from the usual rule
|
||||||
@ -386,7 +386,7 @@ Ordinary non-parenthesised, non-bracketed postings are called *real postings*.
|
|||||||
You can exclude virtual postings from reports with the `-R/--real`
|
You can exclude virtual postings from reports with the `-R/--real`
|
||||||
flag or `real:1` query.
|
flag or `real:1` query.
|
||||||
|
|
||||||
## Account names
|
# ACCOUNT NAMES
|
||||||
|
|
||||||
Account names typically have several parts separated by a full colon, from
|
Account names typically have several parts separated by a full colon, from
|
||||||
which hledger derives a hierarchical chart of accounts. They can be
|
which hledger derives a hierarchical chart of accounts. They can be
|
||||||
@ -398,7 +398,7 @@ Because of this, they must always be followed by **two or more spaces** (or newl
|
|||||||
|
|
||||||
Account names can be [aliased](#rewriting-accounts).
|
Account names can be [aliased](#rewriting-accounts).
|
||||||
|
|
||||||
## Amounts
|
# AMOUNTS
|
||||||
|
|
||||||
After the account name, there is usually an amount.
|
After the account name, there is usually an amount.
|
||||||
(Important: between account name and amount, there must be **two or more spaces**.)
|
(Important: between account name and amount, there must be **two or more spaces**.)
|
||||||
@ -443,7 +443,7 @@ A decimal mark can be written as a period or a comma:
|
|||||||
1.23
|
1.23
|
||||||
1,23456780000009
|
1,23456780000009
|
||||||
|
|
||||||
### Digit group marks
|
## Digit group marks
|
||||||
|
|
||||||
In the integer part of the quantity (left of the decimal mark), groups
|
In the integer part of the quantity (left of the decimal mark), groups
|
||||||
of digits can optionally be separated by a "digit group mark" - a
|
of digits can optionally be separated by a "digit group mark" - a
|
||||||
@ -479,7 +479,7 @@ commodity 1 000 000.9455
|
|||||||
|
|
||||||
<a name="amount-display-style"></a>
|
<a name="amount-display-style"></a>
|
||||||
|
|
||||||
### Commodity display style
|
## Commodity display style
|
||||||
|
|
||||||
For each commodity, hledger chooses a consistent style to use when
|
For each commodity, hledger chooses a consistent style to use when
|
||||||
displaying amounts. (Except [price amounts](#prices), which are always
|
displaying amounts. (Except [price amounts](#prices), which are always
|
||||||
@ -515,7 +515,7 @@ In summary, each commodity's amounts will be normalised to
|
|||||||
If reports are showing amounts in a way you don't like (eg, with too many decimal places),
|
If reports are showing amounts in a way you don't like (eg, with too many decimal places),
|
||||||
use a [commodity directive](#declaring-commodities) to set your preferred style.
|
use a [commodity directive](#declaring-commodities) to set your preferred style.
|
||||||
|
|
||||||
### Rounding
|
## Rounding
|
||||||
|
|
||||||
Amounts are stored internally as decimal numbers with up to 255 decimal places,
|
Amounts are stored internally as decimal numbers with up to 255 decimal places,
|
||||||
and displayed with the number of decimal places specified by the commodity display style.
|
and displayed with the number of decimal places specified by the commodity display style.
|
||||||
@ -524,7 +524,7 @@ it rounds to the nearest even number, eg 0.5 displayed with zero decimal places
|
|||||||
(Guaranteed since hledger 1.17.1; in older versions this could vary if hledger was built with Decimal < 0.5.1.)
|
(Guaranteed since hledger 1.17.1; in older versions this could vary if hledger was built with Decimal < 0.5.1.)
|
||||||
|
|
||||||
|
|
||||||
## Transaction prices
|
# TRANSACTION PRICES
|
||||||
|
|
||||||
Within a transaction, you can note an amount's price in another commodity.
|
Within a transaction, you can note an amount's price in another commodity.
|
||||||
This can be used to document the cost (in a purchase) or selling price (in a sale).
|
This can be used to document the cost (in a purchase) or selling price (in a sale).
|
||||||
@ -597,7 +597,7 @@ $ hledger bal -N --flat -B
|
|||||||
€100 assets:euros
|
€100 assets:euros
|
||||||
```
|
```
|
||||||
|
|
||||||
## Lot prices and lot dates
|
# LOT PRICES, LOT DATES
|
||||||
|
|
||||||
Ledger allows another kind of price,
|
Ledger allows another kind of price,
|
||||||
[lot price](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
|
[lot price](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
|
||||||
@ -608,7 +608,7 @@ hledger will parse these, for compatibility with Ledger journals, but currently
|
|||||||
A [transaction price](#transaction-prices), lot price and/or lot date may appear in any order,
|
A [transaction price](#transaction-prices), lot price and/or lot date may appear in any order,
|
||||||
after the posting amount and before the balance assertion if any.
|
after the posting amount and before the balance assertion if any.
|
||||||
|
|
||||||
## Balance assertions
|
# BALANCE ASSERTIONS
|
||||||
|
|
||||||
hledger supports
|
hledger supports
|
||||||
[Ledger-style balance assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
|
[Ledger-style balance assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
|
||||||
@ -635,7 +635,7 @@ the `-I/--ignore-assertions` flag, which can be useful for
|
|||||||
troubleshooting or for reading Ledger files.
|
troubleshooting or for reading Ledger files.
|
||||||
(Note: this flag currently does not disable balance assignments, below).
|
(Note: this flag currently does not disable balance assignments, below).
|
||||||
|
|
||||||
### Assertions and ordering
|
## Assertions and ordering
|
||||||
|
|
||||||
hledger sorts an account's postings and assertions first by date and
|
hledger sorts an account's postings and assertions first by date and
|
||||||
then (for postings on the same day) by parse order. Note this is
|
then (for postings on the same day) by parse order. Note this is
|
||||||
@ -650,7 +650,7 @@ updating. This order dependence does bring an advantage: precise
|
|||||||
control over the order of postings and assertions within a day, so you
|
control over the order of postings and assertions within a day, so you
|
||||||
can assert intra-day balances.
|
can assert intra-day balances.
|
||||||
|
|
||||||
### Assertions and included files
|
## Assertions and included files
|
||||||
|
|
||||||
With [included files](#including-other-files), things are a little
|
With [included files](#including-other-files), things are a little
|
||||||
more complicated. Including preserves the ordering of postings and
|
more complicated. Including preserves the ordering of postings and
|
||||||
@ -659,13 +659,13 @@ day, split across different files, and you also want to assert the
|
|||||||
account's balance on the same day, you'll have to put the assertion
|
account's balance on the same day, you'll have to put the assertion
|
||||||
in the right file.
|
in the right file.
|
||||||
|
|
||||||
### Assertions and multiple -f options
|
## Assertions and multiple -f options
|
||||||
|
|
||||||
Balance assertions don't work well across files specified
|
Balance assertions don't work well across files specified
|
||||||
with multiple -f options. Use include or [concatenate the files](hledger.html#input-files)
|
with multiple -f options. Use include or [concatenate the files](hledger.html#input-files)
|
||||||
instead.
|
instead.
|
||||||
|
|
||||||
### Assertions and commodities
|
## Assertions and commodities
|
||||||
|
|
||||||
The asserted balance must be a simple single-commodity amount, and in
|
The asserted balance must be a simple single-commodity amount, and in
|
||||||
fact the assertion checks only this commodity's balance within the
|
fact the assertion checks only this commodity's balance within the
|
||||||
@ -713,7 +713,7 @@ One workaround is to isolate each commodity into its own subaccount:
|
|||||||
a:euro 0 == 1€
|
a:euro 0 == 1€
|
||||||
```
|
```
|
||||||
|
|
||||||
### Assertions and prices
|
## Assertions and prices
|
||||||
|
|
||||||
Balance assertions ignore [transaction prices](#transaction-prices),
|
Balance assertions ignore [transaction prices](#transaction-prices),
|
||||||
and should normally be written without one:
|
and should normally be written without one:
|
||||||
@ -728,7 +728,7 @@ even though they don't affect whether the assertion passes or fails.
|
|||||||
This is for backward compatibility (hledger's [close](hledger.html#close) command used to generate balance assertions with prices),
|
This is for backward compatibility (hledger's [close](hledger.html#close) command used to generate balance assertions with prices),
|
||||||
and because [balance *assignments*](#balance-assignments) do use them (see below).
|
and because [balance *assignments*](#balance-assignments) do use them (see below).
|
||||||
|
|
||||||
### Assertions and subaccounts
|
## Assertions and subaccounts
|
||||||
|
|
||||||
The balance assertions above (`=` and `==`) do not count the balance
|
The balance assertions above (`=` and `==`) do not count the balance
|
||||||
from subaccounts; they check the account's exclusive balance only.
|
from subaccounts; they check the account's exclusive balance only.
|
||||||
@ -742,13 +742,13 @@ You can assert the balance including subaccounts by writing `=*` or `==*`, eg:
|
|||||||
checking 1 ==* 11
|
checking 1 ==* 11
|
||||||
```
|
```
|
||||||
|
|
||||||
### Assertions and virtual postings
|
## Assertions and virtual postings
|
||||||
|
|
||||||
Balance assertions are checked against all postings, both real and
|
Balance assertions are checked against all postings, both real and
|
||||||
[virtual](#virtual-postings). They are not affected by the `--real/-R`
|
[virtual](#virtual-postings). They are not affected by the `--real/-R`
|
||||||
flag or `real:` query.
|
flag or `real:` query.
|
||||||
|
|
||||||
### Assertions and precision
|
## Assertions and precision
|
||||||
|
|
||||||
Balance assertions compare the exactly calculated amounts,
|
Balance assertions compare the exactly calculated amounts,
|
||||||
which are not always what is shown by reports.
|
which are not always what is shown by reports.
|
||||||
@ -756,7 +756,7 @@ Eg a [commodity directive](http://hledger.org/journal.html#declaring-commodities
|
|||||||
may limit the display precision, but this will not affect balance assertions.
|
may limit the display precision, but this will not affect balance assertions.
|
||||||
Balance assertion failure messages show exact amounts.
|
Balance assertion failure messages show exact amounts.
|
||||||
|
|
||||||
## Balance assignments
|
# BALANCE ASSIGNMENTS
|
||||||
|
|
||||||
[Ledger-style balance assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments) are also supported.
|
[Ledger-style balance assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments) are also supported.
|
||||||
These are like [balance assertions](#balance-assertions), but with no posting amount on the left side of the equals sign;
|
These are like [balance assertions](#balance-assertions), but with no posting amount on the left side of the equals sign;
|
||||||
@ -785,7 +785,7 @@ Note that using balance assignments makes your journal a little less explicit;
|
|||||||
to know the exact amount posted, you have to run hledger or do the calculations yourself,
|
to know the exact amount posted, you have to run hledger or do the calculations yourself,
|
||||||
instead of just reading it.
|
instead of just reading it.
|
||||||
|
|
||||||
### Balance assignments and prices
|
## Balance assignments and prices
|
||||||
|
|
||||||
A [transaction price](#transaction-prices) in a balance assignment
|
A [transaction price](#transaction-prices) in a balance assignment
|
||||||
will cause the calculated amount to have that price attached:
|
will cause the calculated amount to have that price attached:
|
||||||
@ -800,7 +800,7 @@ $ hledger print --explicit
|
|||||||
(a) $1 @ €2 = $1 @ €2
|
(a) $1 @ €2 = $1 @ €2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Directives
|
# DIRECTIVES
|
||||||
|
|
||||||
A directive is a line in the journal beginning with a special keyword,
|
A directive is a line in the journal beginning with a special keyword,
|
||||||
that influences how the journal is processed.
|
that influences how the journal is processed.
|
||||||
@ -863,7 +863,7 @@ As you can see, directives vary in which journal entries and files they affect,
|
|||||||
and whether they are focussed on input (parsing) or output (reports).
|
and whether they are focussed on input (parsing) or output (reports).
|
||||||
Some directives have multiple effects.
|
Some directives have multiple effects.
|
||||||
|
|
||||||
### Directives and multiple files
|
## Directives and multiple files
|
||||||
|
|
||||||
If you use multiple `-f`/`--file` options, or the `include` directive,
|
If you use multiple `-f`/`--file` options, or the `include` directive,
|
||||||
hledger will process multiple input files. But note that directives
|
hledger will process multiple input files. But note that directives
|
||||||
@ -880,13 +880,13 @@ It can be surprising though; for example, it means that
|
|||||||
[`alias` directives do not affect parent or sibling files](#aliases-and-multiple-files)
|
[`alias` directives do not affect parent or sibling files](#aliases-and-multiple-files)
|
||||||
(see below).
|
(see below).
|
||||||
|
|
||||||
### Comment blocks
|
## Comment blocks
|
||||||
|
|
||||||
A line containing just `comment` starts a commented region of the file,
|
A line containing just `comment` starts a commented region of the file,
|
||||||
and a line containing just `end comment` (or the end of the current file) ends it.
|
and a line containing just `end comment` (or the end of the current file) ends it.
|
||||||
See also [comments](#comments).
|
See also [comments](#comments).
|
||||||
|
|
||||||
### Including other files
|
## Including other files
|
||||||
|
|
||||||
You can pull in the content of additional files by writing an include directive, like this:
|
You can pull in the content of additional files by writing an include directive, like this:
|
||||||
|
|
||||||
@ -914,7 +914,7 @@ overriding the file extension (as described in
|
|||||||
|
|
||||||
[glob patterns]: https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile
|
[glob patterns]: https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile
|
||||||
|
|
||||||
### 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
|
||||||
specify a year. This is a line beginning with `Y` followed by the year. Eg:
|
specify a year. This is a line beginning with `Y` followed by the year. Eg:
|
||||||
@ -937,7 +937,7 @@ Y2010 ; change default year to 2010
|
|||||||
assets
|
assets
|
||||||
```
|
```
|
||||||
|
|
||||||
### Declaring commodities
|
## Declaring commodities
|
||||||
|
|
||||||
The `commodity` directive has several functions:
|
The `commodity` directive has several functions:
|
||||||
|
|
||||||
@ -992,12 +992,12 @@ Note hledger normally uses
|
|||||||
so 0.5 displayed with zero decimal digits is "0".
|
so 0.5 displayed with zero decimal digits is "0".
|
||||||
(More at [Commodity display style](#commodity-display-style).)
|
(More at [Commodity display style](#commodity-display-style).)
|
||||||
|
|
||||||
#### Commodity error checking
|
### Commodity error checking
|
||||||
|
|
||||||
In [strict mode], enabled with the `-s`/`--strict` flag, hledger will report an error if a
|
In [strict mode], enabled with the `-s`/`--strict` flag, hledger will report an error if a
|
||||||
commodity symbol is used that has not been declared by a [`commodity` directive](#declaring-commodities). This works similarly to [account error checking](#account-error-checking), see the notes there for more details.
|
commodity symbol is used that has not been declared by a [`commodity` directive](#declaring-commodities). This works similarly to [account error checking](#account-error-checking), see the notes there for more details.
|
||||||
|
|
||||||
### Default commodity
|
## Default commodity
|
||||||
|
|
||||||
The `D` directive sets a default commodity, to be used for amounts without a commodity symbol (ie, plain numbers).
|
The `D` directive sets a default commodity, to be used for amounts without a commodity symbol (ie, plain numbers).
|
||||||
This commodity will be applied to all subsequent commodity-less amounts, or until the next `D` directive.
|
This commodity will be applied to all subsequent commodity-less amounts, or until the next `D` directive.
|
||||||
@ -1019,7 +1019,7 @@ D $1,000.00
|
|||||||
b
|
b
|
||||||
```
|
```
|
||||||
|
|
||||||
### Declaring market prices
|
## Declaring market prices
|
||||||
|
|
||||||
The `P` directive declares a market price, which is
|
The `P` directive declares a market price, which is
|
||||||
an exchange rate between two commodities on a certain date.
|
an exchange rate between two commodities on a certain date.
|
||||||
@ -1049,7 +1049,7 @@ P 2010/1/1 € $1.40
|
|||||||
The `-V`, `-X` and `--value` flags use these market prices to show amount values
|
The `-V`, `-X` and `--value` flags use these market prices to show amount values
|
||||||
in another commodity. See [Valuation](hledger.html#valuation).
|
in another commodity. See [Valuation](hledger.html#valuation).
|
||||||
|
|
||||||
### Declaring accounts
|
## Declaring accounts
|
||||||
|
|
||||||
`account` directives can be used to declare accounts
|
`account` directives can be used to declare accounts
|
||||||
(ie, the places that amounts are transferred from and to).
|
(ie, the places that amounts are transferred from and to).
|
||||||
@ -1075,7 +1075,7 @@ The simplest form is just the word `account` followed by a hledger-style
|
|||||||
account assets:bank:checking
|
account assets:bank:checking
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Account error checking
|
### Account error checking
|
||||||
|
|
||||||
By default, accounts come into existence when a transaction references them by name.
|
By default, accounts come into existence when a transaction references them by name.
|
||||||
This is convenient, but it means hledger can't warn you when you mis-spell an account name in the journal.
|
This is convenient, but it means hledger can't warn you when you mis-spell an account name in the journal.
|
||||||
@ -1089,7 +1089,7 @@ In [strict mode], enabled with the `-s`/`--strict` flag, hledger will report an
|
|||||||
- Accounts can only be declared in `journal` files (but will affect included files in other formats).
|
- Accounts can only be declared in `journal` files (but will affect included files in other formats).
|
||||||
- It's currently not possible to declare "all possible subaccounts" with a wildcard; every account posted to must be declared.
|
- It's currently not possible to declare "all possible subaccounts" with a wildcard; every account posted to must be declared.
|
||||||
|
|
||||||
#### Account comments
|
### Account comments
|
||||||
|
|
||||||
[Comments](#comments), beginning with a semicolon, can be added:
|
[Comments](#comments), beginning with a semicolon, can be added:
|
||||||
|
|
||||||
@ -1108,7 +1108,7 @@ Same-line comments are not supported by Ledger, or hledger <1.13.
|
|||||||
|
|
||||||
<!-- Account comments may include [tags](journal.html#tags), though we don't yet use them for anything. -->
|
<!-- Account comments may include [tags](journal.html#tags), though we don't yet use them for anything. -->
|
||||||
|
|
||||||
#### Account subdirectives
|
### Account subdirectives
|
||||||
|
|
||||||
We also allow (and ignore) Ledger-style indented subdirectives, just for compatibility.:
|
We also allow (and ignore) Ledger-style indented subdirectives, just for compatibility.:
|
||||||
```journal
|
```journal
|
||||||
@ -1123,7 +1123,7 @@ account ACCTNAME [ACCTTYPE] [;COMMENT]
|
|||||||
[LEDGER-STYLE SUBDIRECTIVES, IGNORED]
|
[LEDGER-STYLE SUBDIRECTIVES, IGNORED]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Account types
|
### Account types
|
||||||
|
|
||||||
hledger recognises five main types of account,
|
hledger recognises five main types of account,
|
||||||
corresponding to the account classes in the [accounting equation][]:
|
corresponding to the account classes in the [accounting equation][]:
|
||||||
@ -1139,7 +1139,7 @@ and which causes accounts to appear in the [cashflow][] report.
|
|||||||
("Cash" here means [liquid assets][CCE], eg bank balances
|
("Cash" here means [liquid assets][CCE], eg bank balances
|
||||||
but typically not investments or receivables.)
|
but typically not investments or receivables.)
|
||||||
|
|
||||||
##### Declaring account types
|
#### Declaring account types
|
||||||
|
|
||||||
Generally, to make these reports work you should declare your
|
Generally, to make these reports work you should declare your
|
||||||
top-level accounts and their types,
|
top-level accounts and their types,
|
||||||
@ -1162,7 +1162,7 @@ account revenues ; type: Revenue
|
|||||||
account expenses ; type: Expense
|
account expenses ; type: Expense
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Auto-detected account types
|
#### Auto-detected account types
|
||||||
|
|
||||||
If you happen to use common english top-level account names, you may
|
If you happen to use common english top-level account names, you may
|
||||||
not need to declare account types, as they will be detected
|
not need to declare account types, as they will be detected
|
||||||
@ -1183,7 +1183,7 @@ automatically using the following rules:
|
|||||||
Even so, explicit declarations may be a good idea, for clarity and
|
Even so, explicit declarations may be a good idea, for clarity and
|
||||||
predictability.
|
predictability.
|
||||||
|
|
||||||
##### Interference from auto-detected account types
|
#### Interference from auto-detected account types
|
||||||
|
|
||||||
If you assign any account type, it's a good idea to assign all of
|
If you assign any account type, it's a good idea to assign all of
|
||||||
them, to prevent any confusion from mixing declared and auto-detected
|
them, to prevent any confusion from mixing declared and auto-detected
|
||||||
@ -1201,7 +1201,7 @@ account liabilities ; type:Equity
|
|||||||
equity -2
|
equity -2
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Old account type syntax
|
#### Old account type syntax
|
||||||
|
|
||||||
In some hledger journals you might instead see this old syntax (the
|
In some hledger journals you might instead see this old syntax (the
|
||||||
letters ALERX, separated from the account name by two or more spaces);
|
letters ALERX, separated from the account name by two or more spaces);
|
||||||
@ -1225,7 +1225,7 @@ account expenses X
|
|||||||
[accounting equation]: https://en.wikipedia.org/wiki/Accounting_equation
|
[accounting equation]: https://en.wikipedia.org/wiki/Accounting_equation
|
||||||
|
|
||||||
|
|
||||||
#### Account display order
|
### Account display order
|
||||||
|
|
||||||
Account directives also set the order in which accounts are displayed,
|
Account directives also set the order in which accounts are displayed,
|
||||||
eg in reports, the hledger-ui accounts screen, and the hledger-web sidebar.
|
eg in reports, the hledger-ui accounts screen, and the hledger-web sidebar.
|
||||||
@ -1262,7 +1262,7 @@ This means:
|
|||||||
- you will sometimes declare parent accounts (eg `account other` above) that you don't intend to post to, just to customize their display order
|
- you will sometimes declare parent accounts (eg `account other` above) that you don't intend to post to, just to customize their display order
|
||||||
- sibling accounts stay together (you couldn't display `x:y` in between `a:b` and `a:c`).
|
- sibling accounts stay together (you couldn't display `x:y` in between `a:b` and `a:c`).
|
||||||
|
|
||||||
### Rewriting accounts
|
## Rewriting accounts
|
||||||
|
|
||||||
You can define account alias rules which rewrite your account names, or parts of them,
|
You can define account alias rules which rewrite your account names, or parts of them,
|
||||||
before generating reports.
|
before generating reports.
|
||||||
@ -1278,7 +1278,7 @@ They do not affect account names being entered via hledger add or hledger-web.
|
|||||||
|
|
||||||
See also [Rewrite account names](rewrite-account-names.html).
|
See also [Rewrite account names](rewrite-account-names.html).
|
||||||
|
|
||||||
#### Basic aliases
|
### Basic aliases
|
||||||
|
|
||||||
To set an account alias, use the `alias` directive in your journal file.
|
To set an account alias, use the `alias` directive in your journal file.
|
||||||
This affects all subsequent journal entries in the current file or its
|
This affects all subsequent journal entries in the current file or its
|
||||||
@ -1301,7 +1301,7 @@ 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"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Regex aliases
|
### Regex aliases
|
||||||
|
|
||||||
There is also a more powerful variant that uses a regular expression,
|
There is also a more powerful variant that uses a regular expression,
|
||||||
indicated by the forward slashes:
|
indicated by the forward slashes:
|
||||||
@ -1328,7 +1328,7 @@ alias /^(.+):bank:([^:]+):(.*)/ = \1:\2 \3
|
|||||||
Also note that REPLACEMENT continues to the end of line (or on command line,
|
Also note that REPLACEMENT continues to the end of line (or on command line,
|
||||||
to end of option argument), so it can contain trailing whitespace.
|
to end of option argument), so it can contain trailing whitespace.
|
||||||
|
|
||||||
#### Combining aliases
|
### Combining aliases
|
||||||
|
|
||||||
You can define as many aliases as you like, using journal directives and/or command line options.
|
You can define as many aliases as you like, using journal directives and/or command line options.
|
||||||
|
|
||||||
@ -1353,7 +1353,7 @@ independent of which files are being read and in which order.
|
|||||||
|
|
||||||
In case of trouble, adding `--debug=6` to the command line will show which aliases are being applied when.
|
In case of trouble, adding `--debug=6` to the command line will show which aliases are being applied when.
|
||||||
|
|
||||||
#### Aliases and multiple files
|
### Aliases and multiple files
|
||||||
|
|
||||||
As explained at [Directives and multiple files](#directives-and-multiple-files),
|
As explained at [Directives and multiple files](#directives-and-multiple-files),
|
||||||
`alias` directives do not affect parent or sibling files. Eg in this command,
|
`alias` directives do not affect parent or sibling files. Eg in this command,
|
||||||
@ -1382,7 +1382,7 @@ alias bar=Bar
|
|||||||
include c.journal ; also affected
|
include c.journal ; also affected
|
||||||
```
|
```
|
||||||
|
|
||||||
#### `end aliases`
|
### `end aliases`
|
||||||
|
|
||||||
You can clear (forget) all currently defined aliases with the `end
|
You can clear (forget) all currently defined aliases with the `end
|
||||||
aliases` directive:
|
aliases` directive:
|
||||||
@ -1391,7 +1391,7 @@ aliases` directive:
|
|||||||
end aliases
|
end aliases
|
||||||
```
|
```
|
||||||
|
|
||||||
### Default parent account
|
## Default parent account
|
||||||
|
|
||||||
You can specify a parent account which will be prepended to all accounts
|
You can specify a parent account which will be prepended to all accounts
|
||||||
within a section of the journal. Use the `apply account` and `end apply account`
|
within a section of the journal. Use the `apply account` and `end apply account`
|
||||||
@ -1430,7 +1430,7 @@ A default parent account also affects [account directives](#declaring-accounts).
|
|||||||
It does not affect account names being entered via hledger add or hledger-web.
|
It does not affect account names being entered via hledger add or hledger-web.
|
||||||
If account aliases are present, they are applied after the default parent account.
|
If account aliases are present, they are applied after the default parent account.
|
||||||
|
|
||||||
## Periodic transactions
|
# PERIODIC TRANSACTIONS
|
||||||
|
|
||||||
Periodic transaction rules describe transactions that recur.
|
Periodic transaction rules describe transactions that recur.
|
||||||
They allow hledger to generate temporary future transactions to help with forecasting,
|
They allow hledger to generate temporary future transactions to help with forecasting,
|
||||||
@ -1457,7 +1457,7 @@ Periodic transaction rules also have a second meaning:
|
|||||||
they are used to define budget goals, shown in [budget reports](hledger.html#budget-report).
|
they are used to define budget goals, shown in [budget reports](hledger.html#budget-report).
|
||||||
|
|
||||||
|
|
||||||
### Periodic rule syntax
|
## Periodic rule syntax
|
||||||
|
|
||||||
A periodic transaction rule looks like a normal journal entry,
|
A periodic transaction rule looks like a normal journal entry,
|
||||||
with the date replaced by a tilde (`~`) followed by a
|
with the date replaced by a tilde (`~`) followed by a
|
||||||
@ -1476,7 +1476,7 @@ Partial or relative dates (M/D, D, tomorrow, last week) in the period expression
|
|||||||
can work (useful or not). They will be relative to today's date, unless
|
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 will be relative to Y/1/1.
|
a Y default year directive is in effect, in which case they will be relative to Y/1/1.
|
||||||
|
|
||||||
### Two spaces between period expression and description!
|
## 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**.
|
these must be separated by **two or more spaces**.
|
||||||
@ -1497,7 +1497,7 @@ So,
|
|||||||
- Do write two spaces between your period expression and your transaction description, if any.
|
- 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.
|
- Don't accidentally write two spaces in the middle of your period expression.
|
||||||
|
|
||||||
### Forecasting with periodic transactions
|
## Forecasting with periodic transactions
|
||||||
|
|
||||||
The `--forecast` flag activates any periodic transaction rules in the journal.
|
The `--forecast` flag activates any periodic transaction rules in the journal.
|
||||||
They will generate temporary recurring transactions,
|
They will generate temporary recurring transactions,
|
||||||
@ -1544,7 +1544,7 @@ like in a [`date:` query](hledger.html#queries).
|
|||||||
(See also hledger.1 -> [Report start & end date](hledger.html#report-start-end-date)).
|
(See also hledger.1 -> [Report start & end date](hledger.html#report-start-end-date)).
|
||||||
Some examples: `--forecast=202001-202004`, `--forecast=jan-`, `--forecast=2020`.
|
Some examples: `--forecast=202001-202004`, `--forecast=jan-`, `--forecast=2020`.
|
||||||
|
|
||||||
### Budgeting with periodic transactions
|
## Budgeting with periodic transactions
|
||||||
|
|
||||||
With the `--budget` flag, currently supported by the balance command,
|
With the `--budget` flag, currently supported by the balance command,
|
||||||
each periodic transaction rule declares recurring budget goals for the specified accounts.
|
each periodic transaction rule declares recurring budget goals for the specified accounts.
|
||||||
@ -1558,7 +1558,7 @@ See also: [Budgeting and Forecasting](budgeting-and-forecasting.html).
|
|||||||
<a name="automated-postings"></a>
|
<a name="automated-postings"></a>
|
||||||
<a name="auto-postings"></a>
|
<a name="auto-postings"></a>
|
||||||
|
|
||||||
## Auto postings
|
# AUTO POSTINGS
|
||||||
|
|
||||||
"Automated postings" or "auto postings" are extra postings which get
|
"Automated postings" or "auto postings" are extra postings which get
|
||||||
added automatically to transactions which match certain queries,
|
added automatically to transactions which match certain queries,
|
||||||
@ -1626,20 +1626,20 @@ $ hledger print --auto
|
|||||||
assets:checking $20
|
assets:checking $20
|
||||||
```
|
```
|
||||||
|
|
||||||
### Auto postings and multiple files
|
## Auto postings and multiple files
|
||||||
|
|
||||||
An auto posting rule can affect any transaction in the current file,
|
An auto posting rule can affect any transaction in the current file,
|
||||||
or in any parent file or child file. Note, currently it will not
|
or in any parent file or child file. Note, currently it will not
|
||||||
affect sibling files (when multiple `-f`/`--file` are used - see
|
affect sibling files (when multiple `-f`/`--file` are used - see
|
||||||
[#1212](https://github.com/simonmichael/hledger/issues/1212)).
|
[#1212](https://github.com/simonmichael/hledger/issues/1212)).
|
||||||
|
|
||||||
### Auto postings and dates
|
## Auto postings and dates
|
||||||
|
|
||||||
A [posting date](#posting-dates) (or secondary date) in the matched posting,
|
A [posting date](#posting-dates) (or secondary date) in the matched posting,
|
||||||
or (taking precedence) a posting date in the auto posting rule itself,
|
or (taking precedence) a posting date in the auto posting rule itself,
|
||||||
will also be used in the generated posting.
|
will also be used in the generated posting.
|
||||||
|
|
||||||
### Auto postings and transaction balancing / inferred amounts / balance assertions
|
## Auto postings and transaction balancing / inferred amounts / balance assertions
|
||||||
|
|
||||||
Currently, auto postings are added:
|
Currently, auto postings are added:
|
||||||
|
|
||||||
@ -1651,7 +1651,7 @@ after auto postings are added. This changed in hledger 1.12+; see
|
|||||||
[#893](https://github.com/simonmichael/hledger/issues/893) for
|
[#893](https://github.com/simonmichael/hledger/issues/893) for
|
||||||
background.
|
background.
|
||||||
|
|
||||||
### Auto posting tags
|
## Auto posting tags
|
||||||
|
|
||||||
Automated postings will have some extra [tags](#tags-1):
|
Automated postings will have some extra [tags](#tags-1):
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger_timeclock(5) hledger _version_
|
% hledger_timeclock(5)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -6,7 +6,11 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
Timeclock - the time logging format of timeclock.el, as read by hledger
|
m4_dnl _info_({{
|
||||||
|
m4_dnl # hledger timeclock format
|
||||||
|
m4_dnl }})
|
||||||
|
|
||||||
|
The time logging format of timeclock.el, as read by hledger.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger_timedot(5) hledger _version_
|
% hledger_timedot(5)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -6,7 +6,11 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
Timedot - hledger's human-friendly time logging format
|
m4_dnl _info_({{
|
||||||
|
m4_dnl # hledger timedot format
|
||||||
|
m4_dnl }})
|
||||||
|
|
||||||
|
hledger's human-friendly time logging format.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger-ui(1) hledger-ui _version_
|
% hledger-ui(1)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -6,7 +6,7 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
hledger-ui - terminal interface for the hledger accounting tool
|
A terminal interface (TUI) for the hledger accounting tool.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
@ -87,18 +87,18 @@ hledger help options:
|
|||||||
|
|
||||||
_helpoptions_
|
_helpoptions_
|
||||||
|
|
||||||
a @file argument will be expanded to the contents of file,
|
A @FILE argument will be expanded to the contents of FILE,
|
||||||
which should contain one command line option/argument per line.
|
which should contain one command line option/argument per line.
|
||||||
(to prevent this, insert a `--` argument before.)
|
(To prevent this, insert a `--` argument before.)
|
||||||
|
|
||||||
# keys
|
# KEYS
|
||||||
|
|
||||||
`?` shows a help dialog listing all keys.
|
`?` shows a help dialog listing all keys.
|
||||||
(some of these also appear in the quick help at the bottom of each screen.)
|
(Some of these also appear in the quick help at the bottom of each screen.)
|
||||||
press `?` again (or `escape`, or `left`, or `q`) to close it.
|
Press `?` again (or `ESCAPE`, or `LEFT`, or `q`) to close it.
|
||||||
the following keys work on most screens:
|
The following keys work on most screens:
|
||||||
|
|
||||||
the cursor keys navigate:
|
The cursor keys navigate:
|
||||||
`right` (or `enter`) goes deeper,
|
`right` (or `enter`) goes deeper,
|
||||||
`left` returns to the previous screen,
|
`left` returns to the previous screen,
|
||||||
`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through lists.
|
`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through lists.
|
||||||
@ -108,90 +108,90 @@ A tip: movement speed is limited by your keyboard repeat rate,
|
|||||||
to move faster you may want to adjust it.
|
to move faster you may want to adjust it.
|
||||||
(If you're on a mac, the karabiner app is one way to do that.)
|
(If you're on a mac, the karabiner app is one way to do that.)
|
||||||
|
|
||||||
with shift pressed, the cursor keys adjust the report period,
|
With shift pressed, the cursor keys adjust the report period,
|
||||||
limiting the transactions to be shown (by default, all are shown).
|
limiting the transactions to be shown (by default, all are shown).
|
||||||
`shift-down/up` steps downward and upward through these standard report period durations:
|
`shift-down/up` steps downward and upward through these standard report period durations:
|
||||||
year, quarter, month, week, day.
|
year, quarter, month, week, day.
|
||||||
then, `shift-left/right` moves to the previous/next period.
|
Then, `shift-left/right` moves to the previous/next period.
|
||||||
`T` sets the report period to today.
|
`T` sets the report period to today.
|
||||||
with the `--watch` option, when viewing a "current" period
|
With the `--watch` option, when viewing a "current" period
|
||||||
(the current day, week, month, quarter, or year),
|
(the current day, week, month, quarter, or year),
|
||||||
the period will move automatically to track the current date.
|
the period will move automatically to track the current date.
|
||||||
to set a non-standard period, you can use `/` and a `date:` query.
|
To set a non-standard period, you can use `/` and a `date:` query.
|
||||||
|
|
||||||
`/` lets you set a general filter query limiting the data shown,
|
`/` lets you set a general filter query limiting the data shown,
|
||||||
using the same [query terms](hledger.html#queries) as in hledger and hledger-web.
|
using the same [query terms](hledger.html#queries) as in hledger and hledger-web.
|
||||||
while editing the query, you can use [ctrl-a/e/d/k, bs, cursor keys](http://hackage.haskell.org/package/brick-0.7/docs/brick-widgets-edit.html#t:editor);
|
While editing the query, you can use [CTRL-a/e/d/k, BS, cursor keys](http://hackage.haskell.org/package/brick-0.7/docs/brick-widgets-edit.html#t:editor);
|
||||||
press `enter` to set it, or `escape`to cancel.
|
press `ENTER` to set it, or `ESCAPE`to cancel.
|
||||||
there are also keys for quickly adjusting some common filters like account depth and transaction status (see below).
|
There are also keys for quickly adjusting some common filters like account depth and transaction status (see below).
|
||||||
`backspace` or `delete` removes all filters, showing all transactions.
|
`BACKSPACE` or `DELETE` removes all filters, showing all transactions.
|
||||||
|
|
||||||
as mentioned above, by default hledger-ui hides future transactions -
|
As mentioned above, by default hledger-ui hides future transactions -
|
||||||
both ordinary transactions recorded in the journal, and periodic
|
both ordinary transactions recorded in the journal, and periodic
|
||||||
transactions generated by rule. `f` toggles forecast mode, in which
|
transactions generated by rule. `F` toggles forecast mode, in which
|
||||||
future/forecasted transactions are shown. *(experimental)*
|
future/forecasted transactions are shown.
|
||||||
|
|
||||||
`escape` resets the UI state and jumps back to the top screen,
|
`ESCAPE` resets the UI state and jumps back to the top screen,
|
||||||
restoring the app's initial state at startup.
|
restoring the app's initial state at startup.
|
||||||
Or, it cancels minibuffer data entry or the help dialog.
|
Or, it cancels minibuffer data entry or the help dialog.
|
||||||
|
|
||||||
`ctrl-l` redraws the screen and centers the selection if possible
|
`CTRL-l` redraws the screen and centers the selection if possible
|
||||||
(selections near the top won't be centered, since we don't scroll above the top).
|
(selections near the top won't be centered, since we don't scroll above the top).
|
||||||
|
|
||||||
`g` reloads from the data file(s) and updates the current screen and any
|
`g` reloads from the data file(s) and updates the current screen and any
|
||||||
previous screens. (with large files, this could cause a noticeable pause.)
|
previous screens. (With large files, this could cause a noticeable pause.)
|
||||||
|
|
||||||
`i` toggles balance assertion checking.
|
`I` toggles balance assertion checking.
|
||||||
disabling balance assertions temporarily can be useful for troubleshooting.
|
Disabling balance assertions temporarily can be useful for troubleshooting.
|
||||||
|
|
||||||
`a` runs command-line hledger's add command, and reloads the updated file.
|
`a` runs command-line hledger's add command, and reloads the updated file.
|
||||||
this allows some basic data entry.
|
This allows some basic data entry.
|
||||||
|
|
||||||
`a` is like `a`, but runs the [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
|
`A` is like `a`, but runs the [hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
|
||||||
which provides a terminal interface.
|
which provides a terminal interface.
|
||||||
this key will be available if `hledger-iadd` is installed in $path.
|
This key will be available if `hledger-iadd` is installed in $path.
|
||||||
|
|
||||||
`e` runs $hledger_ui_editor, or $editor, or a default (`emacsclient -a "" -nw`) on the journal file.
|
`E` runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (`emacsclient -a "" -nw`) on the journal file.
|
||||||
with some editors (emacs, vi), the cursor will be positioned at the current transaction
|
With some editors (emacs, vi), the cursor will be positioned at the current transaction
|
||||||
when invoked from the register and transaction screens, and at the error location (if possible)
|
when invoked from the register and transaction screens, and at the error location (if possible)
|
||||||
when invoked from the error screen.
|
when invoked from the error screen.
|
||||||
|
|
||||||
`b` toggles cost mode, showing amounts in their transaction price's
|
`B` toggles cost mode, showing amounts in their transaction price's
|
||||||
commodity (like toggling the
|
commodity (like toggling the
|
||||||
[`-b/--cost`](https://hledger.org/hledger.html#b-cost) flag).
|
[`-B/--cost`](https://hledger.org/hledger.html#b-cost) flag).
|
||||||
|
|
||||||
`v` toggles value mode, showing amounts' current market value in their
|
`V` toggles value mode, showing amounts' current market value in their
|
||||||
default valuation commodity (like toggling the
|
default valuation commodity (like toggling the
|
||||||
[`-v/--market`](https://hledger.org/hledger.html#v-market-value) flag).
|
[`-V/--market`](https://hledger.org/hledger.html#v-market-value) flag).
|
||||||
note, "current market value" means the value on the report end date if specified, otherwise today.
|
Note, "current market value" means the value on the report end date if specified, otherwise today.
|
||||||
to see the value on another date, you can temporarily set that as the report end date.
|
To see the value on another date, you can temporarily set that as the report end date.
|
||||||
eg: to see a transaction as it was valued on july 30,
|
Eg: to see a transaction as it was valued on july 30,
|
||||||
go to the accounts or register screen,
|
go to the accounts or register screen,
|
||||||
press `/`,
|
press `/`,
|
||||||
and add ` date:-7/30` to the query.
|
and add ` date:-7/30` to the query.
|
||||||
|
|
||||||
at most one of cost or value mode can be active at once.
|
At most one of cost or value mode can be active at once.
|
||||||
|
|
||||||
there's not yet any visual reminder when cost or value mode is active;
|
There's not yet any visual reminder when cost or value mode is active;
|
||||||
for now pressing `b` `b` `v` should reliably reset to normal mode.
|
for now pressing `b` `b` `v` should reliably reset to normal mode.
|
||||||
|
|
||||||
with --watch active, if you save an edit to the journal file
|
With `--watch` active, if you save an edit to the journal file
|
||||||
while viewing the transaction screen in cost or value mode,
|
while viewing the transaction screen in cost or value mode,
|
||||||
the `b`/`v` keys will stop working.
|
the `B`/`V` keys will stop working.
|
||||||
to work around, press g to force a manual reload, or exit the transaction screen.
|
To work around, press `g` to force a manual reload, or exit the transaction screen.
|
||||||
|
|
||||||
`q` quits the application.
|
`q` quits the application.
|
||||||
|
|
||||||
additional screen-specific keys are described below.
|
Additional screen-specific keys are described below.
|
||||||
|
|
||||||
# screens
|
# SCREENS
|
||||||
|
|
||||||
## accounts screen
|
## Accounts screen
|
||||||
|
|
||||||
this is normally the first screen displayed.
|
This is normally the first screen displayed.
|
||||||
it lists accounts and their balances, like hledger's balance command.
|
It lists accounts and their balances, like hledger's balance command.
|
||||||
by default, it shows all accounts and their latest ending balances (including the balances of subaccounts).
|
By default, it shows all accounts and their latest ending balances (including the balances of subaccounts).
|
||||||
if you specify a query on the command line, it shows just the matched accounts and the balances from matched transactions.
|
If you specify a query on the command line, it shows just the matched accounts and the balances from matched transactions.
|
||||||
|
|
||||||
Account names are shown as a flat list by default; press `t` to toggle tree mode.
|
Account names are shown as a flat list by default; press `t` to toggle tree mode.
|
||||||
In list mode, account balances are exclusive of subaccounts, except where subaccounts are hidden by a depth limit (see below).
|
In list mode, account balances are exclusive of subaccounts, except where subaccounts are hidden by a depth limit (see below).
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger-web(1) hledger-web _version_
|
% hledger-web(1)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -6,7 +6,7 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
hledger-web - web interface for the hledger accounting tool
|
A web interface (WUI) for the hledger accounting tool.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
|
|||||||
@ -156,6 +156,7 @@ builtinCommands = [
|
|||||||
--
|
--
|
||||||
commandsList :: String -> [String] -> [String]
|
commandsList :: String -> [String] -> [String]
|
||||||
commandsList progversion othercmds = [
|
commandsList progversion othercmds = [
|
||||||
|
-- keep synced with hledger.m4.md -> Commands -->
|
||||||
"-------------------------------------------------------------------------------"
|
"-------------------------------------------------------------------------------"
|
||||||
,progversion
|
,progversion
|
||||||
,"Usage: hledger COMMAND [OPTIONS] [-- ADDONCMDOPTIONS]"
|
,"Usage: hledger COMMAND [OPTIONS] [-- ADDONCMDOPTIONS]"
|
||||||
|
|||||||
@ -32,6 +32,11 @@ transactions shown.
|
|||||||
Transactions making a net change of zero are not shown by default;
|
Transactions making a net change of zero are not shown by default;
|
||||||
add the `-E/--empty` flag to show them.
|
add the `-E/--empty` flag to show them.
|
||||||
|
|
||||||
|
This command also supports the
|
||||||
|
[output destination](hledger.html#output-destination) and
|
||||||
|
[output format](hledger.html#output-format) options
|
||||||
|
The output formats supported are `txt`, `csv`, and `json`.
|
||||||
|
|
||||||
### aregister and custom posting dates
|
### aregister and custom posting dates
|
||||||
|
|
||||||
Transactions whose date is outside the report period can still be
|
Transactions whose date is outside the report period can still be
|
||||||
@ -45,13 +50,6 @@ To filter strictly by transaction date instead, add the `--txn-dates`
|
|||||||
flag. If you use this flag and some of your postings have custom
|
flag. If you use this flag and some of your postings have custom
|
||||||
dates, it's probably best to assume the running balance is wrong.
|
dates, it's probably best to assume the running balance is wrong.
|
||||||
|
|
||||||
### Output format
|
|
||||||
|
|
||||||
This command also supports the
|
|
||||||
[output destination](hledger.html#output-destination) and
|
|
||||||
[output format](hledger.html#output-format) options
|
|
||||||
The output formats supported are `txt`, `csv`, and `json`.
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
Show all transactions and historical running balance in the first
|
Show all transactions and historical running balance in the first
|
||||||
|
|||||||
@ -21,6 +21,12 @@ transaction setting the correct starting balance on that date.
|
|||||||
Then the balance command will show real-world account balances.
|
Then the balance command will show real-world account balances.
|
||||||
In some cases the -H/--historical flag is used to ensure this (more below).
|
In some cases the -H/--historical flag is used to ensure this (more below).
|
||||||
|
|
||||||
|
This command also supports the
|
||||||
|
[output destination](hledger.html#output-destination) and
|
||||||
|
[output format](hledger.html#output-format) options
|
||||||
|
The output formats supported are (in most modes):
|
||||||
|
`txt`, `csv`, `html`, and `json`.
|
||||||
|
|
||||||
The balance command can produce several styles of report:
|
The balance command can produce several styles of report:
|
||||||
|
|
||||||
### Classic balance report
|
### Classic balance report
|
||||||
@ -570,10 +576,3 @@ Budget performance in 2019/01:
|
|||||||
|| 0 [ 0]
|
|| 0 [ 0]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Output format
|
|
||||||
|
|
||||||
This command also supports the
|
|
||||||
[output destination](hledger.html#output-destination) and
|
|
||||||
[output format](hledger.html#output-format) options
|
|
||||||
The output formats supported are (in most modes):
|
|
||||||
`txt`, `csv`, `html`, and `json`.
|
|
||||||
|
|||||||
@ -41,7 +41,7 @@ amount of original matched posting. If the amount includes a commodity name,
|
|||||||
the new posting amount will be in the new commodity; otherwise, it will be in
|
the new posting amount will be in the new commodity; otherwise, it will be in
|
||||||
the matched posting amount's commodity.
|
the matched posting amount's commodity.
|
||||||
|
|
||||||
#### Re-write rules in a file
|
### Re-write rules in a file
|
||||||
|
|
||||||
During the run this tool will execute so called
|
During the run this tool will execute so called
|
||||||
["Automated Transactions"](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
|
["Automated Transactions"](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
|
||||||
@ -83,7 +83,7 @@ $ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax)
|
|||||||
It is important to understand that relative order of such entries in journal is
|
It is important to understand that relative order of such entries in journal is
|
||||||
important. You can re-use result of previously added postings.
|
important. You can re-use result of previously added postings.
|
||||||
|
|
||||||
#### Diff output format
|
### Diff output format
|
||||||
|
|
||||||
To use this tool for batch modification of your journal files you may find
|
To use this tool for batch modification of your journal files you may find
|
||||||
useful output in form of unified diff.
|
useful output in form of unified diff.
|
||||||
@ -123,7 +123,7 @@ See also:
|
|||||||
|
|
||||||
https://github.com/simonmichael/hledger/issues/99
|
https://github.com/simonmichael/hledger/issues/99
|
||||||
|
|
||||||
#### rewrite vs. print --auto
|
### rewrite vs. print --auto
|
||||||
|
|
||||||
This command predates print --auto, and currently does much the same thing,
|
This command predates print --auto, and currently does much the same thing,
|
||||||
but with these differences:
|
but with these differences:
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
% hledger(1) hledger _version_
|
% hledger(1)
|
||||||
% _author_
|
% _author_
|
||||||
% _monthyear_
|
% _monthyear_
|
||||||
|
|
||||||
@ -17,16 +17,18 @@ _man_({{
|
|||||||
# NAME
|
# NAME
|
||||||
}})
|
}})
|
||||||
|
|
||||||
hledger - a command-line accounting tool
|
A command-line accounting tool for both power users and folks new to accounting.
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
}})
|
}})
|
||||||
|
|
||||||
`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
|
|
||||||
`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
|
|
||||||
`hledger`
|
`hledger`
|
||||||
|
|
||||||
|
`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`
|
||||||
|
|
||||||
|
`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`
|
||||||
|
|
||||||
_man_({{
|
_man_({{
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
}})
|
}})
|
||||||
@ -1571,185 +1573,122 @@ Related:
|
|||||||
|
|
||||||
# COMMANDS
|
# COMMANDS
|
||||||
|
|
||||||
hledger provides a number of subcommands; `hledger` with no arguments
|
hledger provides a number of commands for producing reports and managing your data.
|
||||||
shows a list.
|
Run `hledger` with no arguments to list the commands available.
|
||||||
|
|
||||||
If you install additional `hledger-*` packages, or if you put programs
|
To run a command, write its name (or its abbreviation shown in the commands list,
|
||||||
or scripts named `hledger-NAME` in your PATH, these will also be
|
or any unambiguous prefix of the name) as hledger's first argument.
|
||||||
listed as subcommands.
|
Eg: `hledger balance` or `hledger bal`.
|
||||||
|
|
||||||
Run a subcommand by writing its name as first argument (eg `hledger
|
m4_dnl XXX maybe later
|
||||||
incomestatement`). You can also write one of the standard short aliases
|
m4_dnl Each command's detailed docs are available :
|
||||||
displayed in parentheses in the command list (`hledger b`), or any
|
m4_dnl
|
||||||
any unambiguous prefix of a command name (`hledger inc`).
|
m4_dnl - command line help, eg: `hledger balance --help`
|
||||||
|
m4_dnl -
|
||||||
|
m4_dnl - info manuals, eg: `hledger help --info hledger` (or possibly `info hledger`) <!-- -> m4_dnl Commands -> balance -->
|
||||||
|
m4_dnl - web manuals, eg: <https://hledger.org/hledger.html#balance>
|
||||||
|
m4_dnl <!-- - man pages, eg: `man hledger-balance` -->
|
||||||
|
|
||||||
Here are all the builtin commands in alphabetical order.
|
Here are the built-in commands:
|
||||||
See also `hledger` for a more organised command list,
|
<!-- keep synced with Hledger.Cli.Commands.commandsList -->
|
||||||
and `hledger CMD -h` for detailed command help.
|
|
||||||
|
|
||||||
## accounts
|
**Data entry (these modify the journal file):**
|
||||||
|
|
||||||
_include_(Hledger/Cli/Commands/Accounts.md)
|
- [add](#add) - add transactions using guided prompts
|
||||||
|
- [import](#import) - add any new transactions from other files (eg csv)
|
||||||
|
|
||||||
## activity
|
**Data management**:
|
||||||
|
|
||||||
_include_(Hledger/Cli/Commands/Activity.md)
|
- [check](#check) - check for various kinds of issue in the data
|
||||||
|
- [close](#close) (equity) - generate balance-resetting transactions
|
||||||
|
- [diff](#diff) - compare account transactions in two journal files
|
||||||
|
- [rewrite](#rewrite) - generate extra postings, similar to print --auto
|
||||||
|
|
||||||
## add
|
**Financial statements:**
|
||||||
|
|
||||||
_include_(Hledger/Cli/Commands/Add.md)
|
- [aregister](#aregister) (areg) - show transactions in a particular account
|
||||||
|
- [balancesheet](#balancesheet) (bs) - show assets, liabilities and net worth
|
||||||
|
- [balancesheetequity](#balancesheetequity) (bse) - show assets, liabilities and equity
|
||||||
|
- [cashflow](#cashflow) (cf) - show changes in liquid assets
|
||||||
|
- [incomestatement](#incomestatement) (is) - show revenues and expenses
|
||||||
|
- [roi](#roi) - show return on investments
|
||||||
|
|
||||||
## aregister
|
**Miscellaneous reports:**
|
||||||
|
|
||||||
_include_(Hledger/Cli/Commands/Aregister.md)
|
- [accounts](#accounts) (a) - show account names
|
||||||
|
- [activity](#activity) - show postings-per-interval bar charts
|
||||||
|
- [balance](#balance) (b, bal) - show balance changes/end balances/budgets in accounts
|
||||||
|
- [codes](#codes) - show transaction codes
|
||||||
|
- [commodities](#commodities) - show commodity/currency symbols
|
||||||
|
- [descriptions](#descriptions) - show unique transaction descriptions
|
||||||
|
- [files](#files) - show input file paths
|
||||||
|
- [notes](#notes) - show unique note segments of transaction descriptions
|
||||||
|
- [payees](#payees) - show unique payee segments of transaction descriptions
|
||||||
|
- [prices](#prices) - show market price records
|
||||||
|
- [print](#print) (p, txns) - show transactions (journal entries)
|
||||||
|
- [print-unique](#print-unique) - show only transactions with unique descriptions
|
||||||
|
- [register](#register) (r, reg) - show postings in one or more accounts & running total
|
||||||
|
- [register-match](#register-match) - show a recent posting that best matches a description
|
||||||
|
- [stats](#stats) - show journal statistics
|
||||||
|
- [tags](#tags) - show tag names
|
||||||
|
- [test](#test) - run self tests
|
||||||
|
|
||||||
## balance
|
m4_dnl XXX maybe later
|
||||||
|
m4_dnl _man_({{
|
||||||
|
m4_dnl (Detailed command docs are omitted here for brevity,
|
||||||
|
m4_dnl if you need them please use one of the other doc formats mentioned above.)
|
||||||
|
m4_dnl }})
|
||||||
|
m4_dnl _notman_({{
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Balance.md}})
|
Next, the detailed command docs, in alphabetical order.
|
||||||
|
|
||||||
## balancesheet
|
m4_dnl commandnameheading: Commandmdfile:
|
||||||
|
_command_({{## accounts}} ,{{Accounts}})
|
||||||
_include_({{Hledger/Cli/Commands/Balancesheet.md}})
|
_command_({{## activity}} ,{{Activity}})
|
||||||
|
_command_({{## add}} ,{{Add}})
|
||||||
## balancesheetequity
|
_command_({{## aregister}} ,{{Aregister}})
|
||||||
|
_command_({{## balance}} ,{{Balance}})
|
||||||
_include_({{Hledger/Cli/Commands/Balancesheetequity.md}})
|
_command_({{## balancesheet}} ,{{Balancesheet}})
|
||||||
|
_command_({{## balancesheetequity}} ,{{Balancesheetequity}})
|
||||||
## cashflow
|
_command_({{## cashflow}} ,{{Cashflow}})
|
||||||
|
_command_({{## check}} ,{{Check}})
|
||||||
_include_({{Hledger/Cli/Commands/Cashflow.md}})
|
_command_({{## close}} ,{{Close}})
|
||||||
|
_command_({{## codes}} ,{{Codes}})
|
||||||
## check
|
_command_({{## commodities}} ,{{Commodities}})
|
||||||
|
_command_({{## descriptions}} ,{{Descriptions}})
|
||||||
_include_({{Hledger/Cli/Commands/Check.md}})
|
_command_({{## diff}} ,{{Diff}})
|
||||||
|
_command_({{## files}} ,{{Files}})
|
||||||
## close
|
_command_({{## help}} ,{{Help}})
|
||||||
|
_command_({{## import}} ,{{Import}})
|
||||||
_include_({{Hledger/Cli/Commands/Close.md}})
|
_command_({{## incomestatement}} ,{{Incomestatement}})
|
||||||
|
_command_({{## notes}} ,{{Notes}})
|
||||||
## codes
|
_command_({{## rewrite}} ,{{Rewrite}})
|
||||||
|
_command_({{## roi}} ,{{Roi}})
|
||||||
_include_({{Hledger/Cli/Commands/Codes.md}})
|
_command_({{## stats}} ,{{Stats}})
|
||||||
|
_command_({{## tags}} ,{{Tags}})
|
||||||
## commodities
|
_command_({{## test}} ,{{Test}})
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Commodities.md}})
|
|
||||||
|
|
||||||
## descriptions
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Descriptions.md}})
|
|
||||||
|
|
||||||
## diff
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Diff.md}})
|
|
||||||
|
|
||||||
## files
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Files.md}})
|
|
||||||
|
|
||||||
## help
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Help.md}})
|
|
||||||
|
|
||||||
## import
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Import.md}})
|
|
||||||
|
|
||||||
## incomestatement
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Incomestatement.md}})
|
|
||||||
|
|
||||||
## notes
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Notes.md}})
|
|
||||||
|
|
||||||
## payees
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Payees.md}})
|
|
||||||
|
|
||||||
## prices
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Prices.md}})
|
|
||||||
|
|
||||||
## print
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Print.md}})
|
|
||||||
|
|
||||||
## print-unique
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Printunique.md}})
|
|
||||||
|
|
||||||
## register
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Register.md}})
|
|
||||||
|
|
||||||
## register-match
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Registermatch.md}})
|
|
||||||
|
|
||||||
## rewrite
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Rewrite.md}})
|
|
||||||
|
|
||||||
## roi
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Roi.md}})
|
|
||||||
|
|
||||||
## stats
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Stats.md}})
|
|
||||||
|
|
||||||
## tags
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Tags.md}})
|
|
||||||
|
|
||||||
## test
|
|
||||||
|
|
||||||
_include_({{Hledger/Cli/Commands/Test.md}})
|
|
||||||
|
|
||||||
|
m4_dnl }})
|
||||||
|
|
||||||
## Add-on commands
|
## Add-on commands
|
||||||
|
|
||||||
hledger also searches for external add-on commands, and will include these in the commands list.
|
Any programs or scripts in your PATH named named `hledger-SOMETHING`
|
||||||
These are programs or scripts in your PATH whose name starts with `hledger-`
|
will also appear in the commands list (with a `+` mark).
|
||||||
and ends with a recognised file extension
|
These are called add-on commands.
|
||||||
(currently: no extension, `bat`,`com`,`exe`, `hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
|
|
||||||
|
|
||||||
Add-ons can be invoked like any hledger command, but there are a few things to be aware of.
|
These offical add-ons are maintained and released along with hledger:
|
||||||
Eg if the `hledger-web` add-on is installed,
|
|
||||||
|
|
||||||
- `hledger -h web` shows hledger's help, while `hledger web -h` shows hledger-web's help.
|
- [ui](hledger-ui.html) an efficient terminal interface for hledger (TUI)
|
||||||
|
- [web](hledger-web.html) a simple web interface for hledger (WUI)
|
||||||
|
|
||||||
- Flags specific to the add-on must have a preceding `--` to hide them from hledger.
|
These add-ons are maintained separately:
|
||||||
So `hledger web --serve --port 9000` will be rejected; you must use `hledger web -- --serve --port 9000`.
|
|
||||||
|
|
||||||
- You can always run add-ons directly if preferred: `hledger-web --serve --port 9000`.
|
- [iadd](http://hackage.haskell.org/package/hledger-iadd)
|
||||||
|
a more interactive alternative for the [add](hledger.html#add) command
|
||||||
Add-ons are a relatively easy way to add local features or experiment with new ideas.
|
- [interest](http://hackage.haskell.org/package/hledger-interest)
|
||||||
They can be written in any language, but haskell scripts have a big advantage:
|
generates interest transactions according to various schemes
|
||||||
they can use the same hledger (and haskell) library functions that built-in commands do,
|
- [stockquotes](http://hackage.haskell.org/package/hledger-stockquotes)
|
||||||
for command-line options, journal parsing, reporting, etc.
|
downloads market prices for your commodities from AlphaVantage *(experimental)*
|
||||||
|
|
||||||
Two important add-ons are the hledger-ui and hledger-web user interfaces.
|
|
||||||
These are maintained and released along with hledger:
|
|
||||||
|
|
||||||
### ui
|
|
||||||
[hledger-ui](hledger-ui.html) provides an efficient terminal interface.
|
|
||||||
|
|
||||||
### web
|
|
||||||
[hledger-web](hledger-web.html) provides a simple web interface.
|
|
||||||
|
|
||||||
Third party add-ons, maintained separately from hledger, include:
|
|
||||||
|
|
||||||
### iadd
|
|
||||||
|
|
||||||
[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd)
|
|
||||||
is a more interactive, terminal UI replacement for the [add command](hledger.html#add).
|
|
||||||
|
|
||||||
### interest
|
|
||||||
|
|
||||||
[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
|
|
||||||
generates interest transactions for an account according to various schemes.
|
|
||||||
|
|
||||||
<!-- ### autosync -->
|
<!-- ### autosync -->
|
||||||
|
|
||||||
@ -1760,14 +1699,43 @@ generates interest transactions for an account according to various schemes.
|
|||||||
<!-- and can also download the data -->
|
<!-- and can also download the data -->
|
||||||
<!-- [if your bank offers OFX Direct Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings). -->
|
<!-- [if your bank offers OFX Direct Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings). -->
|
||||||
|
|
||||||
### stockquotes
|
Additional experimental add-ons, which may not be in a working state,
|
||||||
|
can be found in the bin/ directory in the hledger repo.
|
||||||
|
|
||||||
[hledger-stockquotes](http://hackage.haskell.org/package/hledger-stockquotes)
|
## Add-on command flags
|
||||||
downloads market prices for the commodities in your journal from AlphaVantage.
|
|
||||||
|
|
||||||
|
In a hledger command line, add-on command flags must have a double dash (`--`) preceding them.
|
||||||
|
Eg you must write:
|
||||||
|
```shell
|
||||||
|
$ hledger web -- --serve
|
||||||
|
```
|
||||||
|
and not:
|
||||||
|
```shell
|
||||||
|
$ hledger web --serve
|
||||||
|
```
|
||||||
|
(because the `--serve` flag belongs to `hledger-web`, not `hledger`).
|
||||||
|
|
||||||
|
The `-h/--help` and `--version` flags work without `--`, with their position deciding which program they refer to.
|
||||||
|
Eg `hledger -h web` shows hledger's help, `hledger web -h` shows hledger-web's help.
|
||||||
|
|
||||||
|
If you have any trouble with this, remember you can always run the add-on program directly, eg:
|
||||||
|
```shell
|
||||||
|
$ hledger-web --serve
|
||||||
|
```
|
||||||
|
|
||||||
|
## Making add-on commands
|
||||||
|
|
||||||
|
Add-on commands are programs or scripts in your PATH
|
||||||
|
|
||||||
|
- whose name starts with `hledger-`
|
||||||
|
- whose name ends with a recognised file extension:
|
||||||
|
`.bat`,`.com`,`.exe`, `.hs`,`.lhs`,`.pl`,`.py`,`.rb`,`.rkt`,`.sh` or none
|
||||||
|
- and (on unix, mac) which are executable by the current user.
|
||||||
|
|
||||||
|
Add-ons are a relatively easy way to add local features or experiment with new ideas.
|
||||||
|
They can be written in any language, but haskell scripts have a big advantage:
|
||||||
|
they can use the same hledger library functions that built-in commands use for command-line options, parsing and reporting.
|
||||||
|
|
||||||
A few more experimental or old add-ons can be found in hledger's bin/
|
|
||||||
directory. These are typically prototypes and not guaranteed to work.
|
|
||||||
|
|
||||||
# ENVIRONMENT
|
# ENVIRONMENT
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user