mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-25 03:13:25 +03:00
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"
|
||||
|
||||
-- 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"
|
||||
gitcommit = "git commit --allow-empty"
|
||||
|
||||
@ -400,18 +400,20 @@ main = do
|
||||
let src = manpageNameToManualName out <.> "m4.md"
|
||||
commonm4 = "doc/common.m4"
|
||||
dir = takeDirectory out
|
||||
pkg = dir
|
||||
packagemanversionm4 = dir </> ".version.m4"
|
||||
packagemandatem4 = dir </> ".date.m4"
|
||||
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
|
||||
deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir </>) <$> S.getDirectoryContents dir
|
||||
need $ [src, commonm4, packagemanversionm4, packagemandatem4, tmpl] ++ deps
|
||||
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
|
||||
"m4 -P -DMAN -I" dir commonm4 packagemanversionm4 packagemandatem4 src "|"
|
||||
pandoc fromsrcmd "-s" "--template" tmpl
|
||||
("-V footer='"++pkg++"-"++pkgversion++"'")
|
||||
"--lua-filter tools/pandoc-drop-html-blocks.lua"
|
||||
"--lua-filter tools/pandoc-drop-html-inlines.lua"
|
||||
"--lua-filter tools/pandoc-drop-links.lua"
|
||||
@ -419,6 +421,7 @@ main = do
|
||||
|
||||
-- Generate plain text manuals suitable for embedding in
|
||||
-- executables and viewing with a pager, from the man pages.
|
||||
-- (Depends on the nroffmanuals.)
|
||||
phony "txtmanuals" $ need txtmanuals
|
||||
txtmanuals |%> \out -> do -- hledger/hledger.txt
|
||||
let src = manualNameToManpageName $ dropExtension out
|
||||
@ -444,13 +447,16 @@ main = do
|
||||
when (dir=="hledger") $ need commandmds
|
||||
cmd Shell
|
||||
"m4 -P -DINFO -I" dir commonm4 packagemanversionm4 src "|"
|
||||
sed "-e 's/^#(#+)/\\1/'" "|"
|
||||
-- sed "-e 's/^#(#+)/\\1/'" "|"
|
||||
pandoc fromsrcmd
|
||||
"--lua-filter tools/pandoc-drop-html-blocks.lua"
|
||||
"--lua-filter tools/pandoc-drop-html-inlines.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 |"
|
||||
makeinfo "--force --no-split -o" out
|
||||
makeinfo "-o" out
|
||||
|
||||
|
||||
-- WEBSITE MARKDOWN SOURCE
|
||||
|
@ -13,17 +13,22 @@ m4_dnl
|
||||
m4_dnl Author to show in man pages.
|
||||
m4_define({{_author_}}, {{}})m4_dnl
|
||||
m4_dnl
|
||||
m4_dnl Macros for conditionally including format-specific content
|
||||
m4_dnl $1 is the manual's web slug: hledger, hledger-ui, journal, csv etc.
|
||||
m4_dnl include in man pages only
|
||||
m4_define({{_man_}}, m4_ifdef({{MAN}},{{$1}}) )m4_dnl
|
||||
m4_dnl include in web manuals only
|
||||
m4_define({{_web_}}, m4_ifdef({{WEB}},{{$1}}) )m4_dnl
|
||||
m4_dnl include in info manuals only
|
||||
m4_define({{_info_}}, 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 Macros for conditionally including or excluding content based on the format
|
||||
m4_dnl (man, web or info).
|
||||
m4_define({{_man_}}, m4_ifdef({{MAN}},{{$1}}) )m4_dnl
|
||||
m4_define({{_notman_}}, m4_ifdef({{MAN}},,{{$1}}) )m4_dnl
|
||||
m4_define({{_web_}}, m4_ifdef({{WEB}},{{$1}}) )m4_dnl
|
||||
m4_define({{_notweb_}}, m4_ifdef({{WEB}},,{{$1}}) )m4_dnl
|
||||
m4_define({{_info_}}, m4_ifdef({{INFO}},{{$1}}) )m4_dnl
|
||||
m4_define({{_notinfo_}}, m4_ifdef({{INFO}},,{{$1}}) )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_define({{_col2_}},
|
||||
{{<div class="container-fluid">
|
||||
|
@ -2,7 +2,7 @@ $if(has-tables)$
|
||||
.\"t
|
||||
$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)$
|
||||
$header-includes$
|
||||
@ -36,6 +36,6 @@ Copyright (C) 2007-2020 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
.SH SEE ALSO
|
||||
hledger(1), hledger\-ui(1), hledger\-web(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5),
|
||||
ledger(1)
|
||||
hledger(1), hledger\-ui(1), hledger\-web(1), 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_
|
||||
% _monthyear_
|
||||
|
||||
@ -6,7 +6,11 @@ _man_({{
|
||||
# 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_({{
|
||||
# DESCRIPTION
|
||||
|
@ -1,4 +1,4 @@
|
||||
% hledger_journal(5) hledger _version_
|
||||
% hledger_journal(5)
|
||||
% _author_
|
||||
% _monthyear_
|
||||
|
||||
@ -6,7 +6,11 @@ _man_({{
|
||||
# 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_({{
|
||||
# DESCRIPTION
|
||||
@ -72,10 +76,6 @@ Here's an example:
|
||||
```
|
||||
-->
|
||||
|
||||
_man_({{
|
||||
# FILE FORMAT
|
||||
}})
|
||||
|
||||
Here's a description of each part of the file format
|
||||
(and hledger's data model).
|
||||
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,
|
||||
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.
|
||||
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:
|
||||
`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
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
### Posting dates
|
||||
## Posting dates
|
||||
|
||||
You can give individual postings a different date from their parent
|
||||
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
|
||||
the transaction and DATE2 infers its year from DATE.
|
||||
|
||||
## Status
|
||||
# STATUS
|
||||
|
||||
Transactions, or individual postings within a transaction,
|
||||
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),
|
||||
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).
|
||||
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).
|
||||
|
||||
### Payee and note
|
||||
## Payee and note
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
## Comments
|
||||
# COMMENTS
|
||||
|
||||
Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
|
||||
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).
|
||||
|
||||
|
||||
## Tags
|
||||
# TAGS
|
||||
|
||||
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.
|
||||
@ -333,7 +333,7 @@ Tags are like Ledger's
|
||||
[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata)
|
||||
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.
|
||||
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.
|
||||
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*
|
||||
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`
|
||||
flag or `real:1` query.
|
||||
|
||||
## Account names
|
||||
# ACCOUNT NAMES
|
||||
|
||||
Account names typically have several parts separated by a full colon, from
|
||||
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).
|
||||
|
||||
## Amounts
|
||||
# AMOUNTS
|
||||
|
||||
After the account name, there is usually an amount.
|
||||
(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,23456780000009
|
||||
|
||||
### Digit group marks
|
||||
## Digit group marks
|
||||
|
||||
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
|
||||
@ -479,7 +479,7 @@ commodity 1 000 000.9455
|
||||
|
||||
<a name="amount-display-style"></a>
|
||||
|
||||
### Commodity display style
|
||||
## Commodity display style
|
||||
|
||||
For each commodity, hledger chooses a consistent style to use when
|
||||
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),
|
||||
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,
|
||||
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.)
|
||||
|
||||
|
||||
## Transaction prices
|
||||
# TRANSACTION PRICES
|
||||
|
||||
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).
|
||||
@ -597,7 +597,7 @@ $ hledger bal -N --flat -B
|
||||
€100 assets:euros
|
||||
```
|
||||
|
||||
## Lot prices and lot dates
|
||||
# LOT PRICES, LOT DATES
|
||||
|
||||
Ledger allows another kind of price,
|
||||
[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,
|
||||
after the posting amount and before the balance assertion if any.
|
||||
|
||||
## Balance assertions
|
||||
# BALANCE ASSERTIONS
|
||||
|
||||
hledger supports
|
||||
[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.
|
||||
(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
|
||||
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
|
||||
can assert intra-day balances.
|
||||
|
||||
### Assertions and included files
|
||||
## Assertions and included files
|
||||
|
||||
With [included files](#including-other-files), things are a little
|
||||
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
|
||||
in the right file.
|
||||
|
||||
### Assertions and multiple -f options
|
||||
## Assertions and multiple -f options
|
||||
|
||||
Balance assertions don't work well across files specified
|
||||
with multiple -f options. Use include or [concatenate the files](hledger.html#input-files)
|
||||
instead.
|
||||
|
||||
### Assertions and commodities
|
||||
## Assertions and commodities
|
||||
|
||||
The asserted balance must be a simple single-commodity amount, and in
|
||||
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€
|
||||
```
|
||||
|
||||
### Assertions and prices
|
||||
## Assertions and prices
|
||||
|
||||
Balance assertions ignore [transaction prices](#transaction-prices),
|
||||
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),
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
### Assertions and virtual postings
|
||||
## Assertions and virtual postings
|
||||
|
||||
Balance assertions are checked against all postings, both real and
|
||||
[virtual](#virtual-postings). They are not affected by the `--real/-R`
|
||||
flag or `real:` query.
|
||||
|
||||
### Assertions and precision
|
||||
## Assertions and precision
|
||||
|
||||
Balance assertions compare the exactly calculated amounts,
|
||||
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.
|
||||
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.
|
||||
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,
|
||||
instead of just reading it.
|
||||
|
||||
### Balance assignments and prices
|
||||
## Balance assignments and prices
|
||||
|
||||
A [transaction price](#transaction-prices) in a balance assignment
|
||||
will cause the calculated amount to have that price attached:
|
||||
@ -800,7 +800,7 @@ $ hledger print --explicit
|
||||
(a) $1 @ €2 = $1 @ €2
|
||||
```
|
||||
|
||||
## Directives
|
||||
# DIRECTIVES
|
||||
|
||||
A directive is a line in the journal beginning with a special keyword,
|
||||
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).
|
||||
Some directives have multiple effects.
|
||||
|
||||
### Directives and multiple files
|
||||
## Directives and multiple files
|
||||
|
||||
If you use multiple `-f`/`--file` options, or the `include` directive,
|
||||
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)
|
||||
(see below).
|
||||
|
||||
### Comment blocks
|
||||
## Comment blocks
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
@ -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
|
||||
|
||||
### Default year
|
||||
## Default year
|
||||
|
||||
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:
|
||||
@ -937,7 +937,7 @@ Y2010 ; change default year to 2010
|
||||
assets
|
||||
```
|
||||
|
||||
### Declaring commodities
|
||||
## Declaring commodities
|
||||
|
||||
The `commodity` directive has several functions:
|
||||
|
||||
@ -992,12 +992,12 @@ Note hledger normally uses
|
||||
so 0.5 displayed with zero decimal digits is "0".
|
||||
(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
|
||||
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).
|
||||
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
|
||||
```
|
||||
|
||||
### Declaring market prices
|
||||
## Declaring market prices
|
||||
|
||||
The `P` directive declares a market price, which is
|
||||
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
|
||||
in another commodity. See [Valuation](hledger.html#valuation).
|
||||
|
||||
### Declaring accounts
|
||||
## Declaring accounts
|
||||
|
||||
`account` directives can be used to declare accounts
|
||||
(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 error checking
|
||||
### Account error checking
|
||||
|
||||
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.
|
||||
@ -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).
|
||||
- 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:
|
||||
|
||||
@ -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 subdirectives
|
||||
### Account subdirectives
|
||||
|
||||
We also allow (and ignore) Ledger-style indented subdirectives, just for compatibility.:
|
||||
```journal
|
||||
@ -1123,7 +1123,7 @@ account ACCTNAME [ACCTTYPE] [;COMMENT]
|
||||
[LEDGER-STYLE SUBDIRECTIVES, IGNORED]
|
||||
```
|
||||
|
||||
#### Account types
|
||||
### Account types
|
||||
|
||||
hledger recognises five main types of account,
|
||||
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
|
||||
but typically not investments or receivables.)
|
||||
|
||||
##### Declaring account types
|
||||
#### Declaring account types
|
||||
|
||||
Generally, to make these reports work you should declare your
|
||||
top-level accounts and their types,
|
||||
@ -1162,7 +1162,7 @@ account revenues ; type: Revenue
|
||||
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
|
||||
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
|
||||
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
|
||||
them, to prevent any confusion from mixing declared and auto-detected
|
||||
@ -1201,7 +1201,7 @@ account liabilities ; type:Equity
|
||||
equity -2
|
||||
```
|
||||
|
||||
##### Old account type syntax
|
||||
#### Old account type syntax
|
||||
|
||||
In some hledger journals you might instead see this old syntax (the
|
||||
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
|
||||
|
||||
|
||||
#### Account display order
|
||||
### Account display order
|
||||
|
||||
Account directives also set the order in which accounts are displayed,
|
||||
eg in reports, the hledger-ui accounts screen, and the hledger-web 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
|
||||
- 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,
|
||||
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).
|
||||
|
||||
#### Basic aliases
|
||||
### Basic aliases
|
||||
|
||||
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
|
||||
@ -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"
|
||||
```
|
||||
|
||||
#### Regex aliases
|
||||
### Regex aliases
|
||||
|
||||
There is also a more powerful variant that uses a regular expression,
|
||||
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,
|
||||
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.
|
||||
|
||||
@ -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.
|
||||
|
||||
#### Aliases and multiple files
|
||||
### Aliases 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,
|
||||
@ -1382,7 +1382,7 @@ alias bar=Bar
|
||||
include c.journal ; also affected
|
||||
```
|
||||
|
||||
#### `end aliases`
|
||||
### `end aliases`
|
||||
|
||||
You can clear (forget) all currently defined aliases with the `end
|
||||
aliases` directive:
|
||||
@ -1391,7 +1391,7 @@ aliases` directive:
|
||||
end aliases
|
||||
```
|
||||
|
||||
### Default parent account
|
||||
## Default parent account
|
||||
|
||||
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`
|
||||
@ -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.
|
||||
If account aliases are present, they are applied after the default parent account.
|
||||
|
||||
## Periodic transactions
|
||||
# PERIODIC TRANSACTIONS
|
||||
|
||||
Periodic transaction rules describe transactions that recur.
|
||||
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).
|
||||
|
||||
|
||||
### Periodic rule syntax
|
||||
## Periodic rule syntax
|
||||
|
||||
A periodic transaction rule looks like a normal journal entry,
|
||||
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
|
||||
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,
|
||||
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.
|
||||
- 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.
|
||||
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)).
|
||||
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,
|
||||
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="auto-postings"></a>
|
||||
|
||||
## Auto postings
|
||||
# AUTO POSTINGS
|
||||
|
||||
"Automated postings" or "auto postings" are extra postings which get
|
||||
added automatically to transactions which match certain queries,
|
||||
@ -1626,20 +1626,20 @@ $ hledger print --auto
|
||||
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,
|
||||
or in any parent file or child file. Note, currently it will not
|
||||
affect sibling files (when multiple `-f`/`--file` are used - see
|
||||
[#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,
|
||||
or (taking precedence) a posting date in the auto posting rule itself,
|
||||
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:
|
||||
|
||||
@ -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
|
||||
background.
|
||||
|
||||
### Auto posting tags
|
||||
## Auto posting tags
|
||||
|
||||
Automated postings will have some extra [tags](#tags-1):
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
% hledger_timeclock(5) hledger _version_
|
||||
% hledger_timeclock(5)
|
||||
% _author_
|
||||
% _monthyear_
|
||||
|
||||
@ -6,7 +6,11 @@ _man_({{
|
||||
# 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_({{
|
||||
# DESCRIPTION
|
||||
|
@ -1,4 +1,4 @@
|
||||
% hledger_timedot(5) hledger _version_
|
||||
% hledger_timedot(5)
|
||||
% _author_
|
||||
% _monthyear_
|
||||
|
||||
@ -6,7 +6,11 @@ _man_({{
|
||||
# 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_({{
|
||||
# DESCRIPTION
|
||||
|
@ -1,4 +1,4 @@
|
||||
% hledger-ui(1) hledger-ui _version_
|
||||
% hledger-ui(1)
|
||||
% _author_
|
||||
% _monthyear_
|
||||
|
||||
@ -6,7 +6,7 @@ _man_({{
|
||||
# NAME
|
||||
}})
|
||||
|
||||
hledger-ui - terminal interface for the hledger accounting tool
|
||||
A terminal interface (TUI) for the hledger accounting tool.
|
||||
|
||||
_man_({{
|
||||
# SYNOPSIS
|
||||
@ -87,18 +87,18 @@ hledger help options:
|
||||
|
||||
_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.
|
||||
(to prevent this, insert a `--` argument before.)
|
||||
(To prevent this, insert a `--` argument before.)
|
||||
|
||||
# keys
|
||||
# KEYS
|
||||
|
||||
`?` shows a help dialog listing all keys.
|
||||
(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.
|
||||
the following keys work on most screens:
|
||||
(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.
|
||||
The following keys work on most screens:
|
||||
|
||||
the cursor keys navigate:
|
||||
The cursor keys navigate:
|
||||
`right` (or `enter`) goes deeper,
|
||||
`left` returns to the previous screen,
|
||||
`up`/`down`/`page up`/`page down`/`home`/`end` move up and 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.
|
||||
(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).
|
||||
`shift-down/up` steps downward and upward through these standard report period durations:
|
||||
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.
|
||||
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 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,
|
||||
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);
|
||||
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).
|
||||
`backspace` or `delete` removes all filters, showing all transactions.
|
||||
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.
|
||||
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.
|
||||
|
||||
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
|
||||
transactions generated by rule. `f` toggles forecast mode, in which
|
||||
future/forecasted transactions are shown. *(experimental)*
|
||||
transactions generated by rule. `F` toggles forecast mode, in which
|
||||
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.
|
||||
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).
|
||||
|
||||
`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.
|
||||
disabling balance assertions temporarily can be useful for troubleshooting.
|
||||
`I` toggles balance assertion checking.
|
||||
Disabling balance assertions temporarily can be useful for troubleshooting.
|
||||
|
||||
`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.
|
||||
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.
|
||||
with some editors (emacs, vi), the cursor will be positioned at the current transaction
|
||||
`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
|
||||
when invoked from the register and transaction screens, and at the error location (if possible)
|
||||
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
|
||||
[`-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
|
||||
[`-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.
|
||||
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,
|
||||
[`-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.
|
||||
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,
|
||||
go to the accounts or register screen,
|
||||
press `/`,
|
||||
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.
|
||||
|
||||
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,
|
||||
the `b`/`v` keys will stop working.
|
||||
to work around, press g to force a manual reload, or exit the transaction screen.
|
||||
the `B`/`V` keys will stop working.
|
||||
To work around, press `g` to force a manual reload, or exit the transaction screen.
|
||||
|
||||
`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.
|
||||
it lists accounts and their balances, like hledger's balance command.
|
||||
by default, it shows all accounts and their latest ending balances (including the balances of subaccounts).
|
||||
if you specify a query on the command line, it shows just the matched accounts and the balances from matched transactions.
|
||||
This is normally the first screen displayed.
|
||||
It lists accounts and their balances, like hledger's balance command.
|
||||
By default, it shows all accounts and their latest ending balances (including the balances of subaccounts).
|
||||
If you specify a query on the command line, it shows just 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.
|
||||
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_
|
||||
% _monthyear_
|
||||
|
||||
@ -6,7 +6,7 @@ _man_({{
|
||||
# NAME
|
||||
}})
|
||||
|
||||
hledger-web - web interface for the hledger accounting tool
|
||||
A web interface (WUI) for the hledger accounting tool.
|
||||
|
||||
_man_({{
|
||||
# SYNOPSIS
|
||||
|
@ -156,6 +156,7 @@ builtinCommands = [
|
||||
--
|
||||
commandsList :: String -> [String] -> [String]
|
||||
commandsList progversion othercmds = [
|
||||
-- keep synced with hledger.m4.md -> Commands -->
|
||||
"-------------------------------------------------------------------------------"
|
||||
,progversion
|
||||
,"Usage: hledger COMMAND [OPTIONS] [-- ADDONCMDOPTIONS]"
|
||||
|
@ -32,6 +32,11 @@ transactions shown.
|
||||
Transactions making a net change of zero are not shown by default;
|
||||
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
|
||||
|
||||
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
|
||||
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:
|
||||
|
||||
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.
|
||||
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:
|
||||
|
||||
### Classic balance report
|
||||
@ -570,10 +576,3 @@ Budget performance in 2019/01:
|
||||
|| 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 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
|
||||
["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
|
||||
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
|
||||
useful output in form of unified diff.
|
||||
@ -123,7 +123,7 @@ See also:
|
||||
|
||||
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,
|
||||
but with these differences:
|
||||
|
@ -1,4 +1,4 @@
|
||||
% hledger(1) hledger _version_
|
||||
% hledger(1)
|
||||
% _author_
|
||||
% _monthyear_
|
||||
|
||||
@ -17,16 +17,18 @@ _man_({{
|
||||
# NAME
|
||||
}})
|
||||
|
||||
hledger - a command-line accounting tool
|
||||
A command-line accounting tool for both power users and folks new to accounting.
|
||||
|
||||
_man_({{
|
||||
# SYNOPSIS
|
||||
}})
|
||||
|
||||
`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
|
||||
`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
|
||||
`hledger`
|
||||
|
||||
`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`
|
||||
|
||||
`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`
|
||||
|
||||
_man_({{
|
||||
# DESCRIPTION
|
||||
}})
|
||||
@ -1571,185 +1573,122 @@ Related:
|
||||
|
||||
# COMMANDS
|
||||
|
||||
hledger provides a number of subcommands; `hledger` with no arguments
|
||||
shows a list.
|
||||
hledger provides a number of commands for producing reports and managing your data.
|
||||
Run `hledger` with no arguments to list the commands available.
|
||||
|
||||
If you install additional `hledger-*` packages, or if you put programs
|
||||
or scripts named `hledger-NAME` in your PATH, these will also be
|
||||
listed as subcommands.
|
||||
To run a command, write its name (or its abbreviation shown in the commands list,
|
||||
or any unambiguous prefix of the name) as hledger's first argument.
|
||||
Eg: `hledger balance` or `hledger bal`.
|
||||
|
||||
Run a subcommand by writing its name as first argument (eg `hledger
|
||||
incomestatement`). You can also write one of the standard short aliases
|
||||
displayed in parentheses in the command list (`hledger b`), or any
|
||||
any unambiguous prefix of a command name (`hledger inc`).
|
||||
m4_dnl XXX maybe later
|
||||
m4_dnl Each command's detailed docs are available :
|
||||
m4_dnl
|
||||
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.
|
||||
See also `hledger` for a more organised command list,
|
||||
and `hledger CMD -h` for detailed command help.
|
||||
Here are the built-in commands:
|
||||
<!-- keep synced with Hledger.Cli.Commands.commandsList -->
|
||||
|
||||
## 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
|
||||
|
||||
_include_({{Hledger/Cli/Commands/Balancesheet.md}})
|
||||
|
||||
## balancesheetequity
|
||||
|
||||
_include_({{Hledger/Cli/Commands/Balancesheetequity.md}})
|
||||
|
||||
## cashflow
|
||||
|
||||
_include_({{Hledger/Cli/Commands/Cashflow.md}})
|
||||
|
||||
## check
|
||||
|
||||
_include_({{Hledger/Cli/Commands/Check.md}})
|
||||
|
||||
## close
|
||||
|
||||
_include_({{Hledger/Cli/Commands/Close.md}})
|
||||
|
||||
## codes
|
||||
|
||||
_include_({{Hledger/Cli/Commands/Codes.md}})
|
||||
|
||||
## commodities
|
||||
|
||||
_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 commandnameheading: Commandmdfile:
|
||||
_command_({{## accounts}} ,{{Accounts}})
|
||||
_command_({{## activity}} ,{{Activity}})
|
||||
_command_({{## add}} ,{{Add}})
|
||||
_command_({{## aregister}} ,{{Aregister}})
|
||||
_command_({{## balance}} ,{{Balance}})
|
||||
_command_({{## balancesheet}} ,{{Balancesheet}})
|
||||
_command_({{## balancesheetequity}} ,{{Balancesheetequity}})
|
||||
_command_({{## cashflow}} ,{{Cashflow}})
|
||||
_command_({{## check}} ,{{Check}})
|
||||
_command_({{## close}} ,{{Close}})
|
||||
_command_({{## codes}} ,{{Codes}})
|
||||
_command_({{## commodities}} ,{{Commodities}})
|
||||
_command_({{## descriptions}} ,{{Descriptions}})
|
||||
_command_({{## diff}} ,{{Diff}})
|
||||
_command_({{## files}} ,{{Files}})
|
||||
_command_({{## help}} ,{{Help}})
|
||||
_command_({{## import}} ,{{Import}})
|
||||
_command_({{## incomestatement}} ,{{Incomestatement}})
|
||||
_command_({{## notes}} ,{{Notes}})
|
||||
_command_({{## rewrite}} ,{{Rewrite}})
|
||||
_command_({{## roi}} ,{{Roi}})
|
||||
_command_({{## stats}} ,{{Stats}})
|
||||
_command_({{## tags}} ,{{Tags}})
|
||||
_command_({{## test}} ,{{Test}})
|
||||
|
||||
m4_dnl }})
|
||||
|
||||
## Add-on commands
|
||||
|
||||
hledger also searches for external add-on commands, and will include these in the commands list.
|
||||
These are programs or scripts in your PATH whose name starts with `hledger-`
|
||||
and ends with a recognised file extension
|
||||
(currently: no extension, `bat`,`com`,`exe`, `hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
|
||||
Any programs or scripts in your PATH named named `hledger-SOMETHING`
|
||||
will also appear in the commands list (with a `+` mark).
|
||||
These are called add-on commands.
|
||||
|
||||
Add-ons can be invoked like any hledger command, but there are a few things to be aware of.
|
||||
Eg if the `hledger-web` add-on is installed,
|
||||
These offical add-ons are maintained and released along with hledger:
|
||||
|
||||
- `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.
|
||||
So `hledger web --serve --port 9000` will be rejected; you must use `hledger web -- --serve --port 9000`.
|
||||
These add-ons are maintained separately:
|
||||
|
||||
- You can always run add-ons directly if preferred: `hledger-web --serve --port 9000`.
|
||||
|
||||
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 (and haskell) library functions that built-in commands do,
|
||||
for command-line options, journal parsing, reporting, etc.
|
||||
|
||||
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.
|
||||
- [iadd](http://hackage.haskell.org/package/hledger-iadd)
|
||||
a more interactive alternative for the [add](hledger.html#add) command
|
||||
- [interest](http://hackage.haskell.org/package/hledger-interest)
|
||||
generates interest transactions according to various schemes
|
||||
- [stockquotes](http://hackage.haskell.org/package/hledger-stockquotes)
|
||||
downloads market prices for your commodities from AlphaVantage *(experimental)*
|
||||
|
||||
<!-- ### autosync -->
|
||||
|
||||
@ -1760,14 +1699,43 @@ generates interest transactions for an account according to various schemes.
|
||||
<!-- and can also download the data -->
|
||||
<!-- [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)
|
||||
downloads market prices for the commodities in your journal from AlphaVantage.
|
||||
## Add-on command flags
|
||||
|
||||
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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user