From 67230256071060560e64d464cad2344bbb4392c8 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Tue, 8 Dec 2020 20:10:54 -0800 Subject: [PATCH] ;update manuals --- hledger-lib/hledger_csv.5 | 6 +- hledger-lib/hledger_csv.info | 437 ++++++----- hledger-lib/hledger_csv.txt | 9 +- hledger-lib/hledger_journal.5 | 6 +- hledger-lib/hledger_journal.info | 624 ++++++++-------- hledger-lib/hledger_journal.txt | 9 +- hledger-lib/hledger_timeclock.5 | 6 +- hledger-lib/hledger_timeclock.txt | 9 +- hledger-lib/hledger_timedot.5 | 6 +- hledger-lib/hledger_timedot.txt | 9 +- hledger-ui/hledger-ui.1 | 6 +- hledger-ui/hledger-ui.info | 87 ++- hledger-ui/hledger-ui.txt | 9 +- hledger-web/hledger-web.1 | 6 +- hledger-web/hledger-web.txt | 9 +- hledger/hledger.1 | 31 +- hledger/hledger.info | 1131 +++++++++++++++-------------- hledger/hledger.txt | 81 ++- 18 files changed, 1242 insertions(+), 1239 deletions(-) diff --git a/hledger-lib/hledger_csv.5 b/hledger-lib/hledger_csv.5 index c92763f57..ec0df6c1b 100644 --- a/hledger-lib/hledger_csv.5 +++ b/hledger-lib/hledger_csv.5 @@ -1290,13 +1290,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger-lib/hledger_csv.info b/hledger-lib/hledger_csv.info index a4082fe46..45892bfe2 100644 --- a/hledger-lib/hledger_csv.info +++ b/hledger-lib/hledger_csv.info @@ -60,11 +60,37 @@ below. * Menu: * EXAMPLES:: +* Basic:: +* Bank of Ireland:: +* Amazon:: +* Paypal:: * CSV RULES:: +* skip:: +* fields:: +* field assignment:: +* separator:: +* if block:: +* if table:: +* end:: +* date-format:: +* decimal-mark:: +* newest-first:: +* include:: +* balance-type:: * TIPS:: +* Rapid feedback:: +* Valid CSV:: +* File Extension:: +* Reading multiple CSV files:: +* Valid transactions:: +* Deduplicating importing:: +* Setting amounts:: +* Setting currency/commodity:: +* Referencing other fields:: +* How CSV rules are evaluated::  -File: hledger_csv.info, Node: EXAMPLES, Next: CSV RULES, Prev: Top, Up: Top +File: hledger_csv.info, Node: EXAMPLES, Next: Basic, Prev: Top, Up: Top 1 EXAMPLES ********** @@ -73,18 +99,11 @@ Here are some sample hledger CSV rules files. See also the full collection at: https://github.com/simonmichael/hledger/tree/master/examples/csv -* Menu: - -* Basic:: -* Bank of Ireland:: -* Amazon:: -* Paypal:: -  -File: hledger_csv.info, Node: Basic, Next: Bank of Ireland, Up: EXAMPLES +File: hledger_csv.info, Node: Basic, Next: Bank of Ireland, Prev: EXAMPLES, Up: Top -1.1 Basic -========= +2 Basic +******* At minimum, the rules file must identify the date and amount fields, and often it also specifies the date format and how many header lines there @@ -106,10 +125,10 @@ $ hledger print -f basic.csv Default account names are chosen, since we didn't set them.  -File: hledger_csv.info, Node: Bank of Ireland, Next: Amazon, Prev: Basic, Up: EXAMPLES +File: hledger_csv.info, Node: Bank of Ireland, Next: Amazon, Prev: Basic, Up: Top -1.2 Bank of Ireland -=================== +3 Bank of Ireland +***************** Here's a CSV with two amount fields (Debit and Credit), and a balance field, which we can use to add balance assertions, which is not @@ -159,10 +178,10 @@ reading directly from CSV, but they will be checked if these entries are imported into a journal file.  -File: hledger_csv.info, Node: Amazon, Next: Paypal, Prev: Bank of Ireland, Up: EXAMPLES +File: hledger_csv.info, Node: Amazon, Next: Paypal, Prev: Bank of Ireland, Up: Top -1.3 Amazon -========== +4 Amazon +******** Here we convert amazon.com order history, and use an if block to generate a third posting if there's a fee. (In practice you'd probably @@ -217,10 +236,10 @@ $ hledger -f amazon-orders.csv print expenses:fees $1.00  -File: hledger_csv.info, Node: Paypal, Prev: Amazon, Up: EXAMPLES +File: hledger_csv.info, Node: Paypal, Next: CSV RULES, Prev: Amazon, Up: Top -1.4 Paypal -========== +5 Paypal +******** Here's a real-world rules file for (customised) Paypal CSV, with some Paypal-specific rules, and a second rules file included: @@ -371,34 +390,19 @@ $ hledger -f paypal-custom.csv print expenses:banking:paypal $0.59 ; business:  -File: hledger_csv.info, Node: CSV RULES, Next: TIPS, Prev: EXAMPLES, Up: Top +File: hledger_csv.info, Node: CSV RULES, Next: skip, Prev: Paypal, Up: Top -2 CSV RULES +6 CSV RULES *********** The following kinds of rule can appear in the rules file, in any order. Blank lines and lines beginning with '#' or ';' are ignored. -* Menu: - -* skip:: -* fields:: -* field assignment:: -* separator:: -* if block:: -* if table:: -* end:: -* date-format:: -* decimal-mark:: -* newest-first:: -* include:: -* balance-type:: -  -File: hledger_csv.info, Node: skip, Next: fields, Up: CSV RULES +File: hledger_csv.info, Node: skip, Next: fields, Prev: CSV RULES, Up: Top -2.1 'skip' -========== +7 'skip' +******** skip N @@ -411,10 +415,10 @@ whenever your CSV data contains header lines. ignore certain CSV records (described below).  -File: hledger_csv.info, Node: fields, Next: field assignment, Prev: skip, Up: CSV RULES +File: hledger_csv.info, Node: fields, Next: field assignment, Prev: skip, Up: Top -2.2 'fields' -============ +8 'fields' +********** fields FIELDNAME1, FIELDNAME2, ... @@ -453,8 +457,8 @@ journal format.  File: hledger_csv.info, Node: Transaction field names, Next: Posting field names, Up: fields -2.2.1 Transaction field names ------------------------------ +8.1 Transaction field names +=========================== 'date', 'date2', 'status', 'code', 'description', 'comment' can be used to form the transaction's first line. @@ -462,8 +466,8 @@ to form the transaction's first line.  File: hledger_csv.info, Node: Posting field names, Prev: Transaction field names, Up: fields -2.2.2 Posting field names -------------------------- +8.2 Posting field names +======================= * Menu: @@ -476,8 +480,8 @@ File: hledger_csv.info, Node: Posting field names, Prev: Transaction field nam  File: hledger_csv.info, Node: account, Next: amount, Up: Posting field names -2.2.2.1 account -............... +8.2.1 account +------------- 'accountN', where N is 1 to 99, causes a posting to be generated, with that account name. @@ -494,8 +498,8 @@ or "income:unknown").  File: hledger_csv.info, Node: amount, Next: currency, Prev: account, Up: Posting field names -2.2.2.2 amount -.............. +8.2.2 amount +------------ 'amountN' sets posting N's amount. If the CSV uses separate fields for inflows and outflows, you can use 'amountN-in' and 'amountN-out' @@ -521,8 +525,8 @@ avoiding conflicts.  File: hledger_csv.info, Node: currency, Next: balance, Prev: amount, Up: Posting field names -2.2.2.3 currency -................ +8.2.3 currency +-------------- If the CSV has the currency symbol in a separate field (ie, not part of the amount field), you can use 'currencyN' to prepend it to posting N's @@ -531,8 +535,8 @@ amount. Or, 'currency' with no number affects all postings.  File: hledger_csv.info, Node: balance, Next: comment, Prev: currency, Up: Posting field names -2.2.2.4 balance -............... +8.2.4 balance +------------- 'balanceN' sets a balance assertion amount (or if the posting amount is left empty, a balance assignment) on posting N. @@ -546,8 +550,8 @@ is equivalent to 'balance1'.  File: hledger_csv.info, Node: comment, Prev: balance, Up: Posting field names -2.2.2.5 comment -............... +8.2.5 comment +------------- Finally, 'commentN' sets a comment on the Nth posting. Comments can also contain tags, as usual. @@ -555,10 +559,10 @@ also contain tags, as usual. See TIPS below for more about setting amounts and currency.  -File: hledger_csv.info, Node: field assignment, Next: separator, Prev: fields, Up: CSV RULES +File: hledger_csv.info, Node: field assignment, Next: separator, Prev: fields, Up: Top -2.3 field assignment -==================== +9 field assignment +****************** HLEDGERFIELDNAME FIELDVALUE @@ -580,10 +584,10 @@ becomes '1' when interpolated) (#1051). See TIPS below for more about referencing other fields.  -File: hledger_csv.info, Node: separator, Next: if block, Prev: field assignment, Up: CSV RULES +File: hledger_csv.info, Node: separator, Next: if block, Prev: field assignment, Up: Top -2.4 'separator' -=============== +10 'separator' +************** You can use the 'separator' rule to read other kinds of character-separated data. The argument is any single separator @@ -605,10 +609,10 @@ separator TAB inferred automatically, and you won't need this rule.  -File: hledger_csv.info, Node: if block, Next: if table, Prev: separator, Up: CSV RULES +File: hledger_csv.info, Node: if block, Next: if table, Prev: separator, Up: Top -2.5 'if' block -============== +11 'if' block +************* if MATCHER RULE @@ -635,8 +639,8 @@ descriptions.  File: hledger_csv.info, Node: Matching the whole record, Next: Matching individual fields, Up: if block -2.5.1 Matching the whole record -------------------------------- +11.1 Matching the whole record +============================== Each MATCHER can be a record matcher, which looks like this: @@ -658,8 +662,8 @@ actually see '2020-01-01,Acme, Inc., 1,000').  File: hledger_csv.info, Node: Matching individual fields, Next: Combining matchers, Prev: Matching the whole record, Up: if block -2.5.2 Matching individual fields --------------------------------- +11.2 Matching individual fields +=============================== Or, MATCHER can be a field matcher, like this: @@ -672,8 +676,8 @@ is a percent sign followed by the field's name or column number, like  File: hledger_csv.info, Node: Combining matchers, Next: Rules applied on successful match, Prev: Matching individual fields, Up: if block -2.5.3 Combining matchers ------------------------- +11.3 Combining matchers +======================= A single matcher can be written on the same line as the "if"; or multiple matchers can be written on the following lines, non-indented. @@ -689,8 +693,8 @@ MATCHER  File: hledger_csv.info, Node: Rules applied on successful match, Prev: Combining matchers, Up: if block -2.5.4 Rules applied on successful match ---------------------------------------- +11.4 Rules applied on successful match +====================================== After the patterns there should be one or more rules to apply, all indented by at least one space. Three kinds of rule are allowed in @@ -715,10 +719,10 @@ banking thru software comment XXX deductible ? check it  -File: hledger_csv.info, Node: if table, Next: end, Prev: if block, Up: CSV RULES +File: hledger_csv.info, Node: if table, Next: end, Prev: if block, Up: Top -2.6 'if' table -============== +12 'if' table +************* if,CSVFIELDNAME1,CSVFIELDNAME2,...,CSVFIELDNAMEn MATCHER1,VALUE11,VALUE12,...,VALUE1n @@ -776,10 +780,10 @@ atm transaction fee,expenses:business:banking,deductible? check it 2020/01/12.*Plumbing LLC,expenses:house:upkeep,emergency plumbing call-out  -File: hledger_csv.info, Node: end, Next: date-format, Prev: if table, Up: CSV RULES +File: hledger_csv.info, Node: end, Next: date-format, Prev: if table, Up: Top -2.7 'end' -========= +13 'end' +******** This rule can be used inside if blocks (only), to make hledger stop reading this CSV file and move on to the next input file, or to command @@ -790,10 +794,10 @@ if ,,,, end  -File: hledger_csv.info, Node: date-format, Next: decimal-mark, Prev: end, Up: CSV RULES +File: hledger_csv.info, Node: date-format, Next: decimal-mark, Prev: end, Up: Top -2.8 'date-format' -================= +14 'date-format' +**************** date-format DATEFMT @@ -821,10 +825,10 @@ date-format %-m/%-d/%Y %l:%M %p some other junk https://hackage.haskell.org/package/time/docs/Data-Time-Format.html#v:formatTime  -File: hledger_csv.info, Node: decimal-mark, Next: newest-first, Prev: date-format, Up: CSV RULES +File: hledger_csv.info, Node: decimal-mark, Next: newest-first, Prev: date-format, Up: Top -2.9 'decimal-mark' -================== +15 'decimal-mark' +***************** decimal-mark . @@ -839,10 +843,10 @@ should declare the decimal mark explicitly with this rule, to avoid misparsed numbers.  -File: hledger_csv.info, Node: newest-first, Next: include, Prev: decimal-mark, Up: CSV RULES +File: hledger_csv.info, Node: newest-first, Next: include, Prev: decimal-mark, Up: Top -2.10 'newest-first' -=================== +16 'newest-first' +***************** hledger always sorts the generated transactions by date. Transactions on the same date should appear in the same order as their CSV records, @@ -861,10 +865,10 @@ oldest first or newest first. But if all of the following are true: newest-first  -File: hledger_csv.info, Node: include, Next: balance-type, Prev: newest-first, Up: CSV RULES +File: hledger_csv.info, Node: include, Next: balance-type, Prev: newest-first, Up: Top -2.11 'include' -============== +17 'include' +************ include RULESFILE @@ -875,19 +879,19 @@ several rules files, eg: # someaccount.csv.rules -## someaccount-specific rules +# someaccount-specific rules fields date,description,amount account1 assets:someaccount account2 expenses:misc -## common rules +# common rules include categorisation.rules  -File: hledger_csv.info, Node: balance-type, Prev: include, Up: CSV RULES +File: hledger_csv.info, Node: balance-type, Next: TIPS, Prev: include, Up: Top -2.12 'balance-type' -=================== +18 'balance-type' +***************** Balance assertions generated by assigning to balanceN are of the simple '=' type by default, which is a single-commodity, subaccount-excluding @@ -907,29 +911,16 @@ balance-type ==* ==* multi commodity, include subaccounts  -File: hledger_csv.info, Node: TIPS, Prev: CSV RULES, Up: Top +File: hledger_csv.info, Node: TIPS, Next: Rapid feedback, Prev: balance-type, Up: Top -3 TIPS -****** - -* Menu: - -* Rapid feedback:: -* Valid CSV:: -* File Extension:: -* Reading multiple CSV files:: -* Valid transactions:: -* Deduplicating importing:: -* Setting amounts:: -* Setting currency/commodity:: -* Referencing other fields:: -* How CSV rules are evaluated:: +19 TIPS +*******  -File: hledger_csv.info, Node: Rapid feedback, Next: Valid CSV, Up: TIPS +File: hledger_csv.info, Node: Rapid feedback, Next: Valid CSV, Prev: TIPS, Up: Top -3.1 Rapid feedback -================== +20 Rapid feedback +***************** It's a good idea to get rapid feedback while creating/troubleshooting CSV rules. Here's a good way, using entr from @@ -943,10 +934,10 @@ a separator each time the command re-runs, making it easier to read the output.  -File: hledger_csv.info, Node: Valid CSV, Next: File Extension, Prev: Rapid feedback, Up: TIPS +File: hledger_csv.info, Node: Valid CSV, Next: File Extension, Prev: Rapid feedback, Up: Top -3.2 Valid CSV -============= +21 Valid CSV +************ hledger accepts CSV conforming to RFC 4180. When CSV values are enclosed in quotes, note: @@ -955,10 +946,10 @@ enclosed in quotes, note: * spaces outside the quotes are not allowed  -File: hledger_csv.info, Node: File Extension, Next: Reading multiple CSV files, Prev: Valid CSV, Up: TIPS +File: hledger_csv.info, Node: File Extension, Next: Reading multiple CSV files, Prev: Valid CSV, Up: Top -3.3 File Extension -================== +22 File Extension +***************** To help hledger identify the format and show the right error messages, CSV/SSV/TSV files should normally be named with a '.csv', '.ssv' or @@ -975,10 +966,10 @@ $ cat foo | hledger -f ssv:- foo See also: Input files in the hledger manual.  -File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid transactions, Prev: File Extension, Up: TIPS +File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid transactions, Prev: File Extension, Up: Top -3.4 Reading multiple CSV files -============================== +23 Reading multiple CSV files +***************************** If you use multiple '-f' options to read multiple CSV files at once, hledger will look for a correspondingly-named rules file for each CSV @@ -986,10 +977,10 @@ file. But if you use the '--rules-file' option, that rules file will be used for all the CSV files.  -File: hledger_csv.info, Node: Valid transactions, Next: Deduplicating importing, Prev: Reading multiple CSV files, Up: TIPS +File: hledger_csv.info, Node: Valid transactions, Next: Deduplicating importing, Prev: Reading multiple CSV files, Up: Top -3.5 Valid transactions -====================== +24 Valid transactions +********************* After reading a CSV file, hledger post-processes and validates the generated journal entries as it would for a journal file - balancing @@ -1005,10 +996,10 @@ assertions generated from CSV right away, pipe into another hledger: $ hledger -f file.csv print | hledger -f- print  -File: hledger_csv.info, Node: Deduplicating importing, Next: Setting amounts, Prev: Valid transactions, Up: TIPS +File: hledger_csv.info, Node: Deduplicating importing, Next: Setting amounts, Prev: Valid transactions, Up: Top -3.6 Deduplicating, importing -============================ +25 Deduplicating, importing +*************************** When you download a CSV file periodically, eg to get your latest bank transactions, the new file may overlap with the old one, containing some @@ -1035,10 +1026,10 @@ CSV data. See: * https://plaintextaccounting.org -> data import/conversion  -File: hledger_csv.info, Node: Setting amounts, Next: Setting currency/commodity, Prev: Deduplicating importing, Up: TIPS +File: hledger_csv.info, Node: Setting amounts, Next: Setting currency/commodity, Prev: Deduplicating importing, Up: Top -3.7 Setting amounts -=================== +26 Setting amounts +****************** A posting amount can be set in one of these ways: @@ -1064,10 +1055,10 @@ A posting amount can be set in one of these ways: * If an amount value begins with a plus sign, that will be removed  -File: hledger_csv.info, Node: Setting currency/commodity, Next: Referencing other fields, Prev: Setting amounts, Up: TIPS +File: hledger_csv.info, Node: Setting currency/commodity, Next: Referencing other fields, Prev: Setting amounts, Up: Top -3.8 Setting currency/commodity -============================== +27 Setting currency/commodity +***************************** If the currency/commodity symbol is included in the CSV's amount field(s): @@ -1112,10 +1103,10 @@ amount %amt %cur that would trigger the prepending effect, which we don't want here.  -File: hledger_csv.info, Node: Referencing other fields, Next: How CSV rules are evaluated, Prev: Setting currency/commodity, Up: TIPS +File: hledger_csv.info, Node: Referencing other fields, Next: How CSV rules are evaluated, Prev: Setting currency/commodity, Up: Top -3.9 Referencing other fields -============================ +28 Referencing other fields +*************************** In field assignments, you can interpolate only CSV fields, not hledger fields. In the example below, there's both a CSV field and a hledger @@ -1149,10 +1140,10 @@ if something comment C  -File: hledger_csv.info, Node: How CSV rules are evaluated, Prev: Referencing other fields, Up: TIPS +File: hledger_csv.info, Node: How CSV rules are evaluated, Prev: Referencing other fields, Up: Top -3.10 How CSV rules are evaluated -================================ +29 How CSV rules are evaluated +****************************** Here's how to think of CSV rules being evaluated (if you really need to). First, @@ -1192,86 +1183,86 @@ command the user specified.  Tag Table: Node: Top72 -Node: EXAMPLES2787 -Ref: #examples2893 -Node: Basic3101 -Ref: #basic3201 -Node: Bank of Ireland3743 -Ref: #bank-of-ireland3878 -Node: Amazon5340 -Ref: #amazon5458 -Node: Paypal7177 -Ref: #paypal7271 -Node: CSV RULES14915 -Ref: #csv-rules15024 -Node: skip15336 -Ref: #skip15429 -Node: fields15804 -Ref: #fields15926 -Node: Transaction field names17091 -Ref: #transaction-field-names17251 -Node: Posting field names17362 -Ref: #posting-field-names17514 -Node: account17584 -Ref: #account17700 -Node: amount18237 -Ref: #amount18368 -Node: currency19475 -Ref: #currency19610 -Node: balance19816 -Ref: #balance19950 -Node: comment20267 -Ref: #comment20384 -Node: field assignment20547 -Ref: #field-assignment20690 -Node: separator21508 -Ref: #separator21643 -Node: if block22183 -Ref: #if-block22308 -Node: Matching the whole record22709 -Ref: #matching-the-whole-record22884 -Node: Matching individual fields23688 -Ref: #matching-individual-fields23892 -Node: Combining matchers24116 -Ref: #combining-matchers24312 -Node: Rules applied on successful match24625 -Ref: #rules-applied-on-successful-match24816 -Node: if table25470 -Ref: #if-table25589 -Node: end27327 -Ref: #end27439 -Node: date-format27663 -Ref: #date-format27795 -Node: decimal-mark28544 -Ref: #decimal-mark28687 -Node: newest-first29026 -Ref: #newest-first29167 -Node: include29850 -Ref: #include29981 -Node: balance-type30425 -Ref: #balance-type30545 -Node: TIPS31245 -Ref: #tips31327 -Node: Rapid feedback31583 -Ref: #rapid-feedback31700 -Node: Valid CSV32160 -Ref: #valid-csv32290 -Node: File Extension32482 -Ref: #file-extension32634 -Node: Reading multiple CSV files33063 -Ref: #reading-multiple-csv-files33248 -Node: Valid transactions33489 -Ref: #valid-transactions33667 -Node: Deduplicating importing34295 -Ref: #deduplicating-importing34474 -Node: Setting amounts35507 -Ref: #setting-amounts35676 -Node: Setting currency/commodity36663 -Ref: #setting-currencycommodity36855 -Node: Referencing other fields38029 -Ref: #referencing-other-fields38229 -Node: How CSV rules are evaluated39126 -Ref: #how-csv-rules-are-evaluated39299 +Node: EXAMPLES3253 +Ref: #examples3355 +Node: Basic3501 +Ref: #basic3609 +Node: Bank of Ireland4151 +Ref: #bank-of-ireland4277 +Node: Amazon5739 +Ref: #amazon5848 +Node: Paypal7567 +Ref: #paypal7670 +Node: CSV RULES15314 +Ref: #csv-rules15421 +Node: skip15555 +Ref: #skip15656 +Node: fields16031 +Ref: #fields16143 +Node: Transaction field names17308 +Ref: #transaction-field-names17464 +Node: Posting field names17575 +Ref: #posting-field-names17723 +Node: account17793 +Ref: #account17905 +Node: amount18442 +Ref: #amount18569 +Node: currency19676 +Ref: #currency19807 +Node: balance20013 +Ref: #balance20143 +Node: comment20460 +Ref: #comment20573 +Node: field assignment20736 +Ref: #field-assignment20869 +Node: separator21687 +Ref: #separator21814 +Node: if block22354 +Ref: #if-block22471 +Node: Matching the whole record22872 +Ref: #matching-the-whole-record23045 +Node: Matching individual fields23849 +Ref: #matching-individual-fields24051 +Node: Combining matchers24275 +Ref: #combining-matchers24469 +Node: Rules applied on successful match24782 +Ref: #rules-applied-on-successful-match24971 +Node: if table25625 +Ref: #if-table25736 +Node: end27474 +Ref: #end27578 +Node: date-format27802 +Ref: #date-format27926 +Node: decimal-mark28675 +Ref: #decimal-mark28810 +Node: newest-first29149 +Ref: #newest-first29280 +Node: include29963 +Ref: #include30084 +Node: balance-type30526 +Ref: #balance-type30649 +Node: TIPS31349 +Ref: #tips31459 +Node: Rapid feedback31459 +Ref: #rapid-feedback31586 +Node: Valid CSV32046 +Ref: #valid-csv32173 +Node: File Extension32365 +Ref: #file-extension32514 +Node: Reading multiple CSV files32943 +Ref: #reading-multiple-csv-files33125 +Node: Valid transactions33366 +Ref: #valid-transactions33541 +Node: Deduplicating importing34169 +Ref: #deduplicating-importing34345 +Node: Setting amounts35378 +Ref: #setting-amounts35544 +Node: Setting currency/commodity36531 +Ref: #setting-currencycommodity36720 +Node: Referencing other fields37894 +Ref: #referencing-other-fields38091 +Node: How CSV rules are evaluated38988 +Ref: #how-csv-rules-are-evaluated39156  End Tag Table diff --git a/hledger-lib/hledger_csv.txt b/hledger-lib/hledger_csv.txt index 0ebda94a4..f8df9273b 100644 --- a/hledger-lib/hledger_csv.txt +++ b/hledger-lib/hledger_csv.txt @@ -946,16 +946,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) diff --git a/hledger-lib/hledger_journal.5 b/hledger-lib/hledger_journal.5 index 11ed9f55f..d80a8b53f 100644 --- a/hledger-lib/hledger_journal.5 +++ b/hledger-lib/hledger_journal.5 @@ -2144,13 +2144,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger-lib/hledger_journal.info b/hledger-lib/hledger_journal.info index 535cce64c..eebab1e38 100644 --- a/hledger-lib/hledger_journal.info +++ b/hledger-lib/hledger_journal.info @@ -2,7 +2,7 @@ This is hledger_journal.info, produced by makeinfo version 6.7 from stdin.  -File: hledger_journal.info, Node: Top, Up: (dir) +File: hledger_journal.info, Node: Top, Next: Transactions, Up: (dir) hledger_journal(5) hledger 1.20 ******************************* @@ -41,9 +41,24 @@ that looks unnecessary right now. * Menu: * Transactions:: +* Dates:: +* Status:: +* Description:: +* Comments:: +* Tags:: +* Postings:: +* Account names:: +* Amounts:: +* Transaction prices:: +* Lot prices and lot dates:: +* Balance assertions:: +* Balance assignments:: +* Directives:: +* Periodic transactions:: +* Auto postings::  -File: hledger_journal.info, Node: Transactions, Up: Top +File: hledger_journal.info, Node: Transactions, Next: Dates, Prev: Top, Up: Top 1 Transactions ************** @@ -71,29 +86,11 @@ optional fields, separated by spaces: assets:bank:checking $1 income:salary $-1 -* Menu: - -* Dates:: -* Status:: -* Description:: -* Comments:: -* Tags:: -* Postings:: -* Account names:: -* Amounts:: -* Transaction prices:: -* Lot prices and lot dates:: -* Balance assertions:: -* Balance assignments:: -* Directives:: -* Periodic transactions:: -* Auto postings:: -  -File: hledger_journal.info, Node: Dates, Next: Status, Up: Transactions +File: hledger_journal.info, Node: Dates, Next: Status, Prev: Transactions, Up: Top -1.1 Dates -========= +2 Dates +******* * Menu: @@ -104,8 +101,8 @@ File: hledger_journal.info, Node: Dates, Next: Status, Up: Transactions  File: hledger_journal.info, Node: Simple dates, Next: Secondary dates, Up: Dates -1.1.1 Simple dates ------------------- +2.1 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. The year may @@ -120,8 +117,8 @@ dates documented in the hledger manual.)  File: hledger_journal.info, Node: Secondary dates, Next: Posting dates, Prev: Simple dates, Up: Dates -1.1.2 Secondary dates ---------------------- +2.2 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 @@ -156,8 +153,8 @@ $ hledger register checking --date2  File: hledger_journal.info, Node: Posting dates, Prev: Secondary dates, Up: Dates -1.1.3 Posting dates -------------------- +2.3 Posting dates +================= You can give individual postings a different date from their parent transaction, by adding a posting comment containing a tag (see below) @@ -189,10 +186,10 @@ characters in this way. With this syntax, DATE infers its year from the transaction and DATE2 infers its year from DATE.  -File: hledger_journal.info, Node: Status, Next: Description, Prev: Dates, Up: Transactions +File: hledger_journal.info, Node: Status, Next: Description, Prev: Dates, Up: Top -1.2 Status -========== +3 Status +******** Transactions, or individual postings within a transaction, can have a status mark, which is a single character before the transaction @@ -239,10 +236,10 @@ your bank, '-U' to see things which will probably hit your bank soon your finances.  -File: hledger_journal.info, Node: Description, Next: Comments, Prev: Status, Up: Transactions +File: hledger_journal.info, Node: Description, Next: Comments, Prev: Status, Up: Top -1.3 Description -=============== +4 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 @@ -257,8 +254,8 @@ comments.  File: hledger_journal.info, Node: Payee and note, Up: Description -1.3.1 Payee and note --------------------- +4.1 Payee and note +================== You can optionally include a '|' (pipe) character in descriptions to subdivide the description into separate fields for payee/payer name on @@ -267,10 +264,10 @@ the left (up to the first '|') and an additional note field on the right precise querying and pivoting by payee or by note.  -File: hledger_journal.info, Node: Comments, Next: Tags, Prev: Description, Up: Transactions +File: hledger_journal.info, Node: Comments, Next: Tags, Prev: Description, Up: Top -1.4 Comments -============ +5 Comments +********** Lines in the journal beginning with a semicolon (';') or hash ('#') or star ('*') are comments, and will be ignored. (Star comments cause @@ -307,10 +304,10 @@ end comment 'end comment' directives.  -File: hledger_journal.info, Node: Tags, Next: Postings, Prev: Comments, Up: Transactions +File: hledger_journal.info, Node: Tags, Next: Postings, Prev: Comments, Up: Top -1.5 Tags -======== +6 Tags +****** Tags are a way to add extra labels or labelled data to postings and transactions, which you can then search or pivot on. @@ -350,10 +347,10 @@ example, the following transaction has three tags ('A', 'TAG2', are simple strings.  -File: hledger_journal.info, Node: Postings, Next: Account names, Prev: Tags, Up: Transactions +File: hledger_journal.info, Node: Postings, Next: Account names, Prev: Tags, Up: Top -1.6 Postings -============ +7 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 @@ -384,8 +381,8 @@ the amount, the amount will be considered part of the account name.  File: hledger_journal.info, Node: Virtual postings, Up: Postings -1.6.1 Virtual postings ----------------------- +7.1 Virtual postings +==================== A posting with a parenthesised account name is called a _virtual posting_ or _unbalanced posting_, which means it is exempt from the @@ -417,10 +414,10 @@ postings_. You can exclude virtual postings from reports with the '-R/--real' flag or 'real:1' query.  -File: hledger_journal.info, Node: Account names, Next: Amounts, Prev: Postings, Up: Transactions +File: hledger_journal.info, Node: Account names, Next: Amounts, Prev: Postings, Up: Top -1.7 Account names -================= +8 Account names +*************** Account names typically have several parts separated by a full colon, from which hledger derives a hierarchical chart of accounts. They can @@ -435,10 +432,10 @@ more spaces* (or newline). Account names can be aliased.  -File: hledger_journal.info, Node: Amounts, Next: Transaction prices, Prev: Account names, Up: Transactions +File: hledger_journal.info, Node: Amounts, Next: Transaction prices, Prev: Account names, Up: Top -1.8 Amounts -=========== +9 Amounts +********* After the account name, there is usually an amount. (Important: between account name and amount, there must be *two or more spaces*.) @@ -493,8 +490,8 @@ EUR 1E3  File: hledger_journal.info, Node: Digit group marks, Next: Commodity display style, Up: Amounts -1.8.1 Digit group marks ------------------------ +9.1 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 space, @@ -526,8 +523,8 @@ commodity 1 000 000.9455  File: hledger_journal.info, Node: Commodity display style, Next: Rounding, Prev: Digit group marks, Up: Amounts -1.8.2 Commodity display style ------------------------------ +9.2 Commodity display style +=========================== For each commodity, hledger chooses a consistent style to use when displaying amounts. (Except price amounts, which are always displayed @@ -571,8 +568,8 @@ style.  File: hledger_journal.info, Node: Rounding, Prev: Commodity display style, Up: Amounts -1.8.3 Rounding --------------- +9.3 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 @@ -582,10 +579,10 @@ places is "0"). (Guaranteed since hledger 1.17.1; in older versions this could vary if hledger was built with Decimal < 0.5.1.)  -File: hledger_journal.info, Node: Transaction prices, Next: Lot prices and lot dates, Prev: Amounts, Up: Transactions +File: hledger_journal.info, Node: Transaction prices, Next: Lot prices and lot dates, Prev: Amounts, Up: Top -1.9 Transaction prices -====================== +10 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 @@ -649,10 +646,10 @@ $ hledger bal -N --flat -B €100 assets:euros  -File: hledger_journal.info, Node: Lot prices and lot dates, Next: Balance assertions, Prev: Transaction prices, Up: Transactions +File: hledger_journal.info, Node: Lot prices and lot dates, Next: Balance assertions, Prev: Transaction prices, Up: Top -1.10 Lot prices and lot dates -============================= +11 Lot prices and lot dates +*************************** Ledger allows another kind of price, lot price (four variants: '{UNITPRICE}', '{{TOTALPRICE}}', '{=FIXEDUNITPRICE}', @@ -664,10 +661,10 @@ may appear in any order, after the posting amount and before the balance assertion if any.  -File: hledger_journal.info, Node: Balance assertions, Next: Balance assignments, Prev: Lot prices and lot dates, Up: Transactions +File: hledger_journal.info, Node: Balance assertions, Next: Balance assignments, Prev: Lot prices and lot dates, Up: Top -1.11 Balance assertions -======================= +12 Balance assertions +********************* hledger supports Ledger-style balance assertions in journal files. These look like, for example, '= EXPECTEDBALANCE' following a posting's @@ -704,8 +701,8 @@ does not disable balance assignments, below).  File: hledger_journal.info, Node: Assertions and ordering, Next: Assertions and included files, Up: Balance assertions -1.11.1 Assertions and ordering ------------------------------- +12.1 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 @@ -723,8 +720,8 @@ can assert intra-day balances.  File: hledger_journal.info, Node: Assertions and included files, Next: Assertions and multiple -f options, Prev: Assertions and ordering, Up: Balance assertions -1.11.2 Assertions and included files ------------------------------------- +12.2 Assertions and included files +================================== With included files, things are a little more complicated. Including preserves the ordering of postings and assertions. If you have multiple @@ -735,8 +732,8 @@ you'll have to put the assertion in the right file.  File: hledger_journal.info, Node: Assertions and multiple -f options, Next: Assertions and commodities, Prev: Assertions and included files, Up: Balance assertions -1.11.3 Assertions and multiple -f options ------------------------------------------ +12.3 Assertions and multiple -f options +======================================= Balance assertions don't work well across files specified with multiple -f options. Use include or concatenate the files instead. @@ -744,8 +741,8 @@ Balance assertions don't work well across files specified with multiple  File: hledger_journal.info, Node: Assertions and commodities, Next: Assertions and prices, Prev: Assertions and multiple -f options, Up: Balance assertions -1.11.4 Assertions and commodities ---------------------------------- +12.4 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 @@ -792,8 +789,8 @@ commodity into its own subaccount:  File: hledger_journal.info, Node: Assertions and prices, Next: Assertions and subaccounts, Prev: Assertions and commodities, Up: Balance assertions -1.11.5 Assertions and prices ----------------------------- +12.5 Assertions and prices +========================== Balance assertions ignore transaction prices, and should normally be written without one: @@ -810,8 +807,8 @@ _assignments_ do use them (see below).  File: hledger_journal.info, Node: Assertions and subaccounts, Next: Assertions and virtual postings, Prev: Assertions and prices, Up: Balance assertions -1.11.6 Assertions and subaccounts ---------------------------------- +12.6 Assertions and subaccounts +=============================== The balance assertions above ('=' and '==') do not count the balance from subaccounts; they check the account's exclusive balance only. You @@ -827,8 +824,8 @@ eg:  File: hledger_journal.info, Node: Assertions and virtual postings, Next: Assertions and precision, Prev: Assertions and subaccounts, Up: Balance assertions -1.11.7 Assertions and virtual postings --------------------------------------- +12.7 Assertions and virtual postings +==================================== Balance assertions are checked against all postings, both real and virtual. They are not affected by the '--real/-R' flag or 'real:' @@ -837,8 +834,8 @@ query.  File: hledger_journal.info, Node: Assertions and precision, Prev: Assertions and virtual postings, Up: Balance assertions -1.11.8 Assertions and precision -------------------------------- +12.8 Assertions and precision +============================= Balance assertions compare the exactly calculated amounts, which are not always what is shown by reports. Eg a commodity directive may limit the @@ -846,10 +843,10 @@ display precision, but this will not affect balance assertions. Balance assertion failure messages show exact amounts.  -File: hledger_journal.info, Node: Balance assignments, Next: Directives, Prev: Balance assertions, Up: Transactions +File: hledger_journal.info, Node: Balance assignments, Next: Directives, Prev: Balance assertions, Up: Top -1.12 Balance assignments -======================== +13 Balance assignments +********************** Ledger-style balance assignments are also supported. These are like balance assertions, but with no posting amount on the left side of the @@ -885,8 +882,8 @@ hledger or do the calculations yourself, instead of just reading it.  File: hledger_journal.info, Node: Balance assignments and prices, Up: Balance assignments -1.12.1 Balance assignments and prices -------------------------------------- +13.1 Balance assignments and prices +=================================== A transaction price in a balance assignment will cause the calculated amount to have that price attached: @@ -899,10 +896,10 @@ $ hledger print --explicit (a) $1 @ €2 = $1 @ €2  -File: hledger_journal.info, Node: Directives, Next: Periodic transactions, Prev: Balance assignments, Up: Transactions +File: hledger_journal.info, Node: Directives, Next: Periodic transactions, Prev: Balance assignments, Up: Top -1.13 Directives -=============== +14 Directives +************* A directive is a line in the journal beginning with a special keyword, that influences how the journal is processed. hledger's directives are @@ -1002,8 +999,8 @@ they affect, and whether they are focussed on input (parsing) or output  File: hledger_journal.info, Node: Directives and multiple files, Next: Comment blocks, Up: Directives -1.13.1 Directives and multiple files ------------------------------------- +14.1 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 @@ -1022,8 +1019,8 @@ directives do not affect parent or sibling files (see below).  File: hledger_journal.info, Node: Comment blocks, Next: Including other files, Prev: Directives and multiple files, Up: Directives -1.13.2 Comment blocks ---------------------- +14.2 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 @@ -1032,8 +1029,8 @@ file) ends it. See also comments.  File: hledger_journal.info, Node: Including other files, Next: Default year, Prev: Comment blocks, Up: Directives -1.13.3 Including other files ----------------------------- +14.3 Including other files +========================== You can pull in the content of additional files by writing an include directive, like this: @@ -1063,8 +1060,8 @@ files): 'include timedot:~/notes/2020*.md'.  File: hledger_journal.info, Node: Default year, Next: Declaring commodities, Prev: Including other files, Up: Directives -1.13.4 Default year -------------------- +14.4 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. @@ -1089,8 +1086,8 @@ Y2010 ; change default year to 2010  File: hledger_journal.info, Node: Declaring commodities, Next: Default commodity, Prev: Default year, Up: Directives -1.13.5 Declaring commodities ----------------------------- +14.5 Declaring commodities +========================== The 'commodity' directive has several functions: @@ -1146,8 +1143,8 @@ zero decimal digits is "0". (More at Commodity display style.)  File: hledger_journal.info, Node: Commodity error checking, Up: Declaring commodities -1.13.5.1 Commodity error checking -................................. +14.5.1 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 @@ -1157,8 +1154,8 @@ checking, see the notes there for more details.  File: hledger_journal.info, Node: Default commodity, Next: Declaring market prices, Prev: Declaring commodities, Up: Directives -1.13.6 Default commodity ------------------------- +14.6 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 @@ -1184,8 +1181,8 @@ D $1,000.00  File: hledger_journal.info, Node: Declaring market prices, Next: Declaring accounts, Prev: Default commodity, Up: Directives -1.13.7 Declaring market prices ------------------------------- +14.7 Declaring market prices +============================ The 'P' directive declares a market price, which is an exchange rate between two commodities on a certain date. (In Ledger, they are called @@ -1214,8 +1211,8 @@ amount values in another commodity. See Valuation.  File: hledger_journal.info, Node: Declaring accounts, Next: Rewriting accounts, Prev: Declaring market prices, Up: Directives -1.13.8 Declaring accounts -------------------------- +14.8 Declaring accounts +======================= 'account' directives can be used to declare accounts (ie, the places that amounts are transferred from and to). Though not required, these @@ -1252,8 +1249,8 @@ account assets:bank:checking  File: hledger_journal.info, Node: Account error checking, Next: Account comments, Up: Declaring accounts -1.13.8.1 Account error checking -............................... +14.8.1 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 @@ -1280,8 +1277,8 @@ been declared by an account directive. Some notes:  File: hledger_journal.info, Node: Account comments, Next: Account subdirectives, Prev: Account error checking, Up: Declaring accounts -1.13.8.2 Account comments -......................... +14.8.2 Account comments +----------------------- Comments, beginning with a semicolon, can be added: @@ -1300,8 +1297,8 @@ account assets:bank:checking ; same-line comment, note 2+ spaces before ;  File: hledger_journal.info, Node: Account subdirectives, Next: Account types, Prev: Account comments, Up: Declaring accounts -1.13.8.3 Account subdirectives -.............................. +14.8.3 Account subdirectives +---------------------------- We also allow (and ignore) Ledger-style indented subdirectives, just for compatibility.: @@ -1318,8 +1315,8 @@ account ACCTNAME [ACCTTYPE] [;COMMENT]  File: hledger_journal.info, Node: Account types, Next: Account display order, Prev: Account subdirectives, Up: Declaring accounts -1.13.8.4 Account types -...................... +14.8.4 Account types +-------------------- hledger recognises five main types of account, corresponding to the account classes in the accounting equation: @@ -1333,9 +1330,23 @@ appear in the balancesheet, balancesheetequity, incomestatement reports Additionally, we recognise the 'Cash' type, which is also an 'Asset', and which causes accounts to appear in the cashflow report. ("Cash" here means liquid assets, eg bank balances but typically not investments -or receivables.) Declaring account types Generally, to make these -reports work you should declare your top-level accounts and their types, -using account directives with 'type:' tags. +or receivables.) + +* Menu: + +* Declaring account types:: +* Auto-detected account types:: +* Interference from auto-detected account types:: +* Old account type syntax:: + + +File: hledger_journal.info, Node: Declaring account types, Next: Auto-detected account types, Up: Account types + +14.8.4.1 Declaring account types +................................ + +Generally, to make these reports work you should declare your top-level +accounts and their types, using account directives with 'type:' tags. The tag's value should be one of: 'Asset', 'Liability', 'Equity', 'Revenue', 'Expense', 'Cash', 'A', 'L', 'E', 'R', 'X', 'C' (all case @@ -1350,9 +1361,15 @@ account equity ; type: Equity account revenues ; type: Revenue account expenses ; type: Expense - 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 automatically using the following rules: + +File: hledger_journal.info, Node: Auto-detected account types, Next: Interference from auto-detected account types, Prev: Declaring account types, Up: Account types + +14.8.4.2 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 automatically +using the following rules: If name matches regular account expression: type is: @@ -1369,9 +1386,16 @@ regular expression: is: '(investment|receivable|:A/R|:fixed)' 'Cash' Even so, explicit declarations may be a good idea, for clarity and -predictability. 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 types. +predictability. + + +File: hledger_journal.info, Node: Interference from auto-detected account types, Next: Old account type syntax, Prev: Auto-detected account types, Up: Account types + +14.8.4.3 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 types. Although it's unlikely to happen in real life, here's an example: with the following journal, 'balancesheetequity' shows "liabilities" in both Liabilities and Equity sections. Declaring another account as @@ -1384,9 +1408,15 @@ account liabilities ; type:Equity liabilities 1 equity -2 - 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); this is deprecated and may be removed soon: + +File: hledger_journal.info, Node: Old account type syntax, Prev: Interference from auto-detected account types, Up: Account types + +14.8.4.4 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); +this is deprecated and may be removed soon: account assets A account liabilities L @@ -1397,8 +1427,8 @@ account expenses X  File: hledger_journal.info, Node: Account display order, Prev: Account types, Up: Declaring accounts -1.13.8.5 Account display order -.............................. +14.8.5 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 @@ -1443,8 +1473,8 @@ means:  File: hledger_journal.info, Node: Rewriting accounts, Next: Default parent account, Prev: Declaring accounts, Up: Directives -1.13.9 Rewriting accounts -------------------------- +14.9 Rewriting accounts +======================= You can define account alias rules which rewrite your account names, or parts of them, before generating reports. This can be useful for: @@ -1473,8 +1503,8 @@ hledger-web.  File: hledger_journal.info, Node: Basic aliases, Next: Regex aliases, Up: Rewriting accounts -1.13.9.1 Basic aliases -...................... +14.9.1 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 @@ -1496,8 +1526,8 @@ alias checking = assets:bank:wells fargo:checking  File: hledger_journal.info, Node: Regex aliases, Next: Combining aliases, Prev: Basic aliases, Up: Rewriting accounts -1.13.9.2 Regex aliases -...................... +14.9.2 Regex aliases +-------------------- There is also a more powerful variant that uses a regular expression, indicated by the forward slashes: @@ -1521,8 +1551,8 @@ whitespace.  File: hledger_journal.info, Node: Combining aliases, Next: Aliases and multiple files, Prev: Regex aliases, Up: Rewriting accounts -1.13.9.3 Combining aliases -.......................... +14.9.3 Combining aliases +------------------------ You can define as many aliases as you like, using journal directives and/or command line options. @@ -1558,8 +1588,8 @@ which aliases are being applied when.  File: hledger_journal.info, Node: Aliases and multiple files, Next: end aliases, Prev: Combining aliases, Up: Rewriting accounts -1.13.9.4 Aliases and multiple files -................................... +14.9.4 Aliases and multiple files +--------------------------------- As explained at Directives and multiple files, 'alias' directives do not affect parent or sibling files. Eg in this command, @@ -1590,8 +1620,8 @@ include c.journal ; also affected  File: hledger_journal.info, Node: end aliases, Prev: Aliases and multiple files, Up: Rewriting accounts -1.13.9.5 'end aliases' -...................... +14.9.5 'end aliases' +-------------------- You can clear (forget) all currently defined aliases with the 'end aliases' directive: @@ -1601,8 +1631,8 @@ end aliases  File: hledger_journal.info, Node: Default parent account, Prev: Rewriting accounts, Up: Directives -1.13.10 Default parent account ------------------------------- +14.10 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 @@ -1640,10 +1670,10 @@ If account aliases are present, they are applied after the default parent account.  -File: hledger_journal.info, Node: Periodic transactions, Next: Auto postings, Prev: Directives, Up: Transactions +File: hledger_journal.info, Node: Periodic transactions, Next: Auto postings, Prev: Directives, Up: Top -1.14 Periodic transactions -========================== +15 Periodic transactions +************************ Periodic transaction rules describe transactions that recur. They allow hledger to generate temporary future transactions to help with @@ -1687,8 +1717,8 @@ read this whole section - or at least these tips:  File: hledger_journal.info, Node: Periodic rule syntax, Next: Two spaces between period expression and description!, Up: Periodic transactions -1.14.1 Periodic rule syntax ---------------------------- +15.1 Periodic rule syntax +========================= A periodic transaction rule looks like a normal journal entry, with the date replaced by a tilde ('~') followed by a period expression @@ -1710,8 +1740,8 @@ will be relative to Y/1/1.  File: hledger_journal.info, Node: Two spaces between period expression and description!, Next: Forecasting with periodic transactions, Prev: Periodic rule syntax, Up: Periodic transactions -1.14.2 Two spaces between period expression and description! ------------------------------------------------------------- +15.2 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*. This helps hledger know @@ -1735,8 +1765,8 @@ accidentally alter their meaning, as in this example:  File: hledger_journal.info, Node: Forecasting with periodic transactions, Next: Budgeting with periodic transactions, Prev: Two spaces between period expression and description!, Up: Periodic transactions -1.14.3 Forecasting with periodic transactions ---------------------------------------------- +15.3 Forecasting with periodic transactions +=========================================== The '--forecast' flag activates any periodic transaction rules in the journal. They will generate temporary recurring transactions, which are @@ -1781,8 +1811,8 @@ examples: '--forecast=202001-202004', '--forecast=jan-',  File: hledger_journal.info, Node: Budgeting with periodic transactions, Prev: Forecasting with periodic transactions, Up: Periodic transactions -1.14.4 Budgeting with periodic transactions -------------------------------------------- +15.4 Budgeting with periodic transactions +========================================= With the '--budget' flag, currently supported by the balance command, each periodic transaction rule declares recurring budget goals for the @@ -1794,10 +1824,10 @@ compared in budget reports. See also: Budgeting and Forecasting.  -File: hledger_journal.info, Node: Auto postings, Prev: Periodic transactions, Up: Transactions +File: hledger_journal.info, Node: Auto postings, Prev: Periodic transactions, Up: Top -1.15 Auto postings -================== +16 Auto postings +**************** "Automated postings" or "auto postings" are extra postings which get added automatically to transactions which match certain queries, defined @@ -1874,8 +1904,8 @@ $ hledger print --auto  File: hledger_journal.info, Node: Auto postings and multiple files, Next: Auto postings and dates, Up: Auto postings -1.15.1 Auto postings and multiple files ---------------------------------------- +16.1 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 @@ -1884,8 +1914,8 @@ sibling files (when multiple '-f'/'--file' are used - see #1212).  File: hledger_journal.info, Node: Auto postings and dates, Next: Auto postings and transaction balancing / inferred amounts / balance assertions, Prev: Auto postings and multiple files, Up: Auto postings -1.15.2 Auto postings and dates ------------------------------- +16.2 Auto postings and dates +============================ A posting date (or secondary date) in the matched posting, or (taking precedence) a posting date in the auto posting rule itself, will also be @@ -1894,8 +1924,8 @@ used in the generated posting.  File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Next: Auto posting tags, Prev: Auto postings and dates, Up: Auto postings -1.15.3 Auto postings and transaction balancing / inferred amounts / -------------------------------------------------------------------- +16.3 Auto postings and transaction balancing / inferred amounts / +================================================================= balance assertions Currently, auto postings are added: @@ -1910,8 +1940,8 @@ for background.  File: hledger_journal.info, Node: Auto posting tags, Prev: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings -1.15.4 Auto posting tags ------------------------- +16.4 Auto posting tags +====================== Automated postings will have some extra tags: @@ -1932,130 +1962,138 @@ will have these tags added:  Tag Table: Node: Top76 -Node: Transactions1869 -Ref: #transactions1961 -Node: Dates3245 -Ref: #dates3344 -Node: Simple dates3409 -Ref: #simple-dates3535 -Node: Secondary dates4044 -Ref: #secondary-dates4198 -Node: Posting dates5534 -Ref: #posting-dates5663 -Node: Status7035 -Ref: #status7156 -Node: Description8864 -Ref: #description8998 -Node: Payee and note9318 -Ref: #payee-and-note9432 -Node: Comments9767 -Ref: #comments9893 -Node: Tags11087 -Ref: #tags11202 -Node: Postings12595 -Ref: #postings12723 -Node: Virtual postings13749 -Ref: #virtual-postings13866 -Node: Account names15171 -Ref: #account-names15312 -Node: Amounts15799 -Ref: #amounts15938 -Node: Digit group marks17062 -Ref: #digit-group-marks17213 -Node: Commodity display style18151 -Ref: #commodity-display-style18331 -Node: Rounding19874 -Ref: #rounding19998 -Node: Transaction prices20410 -Ref: #transaction-prices20582 -Node: Lot prices and lot dates23013 -Ref: #lot-prices-and-lot-dates23210 -Node: Balance assertions23698 -Ref: #balance-assertions23884 -Node: Assertions and ordering24917 -Ref: #assertions-and-ordering25105 -Node: Assertions and included files25805 -Ref: #assertions-and-included-files26048 -Node: Assertions and multiple -f options26381 -Ref: #assertions-and-multiple--f-options26637 -Node: Assertions and commodities26769 -Ref: #assertions-and-commodities27001 -Node: Assertions and prices28158 -Ref: #assertions-and-prices28372 -Node: Assertions and subaccounts28812 -Ref: #assertions-and-subaccounts29041 -Node: Assertions and virtual postings29365 -Ref: #assertions-and-virtual-postings29607 -Node: Assertions and precision29749 -Ref: #assertions-and-precision29942 -Node: Balance assignments30209 -Ref: #balance-assignments30383 -Node: Balance assignments and prices31547 -Ref: #balance-assignments-and-prices31719 -Node: Directives31943 -Ref: #directives32102 -Node: Directives and multiple files37600 -Ref: #directives-and-multiple-files37783 -Node: Comment blocks38447 -Ref: #comment-blocks38630 -Node: Including other files38806 -Ref: #including-other-files38986 -Node: Default year39910 -Ref: #default-year40079 -Node: Declaring commodities40486 -Ref: #declaring-commodities40669 -Node: Commodity error checking42513 -Ref: #commodity-error-checking42673 -Node: Default commodity42930 -Ref: #default-commodity43116 -Node: Declaring market prices44005 -Ref: #declaring-market-prices44200 -Node: Declaring accounts45057 -Ref: #declaring-accounts45243 -Node: Account error checking46445 -Ref: #account-error-checking46621 -Node: Account comments47800 -Ref: #account-comments47994 -Node: Account subdirectives48418 -Ref: #account-subdirectives48613 -Node: Account types48926 -Ref: #account-types49110 -Node: Account display order52156 -Ref: #account-display-order52326 -Node: Rewriting accounts53477 -Ref: #rewriting-accounts53662 -Node: Basic aliases54419 -Ref: #basic-aliases54565 -Node: Regex aliases55269 -Ref: #regex-aliases55441 -Node: Combining aliases56160 -Ref: #combining-aliases56353 -Node: Aliases and multiple files57629 -Ref: #aliases-and-multiple-files57838 -Node: end aliases58417 -Ref: #end-aliases58574 -Node: Default parent account58675 -Ref: #default-parent-account58843 -Node: Periodic transactions59727 -Ref: #periodic-transactions59902 -Node: Periodic rule syntax61774 -Ref: #periodic-rule-syntax61980 -Node: Two spaces between period expression and description!62684 -Ref: #two-spaces-between-period-expression-and-description63003 -Node: Forecasting with periodic transactions63687 -Ref: #forecasting-with-periodic-transactions63992 -Node: Budgeting with periodic transactions66047 -Ref: #budgeting-with-periodic-transactions66286 -Node: Auto postings66695 -Ref: #auto-postings66835 -Node: Auto postings and multiple files69014 -Ref: #auto-postings-and-multiple-files69218 -Node: Auto postings and dates69427 -Ref: #auto-postings-and-dates69701 -Node: Auto postings and transaction balancing / inferred amounts / balance assertions69876 -Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions70227 -Node: Auto posting tags70569 -Ref: #auto-posting-tags70784 +Node: Transactions2150 +Ref: #transactions2268 +Node: Dates3282 +Ref: #dates3389 +Node: Simple dates3454 +Ref: #simple-dates3576 +Node: Secondary dates4085 +Ref: #secondary-dates4235 +Node: Posting dates5571 +Ref: #posting-dates5696 +Node: Status7068 +Ref: #status7176 +Node: Description8884 +Ref: #description9005 +Node: Payee and note9325 +Ref: #payee-and-note9435 +Node: Comments9770 +Ref: #comments9883 +Node: Tags11077 +Ref: #tags11179 +Node: Postings12572 +Ref: #postings12687 +Node: Virtual postings13713 +Ref: #virtual-postings13826 +Node: Account names15131 +Ref: #account-names15259 +Node: Amounts15746 +Ref: #amounts15872 +Node: Digit group marks16996 +Ref: #digit-group-marks17143 +Node: Commodity display style18081 +Ref: #commodity-display-style18257 +Node: Rounding19800 +Ref: #rounding19920 +Node: Transaction prices20332 +Ref: #transaction-prices20493 +Node: Lot prices and lot dates22924 +Ref: #lot-prices-and-lot-dates23108 +Node: Balance assertions23596 +Ref: #balance-assertions23769 +Node: Assertions and ordering24802 +Ref: #assertions-and-ordering24986 +Node: Assertions and included files25686 +Ref: #assertions-and-included-files25925 +Node: Assertions and multiple -f options26258 +Ref: #assertions-and-multiple--f-options26510 +Node: Assertions and commodities26642 +Ref: #assertions-and-commodities26870 +Node: Assertions and prices28027 +Ref: #assertions-and-prices28237 +Node: Assertions and subaccounts28677 +Ref: #assertions-and-subaccounts28902 +Node: Assertions and virtual postings29226 +Ref: #assertions-and-virtual-postings29464 +Node: Assertions and precision29606 +Ref: #assertions-and-precision29795 +Node: Balance assignments30062 +Ref: #balance-assignments30223 +Node: Balance assignments and prices31387 +Ref: #balance-assignments-and-prices31555 +Node: Directives31779 +Ref: #directives31925 +Node: Directives and multiple files37423 +Ref: #directives-and-multiple-files37602 +Node: Comment blocks38266 +Ref: #comment-blocks38445 +Node: Including other files38621 +Ref: #including-other-files38797 +Node: Default year39721 +Ref: #default-year39886 +Node: Declaring commodities40293 +Ref: #declaring-commodities40472 +Node: Commodity error checking42316 +Ref: #commodity-error-checking42472 +Node: Default commodity42729 +Ref: #default-commodity42911 +Node: Declaring market prices43800 +Ref: #declaring-market-prices43991 +Node: Declaring accounts44848 +Ref: #declaring-accounts45030 +Node: Account error checking46232 +Ref: #account-error-checking46404 +Node: Account comments47583 +Ref: #account-comments47773 +Node: Account subdirectives48197 +Ref: #account-subdirectives48388 +Node: Account types48701 +Ref: #account-types48881 +Node: Declaring account types49617 +Ref: #declaring-account-types49802 +Node: Auto-detected account types50452 +Ref: #auto-detected-account-types50699 +Node: Interference from auto-detected account types51596 +Ref: #interference-from-auto-detected-account-types51879 +Node: Old account type syntax52362 +Ref: #old-account-type-syntax52565 +Node: Account display order52865 +Ref: #account-display-order53031 +Node: Rewriting accounts54182 +Ref: #rewriting-accounts54363 +Node: Basic aliases55120 +Ref: #basic-aliases55262 +Node: Regex aliases55966 +Ref: #regex-aliases56134 +Node: Combining aliases56853 +Ref: #combining-aliases57042 +Node: Aliases and multiple files58318 +Ref: #aliases-and-multiple-files58523 +Node: end aliases59102 +Ref: #end-aliases59255 +Node: Default parent account59356 +Ref: #default-parent-account59520 +Node: Periodic transactions60404 +Ref: #periodic-transactions60566 +Node: Periodic rule syntax62438 +Ref: #periodic-rule-syntax62640 +Node: Two spaces between period expression and description!63344 +Ref: #two-spaces-between-period-expression-and-description63659 +Node: Forecasting with periodic transactions64343 +Ref: #forecasting-with-periodic-transactions64644 +Node: Budgeting with periodic transactions66699 +Ref: #budgeting-with-periodic-transactions66934 +Node: Auto postings67343 +Ref: #auto-postings67470 +Node: Auto postings and multiple files69649 +Ref: #auto-postings-and-multiple-files69849 +Node: Auto postings and dates70058 +Ref: #auto-postings-and-dates70328 +Node: Auto postings and transaction balancing / inferred amounts / balance assertions70503 +Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions70850 +Node: Auto posting tags71192 +Ref: #auto-posting-tags71403  End Tag Table diff --git a/hledger-lib/hledger_journal.txt b/hledger-lib/hledger_journal.txt index 38e72b720..f34c8f7ed 100644 --- a/hledger-lib/hledger_journal.txt +++ b/hledger-lib/hledger_journal.txt @@ -1563,16 +1563,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) diff --git a/hledger-lib/hledger_timeclock.5 b/hledger-lib/hledger_timeclock.5 index 209c7c8ae..08e61dc88 100644 --- a/hledger-lib/hledger_timeclock.5 +++ b/hledger-lib/hledger_timeclock.5 @@ -80,13 +80,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger-lib/hledger_timeclock.txt b/hledger-lib/hledger_timeclock.txt index 0dcb5b8fe..f03b665ad 100644 --- a/hledger-lib/hledger_timeclock.txt +++ b/hledger-lib/hledger_timeclock.txt @@ -65,16 +65,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) diff --git a/hledger-lib/hledger_timedot.5 b/hledger-lib/hledger_timedot.5 index 48ff6c0fb..e287361bf 100644 --- a/hledger-lib/hledger_timedot.5 +++ b/hledger-lib/hledger_timedot.5 @@ -189,13 +189,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger-lib/hledger_timedot.txt b/hledger-lib/hledger_timedot.txt index 32a7787a5..599785671 100644 --- a/hledger-lib/hledger_timedot.txt +++ b/hledger-lib/hledger_timedot.txt @@ -148,16 +148,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) diff --git a/hledger-ui/hledger-ui.1 b/hledger-ui/hledger-ui.1 index e4d2d4444..6ea45b8e6 100644 --- a/hledger-ui/hledger-ui.1 +++ b/hledger-ui/hledger-ui.1 @@ -500,13 +500,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger-ui/hledger-ui.info b/hledger-ui/hledger-ui.info index 51af03045..0fc1c7568 100644 --- a/hledger-ui/hledger-ui.info +++ b/hledger-ui/hledger-ui.info @@ -38,6 +38,10 @@ enable "forecast mode". * OPTIONS:: * keys:: * screens:: +* accounts screen:: +* Register screen:: +* Transaction screen:: +* Error screen:: * ENVIRONMENT:: * FILES:: * BUGS:: @@ -306,23 +310,16 @@ exit the transaction screen. additional screen-specific keys are described below.  -File: hledger-ui.info, Node: screens, Next: ENVIRONMENT, Prev: keys, Up: Top +File: hledger-ui.info, Node: screens, Next: accounts screen, Prev: keys, Up: Top 3 screens ********* -* Menu: - -* accounts screen:: -* Register screen:: -* Transaction screen:: -* Error screen:: -  -File: hledger-ui.info, Node: accounts screen, Next: Register screen, Up: screens +File: hledger-ui.info, Node: accounts screen, Next: Register screen, Prev: screens, Up: Top -3.1 accounts screen -=================== +4 accounts screen +***************** this is normally the first screen displayed. it lists accounts and their balances, like hledger's balance command. by default, it shows @@ -368,10 +365,10 @@ command-line hledger). Press 'right' or 'enter' to view an account's transactions register.  -File: hledger-ui.info, Node: Register screen, Next: Transaction screen, Prev: accounts screen, Up: screens +File: hledger-ui.info, Node: Register screen, Next: Transaction screen, Prev: accounts screen, Up: Top -3.2 Register screen -=================== +5 Register screen +***************** This screen shows the transactions affecting a particular account, like a check register. Each line represents one transaction and shows: @@ -415,10 +412,10 @@ command-line hledger). detail.  -File: hledger-ui.info, Node: Transaction screen, Next: Error screen, Prev: Register screen, Up: screens +File: hledger-ui.info, Node: Transaction screen, Next: Error screen, Prev: Register screen, Up: Top -3.3 Transaction screen -====================== +6 Transaction screen +******************** This screen shows a single transaction, as a general journal entry, similar to hledger's print command and journal format @@ -439,10 +436,10 @@ unfiltered journal, which is a more stable id (at least until the next reload).  -File: hledger-ui.info, Node: Error screen, Prev: Transaction screen, Up: screens +File: hledger-ui.info, Node: Error screen, Next: ENVIRONMENT, Prev: Transaction screen, Up: Top -3.4 Error screen -================ +7 Error screen +************** This screen will appear if there is a problem, such as a parse error, when you press g to reload. Once you have fixed the problem, press g @@ -450,9 +447,9 @@ again to reload and resume normal operation. (Or, you can press escape to cancel the reload attempt.)  -File: hledger-ui.info, Node: ENVIRONMENT, Next: FILES, Prev: screens, Up: Top +File: hledger-ui.info, Node: ENVIRONMENT, Next: FILES, Prev: Error screen, Up: Top -4 ENVIRONMENT +8 ENVIRONMENT ************* *COLUMNS* The screen width to use. Default: the full terminal width. @@ -480,7 +477,7 @@ a more thorough way that also affects applications started from the GUI  File: hledger-ui.info, Node: FILES, Next: BUGS, Prev: ENVIRONMENT, Up: Top -5 FILES +9 FILES ******* Reads data from one or more files in hledger journal, timeclock, @@ -491,8 +488,8 @@ timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or  File: hledger-ui.info, Node: BUGS, Prev: FILES, Up: Top -6 BUGS -****** +10 BUGS +******* The need to precede options with '--' when invoked from hledger is awkward. @@ -519,26 +516,26 @@ program is restarted.  Tag Table: Node: Top71 -Node: OPTIONS1470 -Ref: #options1567 -Node: keys5634 -Ref: #keys5729 -Node: screens10061 -Ref: #screens10166 -Node: accounts screen10256 -Ref: #accounts-screen10384 -Node: Register screen12599 -Ref: #register-screen12754 -Node: Transaction screen14751 -Ref: #transaction-screen14909 -Node: Error screen15779 -Ref: #error-screen15901 -Node: ENVIRONMENT16145 -Ref: #environment16259 -Node: FILES17066 -Ref: #files17165 -Node: BUGS17378 -Ref: #bugs17455 +Node: OPTIONS1550 +Ref: #options1647 +Node: keys5714 +Ref: #keys5809 +Node: screens10141 +Ref: #screens10250 +Node: accounts screen10250 +Ref: #accounts-screen10386 +Node: Register screen12601 +Ref: #register-screen12748 +Node: Transaction screen14745 +Ref: #transaction-screen14895 +Node: Error screen15765 +Ref: #error-screen15899 +Node: ENVIRONMENT16143 +Ref: #environment16262 +Node: FILES17069 +Ref: #files17168 +Node: BUGS17381 +Ref: #bugs17460  End Tag Table diff --git a/hledger-ui/hledger-ui.txt b/hledger-ui/hledger-ui.txt index 888796edd..2bb26d81f 100644 --- a/hledger-ui/hledger-ui.txt +++ b/hledger-ui/hledger-ui.txt @@ -447,16 +447,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) diff --git a/hledger-web/hledger-web.1 b/hledger-web/hledger-web.1 index fccfa783c..dd13b55bc 100644 --- a/hledger-web/hledger-web.1 +++ b/hledger-web/hledger-web.1 @@ -605,13 +605,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger-web/hledger-web.txt b/hledger-web/hledger-web.txt index b2c7360b1..9c190b304 100644 --- a/hledger-web/hledger-web.txt +++ b/hledger-web/hledger-web.txt @@ -540,16 +540,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) diff --git a/hledger/hledger.1 b/hledger/hledger.1 index 54fef5513..981f8f6ce 100644 --- a/hledger/hledger.1 +++ b/hledger/hledger.1 @@ -663,9 +663,9 @@ options, run: \f[C]hledger COMMAND -h\f[R]. Command-specific options must be written after the command name, eg: \f[C]hledger print -x\f[R]. .PP -Additionally, if the command is an addon, you may need to put its +Additionally, if the command is an add-on, you may need to put its options after a double-hyphen, eg: \f[C]hledger ui -- --watch\f[R]. -Or, you can run the addon executable directly: +Or, you can run the add-on executable directly: \f[C]hledger-ui --watch\f[R]. .SS Command arguments .PP @@ -861,9 +861,10 @@ or: \f[C]hledger balance cur:\[rs]\[rs]$\f[R] .SS Even more escaping .PP -When hledger runs an addon executable (eg you type \f[C]hledger ui\f[R], -hledger runs \f[C]hledger-ui\f[R]), it de-escapes command-line options -and arguments once, so you might need to \f[I]triple\f[R]-escape. +When hledger runs an add-on executable (eg you type +\f[C]hledger ui\f[R], hledger runs \f[C]hledger-ui\f[R]), it de-escapes +command-line options and arguments once, so you might need to +\f[I]triple\f[R]-escape. Eg in bash, running the ui command and matching the dollar sign, it\[aq]s: .PP @@ -903,8 +904,8 @@ T} (The number of backslashes in fish shell is left as an exercise for the reader.) .PP -You can always avoid the extra escaping for addons by running the addon -directly: +You can always avoid the extra escaping for add-ons by running the +add-on directly: .PP \f[C]hledger-ui cur:\[rs]\[rs]$\f[R] .SS Less escaping @@ -3595,7 +3596,7 @@ the old \f[C]check-dates\f[R] command) .IP \[bu] 2 \f[B]uniqueleafnames\f[R] - all account leaf names are unique (similar to the old \f[C]check-dupes\f[R] command) -.SS Addon checks +.SS Add-on checks .PP Some checks are not yet integrated with this command, but are available as add-on commands in @@ -5026,6 +5027,10 @@ command. .PP hledger-interest generates interest transactions for an account according to various schemes. +.SS stockquotes +.PP +hledger-stockquotes downloads market prices for the commodities in your +journal from AlphaVantage. .PP A few more experimental or old add-ons can be found in hledger\[aq]s bin/ directory. @@ -5072,8 +5077,8 @@ timedot, or CSV format specified with \f[C]-f\f[R], or perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]). .SH LIMITATIONS .PP -The need to precede addon command options with \f[C]--\f[R] when invoked -from hledger is awkward. +The need to precede add-on command options with \f[C]--\f[R] when +invoked from hledger is awkward. .PP When input data contains non-ascii characters, a suitable system locale must be configured (or there will be an unhelpful error). @@ -5204,13 +5209,11 @@ Simon Michael and contributors .SH COPYRIGHT -Copyright (C) 2007-2019 Simon Michael. +Copyright (C) 2007-2020 Simon Michael. .br Released under GNU GPL v3 or later. .SH SEE ALSO -hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), +hledger(1), hledger\-ui(1), hledger\-web(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1) - -http://hledger.org diff --git a/hledger/hledger.info b/hledger/hledger.info index 0009e81f5..f7b6b3952 100644 --- a/hledger/hledger.info +++ b/hledger/hledger.info @@ -55,15 +55,72 @@ try some commands like 'hledger print' or 'hledger balance'. Run * Menu: * COMMON TASKS:: +* Getting help:: +* Constructing command lines:: +* Starting a journal file:: +* Setting opening balances:: +* Recording transactions:: +* Reconciling:: +* Reporting:: +* Migrating to a new file:: * OPTIONS:: +* General options:: +* Command options:: +* Command arguments:: +* Queries:: +* Special characters in arguments and queries:: +* Unicode characters:: +* Input files:: +* Strict mode:: +* Output destination:: +* Output format:: +* Regular expressions:: +* Smart dates:: +* Report start & end date:: +* Report intervals:: +* Period expressions:: +* Depth limiting:: +* Pivoting:: +* Valuation:: * COMMANDS:: +* accounts:: +* activity:: +* add:: +* aregister:: +* balance:: +* balancesheet:: +* balancesheetequity:: +* cashflow:: +* check:: +* close:: +* codes:: +* commodities:: +* descriptions:: +* diff:: +* files:: +* help:: +* import:: +* incomestatement:: +* notes:: +* payees:: +* prices:: +* print:: +* print-unique:: +* register:: +* register-match:: +* rewrite:: +* roi:: +* stats:: +* tags:: +* test:: +* Add-on commands:: * ENVIRONMENT:: * FILES:: * LIMITATIONS:: * TROUBLESHOOTING::  -File: hledger.info, Node: COMMON TASKS, Next: OPTIONS, Prev: Top, Up: Top +File: hledger.info, Node: COMMON TASKS, Next: Getting help, Prev: Top, Up: Top 1 COMMON TASKS ************** @@ -73,22 +130,11 @@ For more details, see the reference section below, the hledger_journal(5) manual, or the more extensive docs at https://hledger.org. -* Menu: - -* Getting help:: -* Constructing command lines:: -* Starting a journal file:: -* Setting opening balances:: -* Recording transactions:: -* Reconciling:: -* Reporting:: -* Migrating to a new file:: -  -File: hledger.info, Node: Getting help, Next: Constructing command lines, Up: COMMON TASKS +File: hledger.info, Node: Getting help, Next: Constructing command lines, Prev: COMMON TASKS, Up: Top -1.1 Getting help -================ +2 Getting help +************** $ hledger # show available commands $ hledger --help # show common options @@ -102,10 +148,10 @@ $ hledger help --help # show more detailed help for the help command https://hledger.org#help-feedback  -File: hledger.info, Node: Constructing command lines, Next: Starting a journal file, Prev: Getting help, Up: COMMON TASKS +File: hledger.info, Node: Constructing command lines, Next: Starting a journal file, Prev: Getting help, Up: Top -1.2 Constructing command lines -============================== +3 Constructing command lines +**************************** hledger has an extensive and powerful command line interface. We strive to keep it simple and ergonomic, but you may run into one of the @@ -122,10 +168,10 @@ happens, here are some tips that may help: * to see how a misbehaving command is being parsed, add '--debug=2'.  -File: hledger.info, Node: Starting a journal file, Next: Setting opening balances, Prev: Constructing command lines, Up: COMMON TASKS +File: hledger.info, Node: Starting a journal file, Next: Setting opening balances, Prev: Constructing command lines, Up: Top -1.3 Starting a journal file -=========================== +4 Starting a journal file +************************* hledger looks for your accounting data in a journal file, '$HOME/.hledger.journal' by default: @@ -161,10 +207,10 @@ Commodities : 0 () Market prices : 0 ()  -File: hledger.info, Node: Setting opening balances, Next: Recording transactions, Prev: Starting a journal file, Up: COMMON TASKS +File: hledger.info, Node: Setting opening balances, Next: Recording transactions, Prev: Starting a journal file, Up: Top -1.4 Setting opening balances -============================ +5 Setting opening balances +************************** Pick a starting date for which you can look up the balances of some real-world assets (bank accounts, wallet..) and liabilities (credit @@ -244,10 +290,10 @@ the journal. Eg: $ git commit -m 'initial balances' 2020.journal  -File: hledger.info, Node: Recording transactions, Next: Reconciling, Prev: Setting opening balances, Up: COMMON TASKS +File: hledger.info, Node: Recording transactions, Next: Reconciling, Prev: Setting opening balances, Up: Top -1.5 Recording transactions -========================== +6 Recording transactions +************************ As you spend or receive money, you can record these transactions using one of the methods above (text editor, hledger add) or by using the @@ -270,10 +316,10 @@ and hledger.org for more ideas: assets:bank:checking $1000  -File: hledger.info, Node: Reconciling, Next: Reporting, Prev: Recording transactions, Up: COMMON TASKS +File: hledger.info, Node: Reconciling, Next: Reporting, Prev: Recording transactions, Up: Top -1.6 Reconciling -=============== +7 Reconciling +************* Periodically you should reconcile - compare your hledger-reported balances against external sources of truth, like bank statements or your @@ -325,10 +371,10 @@ commit: $ git commit -m 'txns' 2020.journal  -File: hledger.info, Node: Reporting, Next: Migrating to a new file, Prev: Reconciling, Up: COMMON TASKS +File: hledger.info, Node: Reporting, Next: Migrating to a new file, Prev: Reconciling, Up: Top -1.7 Reporting -============= +8 Reporting +*********** Here are some basic reports. @@ -473,10 +519,10 @@ $ hledger activity -W 2020-01-13 ****  -File: hledger.info, Node: Migrating to a new file, Prev: Reporting, Up: COMMON TASKS +File: hledger.info, Node: Migrating to a new file, Next: OPTIONS, Prev: Reporting, Up: Top -1.8 Migrating to a new file -=========================== +9 Migrating to a new file +************************* At the end of the year, you may want to continue your journal in a new file, so that old transactions don't slow down or clutter your reports, @@ -486,37 +532,16 @@ close command. If using version control, don't forget to 'git add' the new file.  -File: hledger.info, Node: OPTIONS, Next: COMMANDS, Prev: COMMON TASKS, Up: Top +File: hledger.info, Node: OPTIONS, Next: General options, Prev: Migrating to a new file, Up: Top -2 OPTIONS -********* - -* Menu: - -* General options:: -* Command options:: -* Command arguments:: -* Queries:: -* Special characters in arguments and queries:: -* Unicode characters:: -* Input files:: -* Strict mode:: -* Output destination:: -* Output format:: -* Regular expressions:: -* Smart dates:: -* Report start & end date:: -* Report intervals:: -* Period expressions:: -* Depth limiting:: -* Pivoting:: -* Valuation:: +10 OPTIONS +**********  -File: hledger.info, Node: General options, Next: Command options, Up: OPTIONS +File: hledger.info, Node: General options, Next: Command options, Prev: OPTIONS, Up: Top -2.1 General options -=================== +11 General options +****************** To see general usage help, including general options which are supported by most hledger commands, run 'hledger -h'. @@ -652,10 +677,10 @@ the last one takes precedence. Some reporting options can also be written as query arguments.  -File: hledger.info, Node: Command options, Next: Command arguments, Prev: General options, Up: OPTIONS +File: hledger.info, Node: Command options, Next: Command arguments, Prev: General options, Up: Top -2.2 Command options -=================== +12 Command options +****************** To see options for a particular command, including command-specific options, run: 'hledger COMMAND -h'. @@ -663,15 +688,15 @@ options, run: 'hledger COMMAND -h'. Command-specific options must be written after the command name, eg: 'hledger print -x'. - Additionally, if the command is an addon, you may need to put its + Additionally, if the command is an add-on, you may need to put its options after a double-hyphen, eg: 'hledger ui -- --watch'. Or, you can -run the addon executable directly: 'hledger-ui --watch'. +run the add-on executable directly: 'hledger-ui --watch'.  -File: hledger.info, Node: Command arguments, Next: Queries, Prev: Command options, Up: OPTIONS +File: hledger.info, Node: Command arguments, Next: Queries, Prev: Command options, Up: Top -2.3 Command arguments -===================== +13 Command arguments +******************** Most hledger commands accept arguments after the command name, which are often a query, filtering the data in some way. @@ -708,10 +733,10 @@ than you would at the command prompt. Bad: See also: Save frequently used options.  -File: hledger.info, Node: Queries, Next: Special characters in arguments and queries, Prev: Command arguments, Up: OPTIONS +File: hledger.info, Node: Queries, Next: Special characters in arguments and queries, Prev: Command arguments, Up: Top -2.4 Queries -=========== +14 Queries +********** One of hledger's strengths is being able to quickly report on precise subsets of your data. Most commands accept an optional query @@ -817,10 +842,10 @@ and query arguments, and the resulting query will be their intersection (perhaps excluding the '-p/--period' option).  -File: hledger.info, Node: Special characters in arguments and queries, Next: Unicode characters, Prev: Queries, Up: OPTIONS +File: hledger.info, Node: Special characters in arguments and queries, Next: Unicode characters, Prev: Queries, Up: Top -2.5 Special characters in arguments and queries -=============================================== +15 Special characters in arguments and queries +********************************************** In shell command lines, option and argument values which contain "problematic" characters, ie spaces, and also characters significant to @@ -840,8 +865,8 @@ characters. Eg:  File: hledger.info, Node: More escaping, Next: Even more escaping, Up: Special characters in arguments and queries -2.5.1 More escaping -------------------- +15.1 More escaping +================== Characters significant both to the shell and in regular expressions may need one extra level of escaping. These include parentheses, the pipe @@ -857,13 +882,13 @@ should do:  File: hledger.info, Node: Even more escaping, Next: Less escaping, Prev: More escaping, Up: Special characters in arguments and queries -2.5.2 Even more escaping ------------------------- +15.2 Even more escaping +======================= -When hledger runs an addon executable (eg you type 'hledger ui', hledger -runs 'hledger-ui'), it de-escapes command-line options and arguments -once, so you might need to _triple_-escape. Eg in bash, running the ui -command and matching the dollar sign, it's: +When hledger runs an add-on executable (eg you type 'hledger ui', +hledger runs 'hledger-ui'), it de-escapes command-line options and +arguments once, so you might need to _triple_-escape. Eg in bash, +running the ui command and matching the dollar sign, it's: 'hledger ui cur:'\\$'' @@ -881,16 +906,16 @@ triple-escaped: '\\\\$' (The number of backslashes in fish shell is left as an exercise for the reader.) - You can always avoid the extra escaping for addons by running the -addon directly: + You can always avoid the extra escaping for add-ons by running the +add-on directly: 'hledger-ui cur:\\$'  File: hledger.info, Node: Less escaping, Prev: Even more escaping, Up: Special characters in arguments and queries -2.5.3 Less escaping -------------------- +15.3 Less escaping +================== Inside an argument file, or in the search field of hledger-ui or hledger-web, or at a GHCI prompt, you need one less level of escaping @@ -900,10 +925,10 @@ Eg: 'ghci> :main balance cur:\$'  -File: hledger.info, Node: Unicode characters, Next: Input files, Prev: Special characters in arguments and queries, Up: OPTIONS +File: hledger.info, Node: Unicode characters, Next: Input files, Prev: Special characters in arguments and queries, Up: Top -2.6 Unicode characters -====================== +16 Unicode characters +********************* hledger is expected to handle non-ascii characters correctly: @@ -939,10 +964,10 @@ hledger is expected to handle non-ascii characters correctly: terminal, and vice versa. (See eg #961).  -File: hledger.info, Node: Input files, Next: Strict mode, Prev: Unicode characters, Up: OPTIONS +File: hledger.info, Node: Input files, Next: Strict mode, Prev: Unicode characters, Up: Top -2.7 Input files -=============== +17 Input files +************** hledger reads transactions from a data file (and the add command writes to it). By default this file is '$HOME/.hledger.journal' (or on @@ -1002,10 +1027,10 @@ big journal. There are some limitations with this: a.journal b.journal | hledger -f- CMD'.  -File: hledger.info, Node: Strict mode, Next: Output destination, Prev: Input files, Up: OPTIONS +File: hledger.info, Node: Strict mode, Next: Output destination, Prev: Input files, Up: Top -2.8 Strict mode -=============== +18 Strict mode +************** hledger checks input files for valid data. By default, the most important errors are detected, while still accepting easy journal files @@ -1027,10 +1052,10 @@ without a lot of declarations: _experimental._  -File: hledger.info, Node: Output destination, Next: Output format, Prev: Strict mode, Up: OPTIONS +File: hledger.info, Node: Output destination, Next: Output format, Prev: Strict mode, Up: Top -2.9 Output destination -====================== +19 Output destination +********************* hledger commands send their output to the terminal by default. You can of course redirect this, eg into a file, using standard shell syntax: @@ -1045,10 +1070,10 @@ $ hledger print -o foo.txt $ hledger print -o - # write to stdout (the default)  -File: hledger.info, Node: Output format, Next: Regular expressions, Prev: Output destination, Up: OPTIONS +File: hledger.info, Node: Output format, Next: Regular expressions, Prev: Output destination, Up: Top -2.10 Output format -================== +20 Output format +**************** Some commands (print, register, the balance commands) offer a choice of output format. In addition to the usual plain text format ('txt'), @@ -1099,10 +1124,10 @@ $ hledger balancesheet -o foo.txt -O html # write HTML to foo.txt postings will be duped.  -File: hledger.info, Node: Regular expressions, Next: Smart dates, Prev: Output format, Up: OPTIONS +File: hledger.info, Node: Regular expressions, Next: Smart dates, Prev: Output format, Up: Top -2.11 Regular expressions -======================== +21 Regular expressions +********************** hledger uses regular expressions in a number of places: @@ -1144,10 +1169,10 @@ they support: See Special characters.  -File: hledger.info, Node: Smart dates, Next: Report start & end date, Prev: Regular expressions, Up: OPTIONS +File: hledger.info, Node: Smart dates, Next: Report start & end date, Prev: Regular expressions, Up: Top -2.12 Smart dates -================ +22 Smart dates +************** hledger's user interfaces accept a flexible "smart date" syntax (unlike dates in the journal file). Smart dates allow some english words, can @@ -1183,10 +1208,10 @@ results: '201801012' 9+ digits beginning with a valid YYYYMMDD gives an error  -File: hledger.info, Node: Report start & end date, Next: Report intervals, Prev: Smart dates, Up: OPTIONS +File: hledger.info, Node: Report start & end date, Next: Report intervals, Prev: Smart dates, Up: Top -2.13 Report start & end date -============================ +23 Report start & end date +************************** Most hledger reports show the full span of time represented by the journal data, by default. So, the effective report start and end dates @@ -1226,10 +1251,10 @@ thismonth' 'date:thismonth'  -File: hledger.info, Node: Report intervals, Next: Period expressions, Prev: Report start & end date, Up: OPTIONS +File: hledger.info, Node: Report intervals, Next: Period expressions, Prev: Report start & end date, Up: Top -2.14 Report intervals -===================== +24 Report intervals +******************* A report interval can be specified so that commands like register, balance and activity will divide their reports into multiple subperiods. @@ -1239,10 +1264,10 @@ complex intervals may be specified with a period expression. Report intervals can not be specified with a query.  -File: hledger.info, Node: Period expressions, Next: Depth limiting, Prev: Report intervals, Up: OPTIONS +File: hledger.info, Node: Period expressions, Next: Depth limiting, Prev: Report intervals, Up: Top -2.15 Period expressions -======================= +25 Period expressions +********************* The '-p/--period' option accepts period expressions, a shorthand way of expressing a start date, end date, and/or report interval all at once. @@ -1364,10 +1389,10 @@ start date and exclusive end date): 'hledger register checking -p "every 3rd day of week"'  -File: hledger.info, Node: Depth limiting, Next: Pivoting, Prev: Period expressions, Up: OPTIONS +File: hledger.info, Node: Depth limiting, Next: Pivoting, Prev: Period expressions, Up: Top -2.16 Depth limiting -=================== +26 Depth limiting +***************** With the '--depth N' option (short form: '-N'), commands like account, balance and register will show only the uppermost accounts in the @@ -1376,10 +1401,10 @@ less detail. This flag has the same effect as a 'depth:' query argument (so '-2', '--depth=2' or 'depth:2' are equivalent).  -File: hledger.info, Node: Pivoting, Next: Valuation, Prev: Depth limiting, Up: OPTIONS +File: hledger.info, Node: Pivoting, Next: Valuation, Prev: Depth limiting, Up: Top -2.17 Pivoting -============= +27 Pivoting +*********** Normally hledger sums amounts, and organizes them in a hierarchy, based on account name. The '--pivot FIELD' option causes it to sum and @@ -1433,10 +1458,10 @@ $ hledger balance --pivot member acct:. -2 EUR  -File: hledger.info, Node: Valuation, Prev: Pivoting, Up: OPTIONS +File: hledger.info, Node: Valuation, Next: COMMANDS, Prev: Pivoting, Up: Top -2.18 Valuation -============== +28 Valuation +************ Instead of reporting amounts in their original commodity, hledger can convert them to cost/sale amount (using the conversion rate recorded in @@ -1462,8 +1487,8 @@ usually one of those is all you need.  File: hledger.info, Node: -B Cost, Next: -V Value, Up: Valuation -2.18.1 -B: Cost ---------------- +28.1 -B: Cost +============= The '-B/--cost' flag converts amounts to their cost or sale amount at transaction time, if they have a transaction price specified. @@ -1471,8 +1496,8 @@ transaction time, if they have a transaction price specified.  File: hledger.info, Node: -V Value, Next: -X Value in specified commodity, Prev: -B Cost, Up: Valuation -2.18.2 -V: Value ----------------- +28.2 -V: Value +============== The '-V/--market' flag converts amounts to market value in their default _valuation commodity_, using the market prices in effect on the @@ -1481,8 +1506,8 @@ _valuation date(s)_, if any. More on these in a minute.  File: hledger.info, Node: -X Value in specified commodity, Next: Valuation date, Prev: -V Value, Up: Valuation -2.18.3 -X: Value in specified commodity ---------------------------------------- +28.3 -X: Value in specified commodity +===================================== The '-X/--exchange=COMM' option is like '-V', except you tell it which currency you want to convert to, and it tries to convert everything to @@ -1491,8 +1516,8 @@ that.  File: hledger.info, Node: Valuation date, Next: Market prices, Prev: -X Value in specified commodity, Up: Valuation -2.18.4 Valuation date ---------------------- +28.4 Valuation date +=================== Since market prices can change from day to day, market value reports have a valuation date (or more than one), which determines which market @@ -1508,8 +1533,8 @@ of the period, by default.  File: hledger.info, Node: Market prices, Next: --infer-value market prices from transactions, Prev: Valuation date, Up: Valuation -2.18.5 Market prices --------------------- +28.5 Market prices +================== _(experimental)_ @@ -1539,8 +1564,8 @@ converted.  File: hledger.info, Node: --infer-value market prices from transactions, Next: Valuation commodity, Prev: Market prices, Up: Valuation -2.18.6 -infer-value: market prices from transactions ----------------------------------------------------- +28.6 -infer-value: market prices from transactions +================================================== _(experimental)_ @@ -1574,8 +1599,8 @@ you, read all of this Valuation section carefully, and try adding  File: hledger.info, Node: Valuation commodity, Next: Simple valuation examples, Prev: --infer-value market prices from transactions, Up: Valuation -2.18.7 Valuation commodity --------------------------- +28.7 Valuation commodity +======================== _(experimental)_ @@ -1614,8 +1639,8 @@ converted.  File: hledger.info, Node: Simple valuation examples, Next: --value Flexible valuation, Prev: Valuation commodity, Up: Valuation -2.18.8 Simple valuation examples --------------------------------- +28.8 Simple valuation examples +============================== Here are some quick examples of '-V': @@ -1649,8 +1674,8 @@ $ hledger -f t.j bal -N euros -V  File: hledger.info, Node: --value Flexible valuation, Next: More valuation examples, Prev: Simple valuation examples, Up: Valuation -2.18.9 -value: Flexible valuation ---------------------------------- +28.9 -value: Flexible valuation +=============================== '-B', '-V' and '-X' are special cases of the more general '--value' option: @@ -1697,8 +1722,8 @@ this commodity, deducing market prices as described above.  File: hledger.info, Node: More valuation examples, Next: Effect of valuation on reports, Prev: --value Flexible valuation, Up: Valuation -2.18.10 More valuation examples -------------------------------- +28.10 More valuation examples +============================= Here are some examples showing the effect of '--value', as seen with 'print': @@ -1811,8 +1836,8 @@ $ hledger print -X A  File: hledger.info, Node: Effect of valuation on reports, Prev: More valuation examples, Up: Valuation -2.18.11 Effect of valuation on reports --------------------------------------- +28.11 Effect of valuation on reports +==================================== Here is a reference for how valuation is supposed to affect each part of hledger's reports (and a glossary). (It's wide, you'll have to scroll @@ -1945,10 +1970,10 @@ _report interval_ subperiods).  -File: hledger.info, Node: COMMANDS, Next: ENVIRONMENT, Prev: OPTIONS, Up: Top +File: hledger.info, Node: COMMANDS, Next: accounts, Prev: Valuation, Up: Top -3 COMMANDS -********** +29 COMMANDS +*********** hledger provides a number of subcommands; 'hledger' with no arguments shows a list. @@ -1966,45 +1991,11 @@ unambiguous prefix of a command name ('hledger inc'). 'hledger' for a more organised command list, and 'hledger CMD -h' for detailed command help. -* Menu: - -* accounts:: -* activity:: -* add:: -* aregister:: -* balance:: -* balancesheet:: -* balancesheetequity:: -* cashflow:: -* check:: -* close:: -* codes:: -* commodities:: -* descriptions:: -* diff:: -* files:: -* help:: -* import:: -* incomestatement:: -* notes:: -* payees:: -* prices:: -* print:: -* print-unique:: -* register:: -* register-match:: -* rewrite:: -* roi:: -* stats:: -* tags:: -* test:: -* Add-on commands:: -  -File: hledger.info, Node: accounts, Next: activity, Up: COMMANDS +File: hledger.info, Node: accounts, Next: activity, Prev: COMMANDS, Up: Top -3.1 accounts -============ +30 accounts +*********** accounts, a Show account names. @@ -2031,10 +2022,10 @@ income:salary liabilities:debts  -File: hledger.info, Node: activity, Next: add, Prev: accounts, Up: COMMANDS +File: hledger.info, Node: activity, Next: add, Prev: accounts, Up: Top -3.2 activity -============ +31 activity +*********** activity Show an ascii barchart of posting counts per interval. @@ -2052,10 +2043,10 @@ $ hledger activity --quarterly 2008-10-01 **  -File: hledger.info, Node: add, Next: aregister, Prev: activity, Up: COMMANDS +File: hledger.info, Node: add, Next: aregister, Prev: activity, Up: Top -3.3 add -======= +32 add +****** add Prompt for transactions and add them to the journal. Any arguments will @@ -2123,10 +2114,10 @@ Date [2015/05/22]: $ file path ends with a period, as that would cause problems (#1056).  -File: hledger.info, Node: aregister, Next: balance, Prev: add, Up: COMMANDS +File: hledger.info, Node: aregister, Next: balance, Prev: add, Up: Top -3.4 aregister -============= +33 aregister +************ aregister, areg Show transactions affecting a particular account, and the account's @@ -2167,8 +2158,8 @@ add the '-E/--empty' flag to show them.  File: hledger.info, Node: aregister and custom posting dates, Next: , Up: aregister -3.4.1 aregister and custom posting dates ----------------------------------------- +33.1 aregister and custom posting dates +======================================= Transactions whose date is outside the report period can still be shown, if they have a posting to this account dated inside the report period. @@ -2180,8 +2171,8 @@ matching the one shown by 'register -H' with the same arguments. 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. -3.4.2 Output format -------------------- +33.2 Output format +================== This command also supports the output destination and output format options The output formats supported are 'txt', 'csv', and 'json'. @@ -2199,10 +2190,10 @@ accounts during july: $ hledger areg assets date:jul  -File: hledger.info, Node: balance, Next: balancesheet, Prev: aregister, Up: COMMANDS +File: hledger.info, Node: balance, Next: balancesheet, Prev: aregister, Up: Top -3.5 balance -=========== +34 balance +********** balance, bal, b Show accounts and their balances. @@ -2245,8 +2236,8 @@ is used to ensure this (more below).  File: hledger.info, Node: Classic balance report, Next: Customising the classic balance report, Up: balance -3.5.1 Classic balance report ----------------------------- +34.1 Classic balance report +=========================== This is the original balance report, as found in Ledger. It usually looks like this: @@ -2291,8 +2282,8 @@ $ hledger balance -p 2008/6 expenses --no-total  File: hledger.info, Node: Customising the classic balance report, Next: Colour support, Prev: Classic balance report, Up: balance -3.5.2 Customising the classic balance report --------------------------------------------- +34.2 Customising the classic balance report +=========================================== You can customise the layout of classic balance reports with '--format FMT': @@ -2353,8 +2344,8 @@ may be needed to get pleasing results.  File: hledger.info, Node: Colour support, Next: Flat mode, Prev: Customising the classic balance report, Up: balance -3.5.3 Colour support --------------------- +34.3 Colour support +=================== In terminal output, when colour is enabled, the balance command shows negative amounts in red. @@ -2362,8 +2353,8 @@ negative amounts in red.  File: hledger.info, Node: Flat mode, Next: Depth limited balance reports, Prev: Colour support, Up: balance -3.5.4 Flat mode ---------------- +34.4 Flat mode +============== To see a flat list instead of the default hierarchical display, use '--flat'. In this mode, accounts (unless depth-clipped) show their full @@ -2378,8 +2369,8 @@ $ hledger balance -p 2008/6 expenses -N --flat --drop 1  File: hledger.info, Node: Depth limited balance reports, Next: Percentages, Prev: Flat mode, Up: balance -3.5.5 Depth limited balance reports ------------------------------------ +34.5 Depth limited balance reports +================================== With '--depth N' or 'depth:N' or just '-N', balance reports show accounts only to the specified numeric depth. This is very useful to @@ -2397,8 +2388,8 @@ show inclusive balances at the depth limit.  File: hledger.info, Node: Percentages, Next: Sorting by amount, Prev: Depth limited balance reports, Up: balance -3.5.6 Percentages ------------------ +34.6 Percentages +================ With '-%' or '--percent', balance reports show each account's value expressed as a percentage of the column's total. This is useful to get @@ -2429,8 +2420,8 @@ to use '-V' or '-B' to coerce the report into using a single commodity.  File: hledger.info, Node: Sorting by amount, Next: Multicolumn balance report, Prev: Percentages, Up: balance -3.5.7 Sorting by amount ------------------------ +34.7 Sorting by amount +====================== With '-S'/'--sort-amount', accounts with the largest (most positive) balances are shown first. For example, 'hledger bal expenses -MAS' @@ -2445,8 +2436,8 @@ like 'balancesheet' or 'incomestatement', which also support '-S'. Eg:  File: hledger.info, Node: Multicolumn balance report, Next: Budget report, Prev: Sorting by amount, Up: balance -3.5.8 Multicolumn balance report --------------------------------- +34.8 Multicolumn balance report +=============================== Multicolumn or tabular balance reports are a very useful hledger feature, and usually the preferred style. They share many of the above @@ -2566,8 +2557,8 @@ bal -D --color=yes | less -RS'.  File: hledger.info, Node: Budget report, Next: , Prev: Multicolumn balance report, Up: balance -3.5.9 Budget report -------------------- +34.9 Budget report +================== With '--budget', extra columns are displayed showing budget goals for each account and period, if any. Budget goals are defined by periodic @@ -2690,8 +2681,8 @@ Budget performance in 2017/11/01-2017/12/31:  File: hledger.info, Node: Budget report start date, Next: Nested budgets, Up: Budget report -3.5.9.1 Budget report start date -................................ +34.9.1 Budget report start date +------------------------------- This might be a bug, but for now: when making budget reports, it's a good idea to explicitly set the report's start date to the first day of @@ -2734,8 +2725,8 @@ Budget performance in 2020-01-01..2020-01-15:  File: hledger.info, Node: Nested budgets, Prev: Budget report start date, Up: Budget report -3.5.9.2 Nested budgets -...................... +34.9.2 Nested budgets +--------------------- You can add budgets to any account in your account hierarchy. If you have budgets on both parent account and some of its children, then @@ -2819,18 +2810,18 @@ Budget performance in 2019/01: ----------------------------------------++------------------------------- || 0 [ 0] -3.5.10 Output format --------------------- +34.10 Output format +=================== This command also supports the output destination and output format options The output formats supported are (in most modes): 'txt', 'csv', 'html', and 'json'.  -File: hledger.info, Node: balancesheet, Next: balancesheetequity, Prev: balance, Up: COMMANDS +File: hledger.info, Node: balancesheet, Next: balancesheetequity, Prev: balance, Up: Top -3.6 balancesheet -================ +35 balancesheet +*************** balancesheet, bs This command displays a balance sheet, showing historical ending @@ -2878,10 +2869,10 @@ options The output formats supported are 'txt', 'csv', 'html', and (experimental) 'json'.  -File: hledger.info, Node: balancesheetequity, Next: cashflow, Prev: balancesheet, Up: COMMANDS +File: hledger.info, Node: balancesheetequity, Next: cashflow, Prev: balancesheet, Up: Top -3.7 balancesheetequity -====================== +36 balancesheetequity +********************* balancesheetequity, bse This command displays a balance sheet, showing historical ending @@ -2924,10 +2915,10 @@ options The output formats supported are 'txt', 'csv', 'html', and (experimental) 'json'.  -File: hledger.info, Node: cashflow, Next: check, Prev: balancesheetequity, Up: COMMANDS +File: hledger.info, Node: cashflow, Next: check, Prev: balancesheetequity, Up: Top -3.8 cashflow -============ +37 cashflow +*********** cashflow, cf This command displays a cashflow statement, showing the inflows and @@ -2966,10 +2957,10 @@ options The output formats supported are 'txt', 'csv', 'html', and (experimental) 'json'.  -File: hledger.info, Node: check, Next: close, Prev: cashflow, Up: COMMANDS +File: hledger.info, Node: check, Next: close, Prev: cashflow, Up: Top -3.9 check -========= +38 check +******** check Check for various kinds of errors in your data. _experimental_ @@ -2990,13 +2981,13 @@ hledger check ordereddates uniqueleafnames # basic + specified checks * Basic checks:: * Strict checks:: * Other checks:: -* Addon checks:: +* Add-on checks::  File: hledger.info, Node: Basic checks, Next: Strict checks, Up: check -3.9.1 Basic checks ------------------- +38.1 Basic checks +================= These are always run by this command and other commands: @@ -3013,8 +3004,8 @@ These are always run by this command and other commands:  File: hledger.info, Node: Strict checks, Next: Other checks, Prev: Basic checks, Up: check -3.9.2 Strict checks -------------------- +38.2 Strict checks +================== These are always run by this and other commands when '-s'/'--strict' is used (strict mode): @@ -3025,10 +3016,10 @@ used (strict mode): * *commodities* - all commodity symbols used have been declared  -File: hledger.info, Node: Other checks, Next: Addon checks, Prev: Strict checks, Up: check +File: hledger.info, Node: Other checks, Next: Add-on checks, Prev: Strict checks, Up: check -3.9.3 Other checks ------------------- +38.3 Other checks +================= These checks can be run by specifying their names as arguments to the check command: @@ -3040,10 +3031,10 @@ check command: the old 'check-dupes' command)  -File: hledger.info, Node: Addon checks, Prev: Other checks, Up: check +File: hledger.info, Node: Add-on checks, Prev: Other checks, Up: check -3.9.4 Addon checks ------------------- +38.4 Add-on checks +================== Some checks are not yet integrated with this command, but are available as add-on commands in @@ -3059,10 +3050,10 @@ https://github.com/simonmichael/hledger/tree/master/bin: Cookbook -> Scripting may be helpful.  -File: hledger.info, Node: close, Next: codes, Prev: check, Up: COMMANDS +File: hledger.info, Node: close, Next: codes, Prev: check, Up: Top -3.10 close -========== +39 close +******** close, equity Prints a "closing balances" transaction and an "opening balances" @@ -3101,8 +3092,8 @@ you have many foreign currency or investment transactions.  File: hledger.info, Node: close usage, Up: close -3.10.1 close usage ------------------- +39.1 close usage +================ If you split your journal files by time (eg yearly), you will typically run this command at the end of the year, and save the closing @@ -3170,10 +3161,10 @@ breaking balance assertions: assets:checking  -File: hledger.info, Node: codes, Next: commodities, Prev: close, Up: COMMANDS +File: hledger.info, Node: codes, Next: commodities, Prev: close, Up: Top -3.11 codes -========== +40 codes +******** codes List the codes seen in transactions, in the order parsed. @@ -3216,19 +3207,19 @@ $ hledger codes -E 126  -File: hledger.info, Node: commodities, Next: descriptions, Prev: codes, Up: COMMANDS +File: hledger.info, Node: commodities, Next: descriptions, Prev: codes, Up: Top -3.12 commodities -================ +41 commodities +************** commodities List all commodity/currency symbols used or declared in the journal.  -File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: COMMANDS +File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: Top -3.13 descriptions -================= +42 descriptions +*************** descriptions List the unique descriptions that appear in transactions. @@ -3245,10 +3236,10 @@ Gas Station | Petrol Person A  -File: hledger.info, Node: diff, Next: files, Prev: descriptions, Up: COMMANDS +File: hledger.info, Node: diff, Next: files, Prev: descriptions, Up: Top -3.14 diff -========= +43 diff +******* diff Compares a particular account's transactions in two input files. It @@ -3280,20 +3271,20 @@ These transactions are in the first file only: These transactions are in the second file only:  -File: hledger.info, Node: files, Next: help, Prev: diff, Up: COMMANDS +File: hledger.info, Node: files, Next: help, Prev: diff, Up: Top -3.15 files -========== +44 files +******** files List all files included in the journal. With a REGEX argument, only file names matching the regular expression (case sensitive) are shown.  -File: hledger.info, Node: help, Next: import, Prev: files, Up: COMMANDS +File: hledger.info, Node: help, Next: import, Prev: files, Up: Top -3.16 help -========= +45 help +******* help Show any of the hledger manuals. @@ -3330,10 +3321,10 @@ DESCRIPTION ...  -File: hledger.info, Node: import, Next: incomestatement, Prev: help, Up: COMMANDS +File: hledger.info, Node: import, Next: incomestatement, Prev: help, Up: Top -3.17 import -=========== +46 import +********* import Read new transactions added to each FILE since last run, and add them to @@ -3362,8 +3353,8 @@ $ hledger import --dry ... | hledger -f- print unknown --ignore-assertions  File: hledger.info, Node: Importing balance assignments, Next: Commodity display styles, Up: import -3.17.1 Importing balance assignments ------------------------------------- +46.1 Importing balance assignments +================================== Entries added by import will have their posting amounts made explicit (like 'hledger print -x'). This means that any balance assignments in @@ -3381,17 +3372,17 @@ please test it and send a pull request.)  File: hledger.info, Node: Commodity display styles, Prev: Importing balance assignments, Up: import -3.17.2 Commodity display styles -------------------------------- +46.2 Commodity display styles +============================= Imported amounts will be formatted according to the canonical commodity styles (declared or inferred) in the main journal file.  -File: hledger.info, Node: incomestatement, Next: notes, Prev: import, Up: COMMANDS +File: hledger.info, Node: incomestatement, Next: notes, Prev: import, Up: Top -3.18 incomestatement -==================== +47 incomestatement +****************** incomestatement, is @@ -3438,10 +3429,10 @@ options The output formats supported are 'txt', 'csv', 'html', and (experimental) 'json'.  -File: hledger.info, Node: notes, Next: payees, Prev: incomestatement, Up: COMMANDS +File: hledger.info, Node: notes, Next: payees, Prev: incomestatement, Up: Top -3.19 notes -========== +48 notes +******** notes List the unique notes that appear in transactions. @@ -3458,10 +3449,10 @@ Petrol Snacks  -File: hledger.info, Node: payees, Next: prices, Prev: notes, Up: COMMANDS +File: hledger.info, Node: payees, Next: prices, Prev: notes, Up: Top -3.20 payees -=========== +49 payees +********* payees List the unique payee/payer names that appear in transactions. @@ -3480,10 +3471,10 @@ Gas Station Person A  -File: hledger.info, Node: prices, Next: print, Prev: payees, Up: COMMANDS +File: hledger.info, Node: prices, Next: print, Prev: payees, Up: Top -3.21 prices -=========== +50 prices +********* prices Print market price directives from the journal. With -costs, also print @@ -3493,10 +3484,10 @@ Prices (and postings providing prices) can be filtered by a query. Price amounts are always displayed with their full precision.  -File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: COMMANDS +File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: Top -3.22 print -========== +51 print +******** print, txns, p Show transaction journal entries, sorted by date. @@ -3602,10 +3593,10 @@ $ hledger print -Ocsv zero or greater amounts under debit.)  -File: hledger.info, Node: print-unique, Next: register, Prev: print, Up: COMMANDS +File: hledger.info, Node: print-unique, Next: register, Prev: print, Up: Top -3.23 print-unique -================= +52 print-unique +*************** print-unique Print transactions which do not reuse an already-seen description. @@ -3623,10 +3614,10 @@ $ LEDGER_FILE=unique.journal hledger print-unique (acct:one) 1  -File: hledger.info, Node: register, Next: register-match, Prev: print-unique, Up: COMMANDS +File: hledger.info, Node: register, Next: register-match, Prev: print-unique, Up: Top -3.24 register -============= +53 register +*********** register, reg, r Show postings and their running total. @@ -3723,8 +3714,8 @@ length and comparable to the others in the report.  File: hledger.info, Node: Custom register output, Up: register -3.24.1 Custom register output ------------------------------ +53.1 Custom register output +=========================== register uses the full terminal width by default, except on windows. You can override this by setting the 'COLUMNS' environment variable (not @@ -3753,10 +3744,10 @@ options The output formats supported are 'txt', 'csv', and (experimental) 'json'.  -File: hledger.info, Node: register-match, Next: rewrite, Prev: register, Up: COMMANDS +File: hledger.info, Node: register-match, Next: rewrite, Prev: register, Up: Top -3.25 register-match -=================== +54 register-match +***************** register-match Print the one posting whose transaction description is closest to DESC, @@ -3766,10 +3757,10 @@ arguments) can be used to restrict the search space. Helps ledger-autosync detect already-seen transactions when importing.  -File: hledger.info, Node: rewrite, Next: roi, Prev: register-match, Up: COMMANDS +File: hledger.info, Node: rewrite, Next: roi, Prev: register-match, Up: Top -3.26 rewrite -============ +55 rewrite +********** rewrite Print all transactions, rewriting the postings of matched transactions. @@ -3820,8 +3811,8 @@ commodity.  File: hledger.info, Node: Re-write rules in a file, Up: rewrite -3.26.1 Re-write rules in a file -------------------------------- +55.1 Re-write rules in a file +============================= During the run this tool will execute so called "Automated Transactions" found in any journal it process. I.e instead of specifying this @@ -3863,8 +3854,8 @@ postings.  File: hledger.info, Node: Diff output format, Next: rewrite vs print --auto, Up: Re-write rules in a file -3.26.1.1 Diff output format -........................... +55.1.1 Diff output format +------------------------- To use this tool for batch modification of your journal files you may find useful output in form of unified diff. @@ -3904,8 +3895,8 @@ output from 'hledger print'.  File: hledger.info, Node: rewrite vs print --auto, Prev: Diff output format, Up: Re-write rules in a file -3.26.1.2 rewrite vs. print -auto -................................ +55.1.2 rewrite vs. print -auto +------------------------------ This command predates print -auto, and currently does much the same thing, but with these differences: @@ -3922,10 +3913,10 @@ thing, but with these differences: print -auto applies rules specified in the journal.  -File: hledger.info, Node: roi, Next: stats, Prev: rewrite, Up: COMMANDS +File: hledger.info, Node: roi, Next: stats, Prev: rewrite, Up: Top -3.27 roi -======== +56 roi +****** roi Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on @@ -4178,10 +4169,10 @@ $ hledger roi -Y --inv investment --pnl "unrealized" +---++------------+------------++---------------+----------+-------------+------++-------+--------+  -File: hledger.info, Node: stats, Next: tags, Prev: roi, Up: COMMANDS +File: hledger.info, Node: stats, Next: tags, Prev: roi, Up: Top -3.28 stats -========== +57 stats +******** stats Show some journal statistics. @@ -4209,10 +4200,10 @@ Market prices : 12 ($) selection.  -File: hledger.info, Node: tags, Next: test, Prev: stats, Up: COMMANDS +File: hledger.info, Node: tags, Next: test, Prev: stats, Up: Top -3.29 tags -========= +58 tags +******* tags List the unique tag names used in the journal. With a TAGREGEX @@ -4229,10 +4220,10 @@ parsed from the input data, including duplicates. they are omitted.  -File: hledger.info, Node: test, Next: Add-on commands, Prev: tags, Up: COMMANDS +File: hledger.info, Node: test, Next: Add-on commands, Prev: tags, Up: Top -3.30 test -========= +59 test +******* test Run built-in unit tests. @@ -4256,10 +4247,10 @@ $ hledger test -- -pData.Amount --color=never ('-- --help' currently doesn't show them).  -File: hledger.info, Node: Add-on commands, Prev: test, Up: COMMANDS +File: hledger.info, Node: Add-on commands, Next: ENVIRONMENT, Prev: test, Up: Top -3.31 Add-on commands -==================== +60 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 @@ -4295,20 +4286,21 @@ interfaces. These are maintained and released along with hledger: * web:: * iadd:: * interest:: +* stockquotes::  File: hledger.info, Node: ui, Next: web, Up: Add-on commands -3.31.1 ui ---------- +60.1 ui +======= hledger-ui provides an efficient terminal interface.  File: hledger.info, Node: web, Next: iadd, Prev: ui, Up: Add-on commands -3.31.2 web ----------- +60.2 web +======== hledger-web provides a simple web interface. @@ -4317,29 +4309,38 @@ hledger-web provides a simple web interface.  File: hledger.info, Node: iadd, Next: interest, Prev: web, Up: Add-on commands -3.31.3 iadd ------------ +60.3 iadd +========= hledger-iadd is a more interactive, terminal UI replacement for the add command.  -File: hledger.info, Node: interest, Prev: iadd, Up: Add-on commands +File: hledger.info, Node: interest, Next: stockquotes, Prev: iadd, Up: Add-on commands -3.31.4 interest ---------------- +60.4 interest +============= hledger-interest generates interest transactions for an account according to various schemes. + +File: hledger.info, Node: stockquotes, Prev: interest, Up: Add-on commands + +60.5 stockquotes +================ + +hledger-stockquotes downloads market prices for the commodities in your +journal from AlphaVantage. + 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.  -File: hledger.info, Node: ENVIRONMENT, Next: FILES, Prev: COMMANDS, Up: Top +File: hledger.info, Node: ENVIRONMENT, Next: FILES, Prev: Add-on commands, Up: Top -4 ENVIRONMENT -************* +61 ENVIRONMENT +************** *LEDGER_FILE* The journal file path when not specified with '-f'. Default: '~/.hledger.journal' (on windows, perhaps @@ -4371,8 +4372,8 @@ use ANSI color codes in terminal output. This overrides the  File: hledger.info, Node: FILES, Next: LIMITATIONS, Prev: ENVIRONMENT, Up: Top -5 FILES -******* +62 FILES +******** Reads data from one or more files in hledger journal, timeclock, timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or @@ -4382,10 +4383,10 @@ timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or  File: hledger.info, Node: LIMITATIONS, Next: TROUBLESHOOTING, Prev: FILES, Up: Top -6 LIMITATIONS -************* +63 LIMITATIONS +************** -The need to precede addon command options with '--' when invoked from +The need to precede add-on command options with '--' when invoked from hledger is awkward. When input data contains non-ascii characters, a suitable system @@ -4410,8 +4411,8 @@ Ledger.  File: hledger.info, Node: TROUBLESHOOTING, Prev: LIMITATIONS, Up: Top -7 TROUBLESHOOTING -***************** +64 TROUBLESHOOTING +****************** Here are some issues you might encounter when you run hledger (and remember you can also seek help from the IRC channel, mail list or bug @@ -4483,218 +4484,220 @@ $ LANG=en_US.UTF-8 hledger -f my.journal print  Tag Table: Node: Top68 -Node: COMMON TASKS2315 -Ref: #common-tasks2427 -Node: Getting help2834 -Ref: #getting-help2966 -Node: Constructing command lines3519 -Ref: #constructing-command-lines3711 -Node: Starting a journal file4408 -Ref: #starting-a-journal-file4606 -Node: Setting opening balances5794 -Ref: #setting-opening-balances5990 -Node: Recording transactions9131 -Ref: #recording-transactions9311 -Node: Reconciling9867 -Ref: #reconciling10010 -Node: Reporting12267 -Ref: #reporting12407 -Node: Migrating to a new file16406 -Ref: #migrating-to-a-new-file16554 -Node: OPTIONS16853 -Ref: #options16960 -Node: General options17346 -Ref: #general-options17471 -Node: Command options20872 -Ref: #command-options21023 -Node: Command arguments21421 -Ref: #command-arguments21568 -Node: Queries22448 -Ref: #queries22603 -Node: Special characters in arguments and queries26565 -Ref: #special-characters-in-arguments-and-queries26793 -Node: More escaping27244 -Ref: #more-escaping27406 -Node: Even more escaping27702 -Ref: #even-more-escaping27896 -Node: Less escaping28567 -Ref: #less-escaping28729 -Node: Unicode characters28974 -Ref: #unicode-characters29156 -Node: Input files30568 -Ref: #input-files30704 -Node: Strict mode33003 -Ref: #strict-mode33139 -Node: Output destination33787 -Ref: #output-destination33939 -Node: Output format34364 -Ref: #output-format34516 -Node: Regular expressions36683 -Ref: #regular-expressions36840 -Node: Smart dates38576 -Ref: #smart-dates38727 -Node: Report start & end date40088 -Ref: #report-start-end-date40260 -Node: Report intervals41757 -Ref: #report-intervals41922 -Node: Period expressions42312 -Ref: #period-expressions42472 -Node: Depth limiting46845 -Ref: #depth-limiting46989 -Node: Pivoting47321 -Ref: #pivoting47444 -Node: Valuation49120 -Ref: #valuation49222 -Node: -B Cost49911 -Ref: #b-cost50015 -Node: -V Value50148 -Ref: #v-value50294 -Node: -X Value in specified commodity50489 -Ref: #x-value-in-specified-commodity50688 -Node: Valuation date50837 -Ref: #valuation-date51005 -Node: Market prices51427 -Ref: #market-prices51607 -Node: --infer-value market prices from transactions52549 -Ref: #infer-value-market-prices-from-transactions52798 -Node: Valuation commodity54080 -Ref: #valuation-commodity54289 -Node: Simple valuation examples55515 -Ref: #simple-valuation-examples55717 -Node: --value Flexible valuation56376 -Ref: #value-flexible-valuation56584 -Node: More valuation examples58531 -Ref: #more-valuation-examples58740 -Node: Effect of valuation on reports60745 -Ref: #effect-of-valuation-on-reports60933 -Node: COMMANDS67952 -Ref: #commands68060 -Node: accounts69146 -Ref: #accounts69244 -Node: activity69943 -Ref: #activity70053 -Node: add70436 -Ref: #add70537 -Node: aregister73330 -Ref: #aregister73442 -Node: aregister and custom posting dates74815 -Ref: #aregister-and-custom-posting-dates74988 -Ref: #output-format-175581 -Node: balance75986 -Ref: #balance76103 -Node: Classic balance report77583 -Ref: #classic-balance-report77756 -Node: Customising the classic balance report79080 -Ref: #customising-the-classic-balance-report79308 -Node: Colour support81384 -Ref: #colour-support81551 -Node: Flat mode81647 -Ref: #flat-mode81795 -Node: Depth limited balance reports82208 -Ref: #depth-limited-balance-reports82393 -Node: Percentages82849 -Ref: #percentages83006 -Node: Sorting by amount84143 -Ref: #sorting-by-amount84309 -Node: Multicolumn balance report84803 -Ref: #multicolumn-balance-report84989 -Node: Budget report90586 -Ref: #budget-report90729 -Node: Budget report start date96018 -Ref: #budget-report-start-date96183 -Node: Nested budgets97515 -Ref: #nested-budgets97660 -Ref: #output-format-2101143 -Node: balancesheet101304 -Ref: #balancesheet101440 -Node: balancesheetequity102952 -Ref: #balancesheetequity103101 -Node: cashflow104177 -Ref: #cashflow104299 -Node: check105515 -Ref: #check105618 -Node: Basic checks106222 -Ref: #basic-checks106338 -Node: Strict checks106831 -Ref: #strict-checks106970 -Node: Other checks107213 -Ref: #other-checks107350 -Node: Addon checks107648 -Ref: #addon-checks107763 -Node: close108216 -Ref: #close108318 -Node: close usage109840 -Ref: #close-usage109933 -Node: codes112746 -Ref: #codes112854 -Node: commodities113566 -Ref: #commodities113693 -Node: descriptions113775 -Ref: #descriptions113903 -Node: diff114207 -Ref: #diff114313 -Node: files115360 -Ref: #files115460 -Node: help115607 -Ref: #help115707 -Node: import116788 -Ref: #import116902 -Node: Importing balance assignments117824 -Ref: #importing-balance-assignments118005 -Node: Commodity display styles118654 -Ref: #commodity-display-styles118825 -Node: incomestatement118954 -Ref: #incomestatement119087 -Node: notes120432 -Ref: #notes120545 -Node: payees120913 -Ref: #payees121019 -Node: prices121439 -Ref: #prices121545 -Node: print121886 -Ref: #print121996 -Node: print-unique126792 -Ref: #print-unique126918 -Node: register127203 -Ref: #register127330 -Node: Custom register output131779 -Ref: #custom-register-output131908 -Node: register-match133245 -Ref: #register-match133379 -Node: rewrite133730 -Ref: #rewrite133845 -Node: Re-write rules in a file135700 -Ref: #re-write-rules-in-a-file135834 -Node: Diff output format137044 -Ref: #diff-output-format137213 -Node: rewrite vs print --auto138305 -Ref: #rewrite-vs.-print---auto138484 -Node: roi139040 -Ref: #roi139138 -Node: stats151348 -Ref: #stats151447 -Node: tags152235 -Ref: #tags152333 -Node: test152852 -Ref: #test152960 -Node: Add-on commands153707 -Ref: #add-on-commands153824 -Node: ui155167 -Ref: #ui155255 -Node: web155309 -Ref: #web155412 -Node: iadd155528 -Ref: #iadd155639 -Node: interest155721 -Ref: #interest155828 -Node: ENVIRONMENT156068 -Ref: #environment156180 -Node: FILES157165 -Ref: #files-1157268 -Node: LIMITATIONS157481 -Ref: #limitations157600 -Node: TROUBLESHOOTING158342 -Ref: #troubleshooting158455 +Node: COMMON TASKS3275 +Ref: #common-tasks3392 +Node: Getting help3599 +Ref: #getting-help3739 +Node: Constructing command lines4292 +Ref: #constructing-command-lines4471 +Node: Starting a journal file5168 +Ref: #starting-a-journal-file5353 +Node: Setting opening balances6541 +Ref: #setting-opening-balances6724 +Node: Recording transactions9865 +Ref: #recording-transactions10032 +Node: Reconciling10588 +Ref: #reconciling10718 +Node: Reporting12975 +Ref: #reporting13102 +Node: Migrating to a new file17101 +Ref: #migrating-to-a-new-file17252 +Node: OPTIONS17551 +Ref: #options17678 +Node: General options17678 +Ref: #general-options17813 +Node: Command options21214 +Ref: #command-options21359 +Node: Command arguments21759 +Ref: #command-arguments21900 +Node: Queries22780 +Ref: #queries22929 +Node: Special characters in arguments and queries26891 +Ref: #special-characters-in-arguments-and-queries27113 +Node: More escaping27564 +Ref: #more-escaping27724 +Node: Even more escaping28020 +Ref: #even-more-escaping28212 +Node: Less escaping28886 +Ref: #less-escaping29046 +Node: Unicode characters29291 +Ref: #unicode-characters29467 +Node: Input files30879 +Ref: #input-files31009 +Node: Strict mode33308 +Ref: #strict-mode33438 +Node: Output destination34086 +Ref: #output-destination34232 +Node: Output format34657 +Ref: #output-format34801 +Node: Regular expressions36968 +Ref: #regular-expressions37117 +Node: Smart dates38853 +Ref: #smart-dates38996 +Node: Report start & end date40357 +Ref: #report-start-end-date40521 +Node: Report intervals42018 +Ref: #report-intervals42175 +Node: Period expressions42565 +Ref: #period-expressions42717 +Node: Depth limiting47090 +Ref: #depth-limiting47226 +Node: Pivoting47558 +Ref: #pivoting47673 +Node: Valuation49349 +Ref: #valuation49460 +Node: -B Cost50149 +Ref: #b-cost50249 +Node: -V Value50382 +Ref: #v-value50524 +Node: -X Value in specified commodity50719 +Ref: #x-value-in-specified-commodity50914 +Node: Valuation date51063 +Ref: #valuation-date51227 +Node: Market prices51649 +Ref: #market-prices51825 +Node: --infer-value market prices from transactions52767 +Ref: #infer-value-market-prices-from-transactions53012 +Node: Valuation commodity54294 +Ref: #valuation-commodity54499 +Node: Simple valuation examples55725 +Ref: #simple-valuation-examples55923 +Node: --value Flexible valuation56582 +Ref: #value-flexible-valuation56786 +Node: More valuation examples58733 +Ref: #more-valuation-examples58938 +Node: Effect of valuation on reports60943 +Ref: #effect-of-valuation-on-reports61127 +Node: COMMANDS68146 +Ref: #commands68255 +Node: accounts68937 +Ref: #accounts69045 +Node: activity69744 +Ref: #activity69847 +Node: add70230 +Ref: #add70324 +Node: aregister73117 +Ref: #aregister73222 +Node: aregister and custom posting dates74595 +Ref: #aregister-and-custom-posting-dates74766 +Ref: #output-format-175357 +Node: balance75762 +Ref: #balance75872 +Node: Classic balance report77352 +Ref: #classic-balance-report77523 +Node: Customising the classic balance report78847 +Ref: #customising-the-classic-balance-report79073 +Node: Colour support81149 +Ref: #colour-support81314 +Node: Flat mode81410 +Ref: #flat-mode81556 +Node: Depth limited balance reports81969 +Ref: #depth-limited-balance-reports82152 +Node: Percentages82608 +Ref: #percentages82763 +Node: Sorting by amount83900 +Ref: #sorting-by-amount84064 +Node: Multicolumn balance report84558 +Ref: #multicolumn-balance-report84742 +Node: Budget report90339 +Ref: #budget-report90480 +Node: Budget report start date95769 +Ref: #budget-report-start-date95932 +Node: Nested budgets97264 +Ref: #nested-budgets97407 +Ref: #output-format-2100888 +Node: balancesheet101049 +Ref: #balancesheet101178 +Node: balancesheetequity102690 +Ref: #balancesheetequity102832 +Node: cashflow103908 +Ref: #cashflow104023 +Node: check105239 +Ref: #check105335 +Node: Basic checks105940 +Ref: #basic-checks106054 +Node: Strict checks106547 +Ref: #strict-checks106684 +Node: Other checks106927 +Ref: #other-checks107063 +Node: Add-on checks107361 +Ref: #add-on-checks107477 +Node: close107930 +Ref: #close108023 +Node: close usage109545 +Ref: #close-usage109634 +Node: codes112447 +Ref: #codes112546 +Node: commodities113258 +Ref: #commodities113376 +Node: descriptions113458 +Ref: #descriptions113577 +Node: diff113881 +Ref: #diff113978 +Node: files115025 +Ref: #files115116 +Node: help115263 +Ref: #help115354 +Node: import116435 +Ref: #import116540 +Node: Importing balance assignments117462 +Ref: #importing-balance-assignments117639 +Node: Commodity display styles118288 +Ref: #commodity-display-styles118455 +Node: incomestatement118584 +Ref: #incomestatement118708 +Node: notes120053 +Ref: #notes120157 +Node: payees120525 +Ref: #payees120622 +Node: prices121042 +Ref: #prices121139 +Node: print121480 +Ref: #print121581 +Node: print-unique126377 +Ref: #print-unique126494 +Node: register126779 +Ref: #register126897 +Node: Custom register output131346 +Ref: #custom-register-output131471 +Node: register-match132808 +Ref: #register-match132933 +Node: rewrite133284 +Ref: #rewrite133390 +Node: Re-write rules in a file135245 +Ref: #re-write-rules-in-a-file135375 +Node: Diff output format136585 +Ref: #diff-output-format136750 +Node: rewrite vs print --auto137842 +Ref: #rewrite-vs.-print---auto138017 +Node: roi138573 +Ref: #roi138662 +Node: stats150872 +Ref: #stats150962 +Node: tags151750 +Ref: #tags151839 +Node: test152358 +Ref: #test152457 +Node: Add-on commands153204 +Ref: #add-on-commands153332 +Node: ui154691 +Ref: #ui154775 +Node: web154829 +Ref: #web154928 +Node: iadd155044 +Ref: #iadd155151 +Node: interest155233 +Ref: #interest155356 +Node: stockquotes155451 +Ref: #stockquotes155567 +Node: ENVIRONMENT155812 +Ref: #environment155933 +Node: FILES156918 +Ref: #files-1157023 +Node: LIMITATIONS157236 +Ref: #limitations157357 +Node: TROUBLESHOOTING158100 +Ref: #troubleshooting158215  End Tag Table diff --git a/hledger/hledger.txt b/hledger/hledger.txt index 07f80577f..a58d1d2a8 100644 --- a/hledger/hledger.txt +++ b/hledger/hledger.txt @@ -561,9 +561,9 @@ OPTIONS Command-specific options must be written after the command name, eg: hledger print -x. - Additionally, if the command is an addon, you may need to put its op- + Additionally, if the command is an add-on, you may need to put its op- tions after a double-hyphen, eg: hledger ui -- --watch. Or, you can - run the addon executable directly: hledger-ui --watch. + run the add-on executable directly: hledger-ui --watch. Command arguments Most hledger commands accept arguments after the command name, which @@ -729,7 +729,7 @@ OPTIONS hledger balance cur:\\$ Even more escaping - When hledger runs an addon executable (eg you type hledger ui, hledger + When hledger runs an add-on executable (eg you type hledger ui, hledger runs hledger-ui), it de-escapes command-line options and arguments once, so you might need to triple-escape. Eg in bash, running the ui command and matching the dollar sign, it's: @@ -750,8 +750,8 @@ OPTIONS (The number of backslashes in fish shell is left as an exercise for the reader.) - You can always avoid the extra escaping for addons by running the addon - directly: + You can always avoid the extra escaping for add-ons by running the add- + on directly: hledger-ui cur:\\$ @@ -2600,7 +2600,7 @@ COMMANDS o uniqueleafnames - all account leaf names are unique (similar to the old check-dupes command) - Addon checks + Add-on checks Some checks are not yet integrated with this command, but are available as add-on commands in https://github.com/simonmichael/hledger/tree/mas- ter/bin: @@ -3690,20 +3690,24 @@ COMMANDS hledger-interest generates interest transactions for an account accord- ing to various schemes. - A few more experimental or old add-ons can be found in hledger's bin/ + stockquotes + hledger-stockquotes downloads market prices for the commodities in your + journal from AlphaVantage. + + 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 LEDGER_FILE The journal file path when not specified with -f. Default: - ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- + ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- nal). - A typical value is ~/DIR/YYYY.journal, where DIR is a version-con- - trolled finance directory and YYYY is the current year. Or ~/DIR/cur- + A typical value is ~/DIR/YYYY.journal, where DIR is a version-con- + trolled finance directory and YYYY is the current year. Or ~/DIR/cur- rent.journal, where current.journal is a symbolic link to YYYY.journal. On Mac computers, you can set this and other environment variables in a - more thorough way that also affects applications started from the GUI + more thorough way that also affects applications started from the GUI (say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en- vironment.plist file containing @@ -3713,21 +3717,21 @@ ENVIRONMENT To see the effect you may need to killall Dock, or reboot. - COLUMNS The screen width used by the register command. Default: the + COLUMNS The screen width used by the register command. Default: the full terminal width. - NO_COLOR If this variable exists with any value, hledger will not use - ANSI color codes in terminal output. This overrides the + NO_COLOR If this variable exists with any value, hledger will not use + ANSI color codes in terminal output. This overrides the --color/--colour option. FILES - Reads data from one or more files in hledger journal, timeclock, time- - dot, or CSV format specified with -f, or $LEDGER_FILE, or - $HOME/.hledger.journal (on windows, perhaps + Reads data from one or more files in hledger journal, timeclock, time- + dot, or CSV format specified with -f, or $LEDGER_FILE, or + $HOME/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.journal). LIMITATIONS - The need to precede addon command options with -- when invoked from + The need to precede add-on command options with -- when invoked from hledger is awkward. When input data contains non-ascii characters, a suitable system locale @@ -3743,36 +3747,36 @@ LIMITATIONS In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger add. - Not all of Ledger's journal file syntax is supported. See file format + Not all of Ledger's journal file syntax is supported. See file format differences. - On large data files, hledger is slower and uses more memory than + On large data files, hledger is slower and uses more memory than Ledger. TROUBLESHOOTING - Here are some issues you might encounter when you run hledger (and re- - member you can also seek help from the IRC channel, mail list or bug + Here are some issues you might encounter when you run hledger (and re- + member you can also seek help from the IRC channel, mail list or bug tracker): Successfully installed, but "No command 'hledger' found" stack and cabal install binaries into a special directory, which should - be added to your PATH environment variable. Eg on unix-like systems, + be added to your PATH environment variable. Eg on unix-like systems, that is ~/.local/bin and ~/.cabal/bin respectively. I set a custom LEDGER_FILE, but hledger is still using the default file - LEDGER_FILE should be a real environment variable, not just a shell - variable. The command env | grep LEDGER_FILE should show it. You may + LEDGER_FILE should be a real environment variable, not just a shell + variable. The command env | grep LEDGER_FILE should show it. You may need to use export. Here's an explanation. - Getting errors like "Illegal byte sequence" or "Invalid or incomplete - multibyte or wide character" or "commitAndReleaseBuffer: invalid argu- + Getting errors like "Illegal byte sequence" or "Invalid or incomplete + multibyte or wide character" or "commitAndReleaseBuffer: invalid argu- ment (invalid character)" Programs compiled with GHC (hledger, haskell build tools, etc.) need to have a UTF-8-aware locale configured in the environment, otherwise they - will fail with these kinds of errors when they encounter non-ascii + will fail with these kinds of errors when they encounter non-ascii characters. - To fix it, set the LANG environment variable to some locale which sup- + To fix it, set the LANG environment variable to some locale which sup- ports UTF-8. The locale you choose must be installed on your system. Here's an example of setting LANG temporarily, on Ubuntu GNU/Linux: @@ -3787,8 +3791,8 @@ TROUBLESHOOTING POSIX $ LANG=en_US.utf8 hledger -f my.journal print # ensure it is used for this command - If available, C.UTF-8 will also work. If your preferred locale isn't - listed by locale -a, you might need to install it. Eg on Ubuntu/De- + If available, C.UTF-8 will also work. If your preferred locale isn't + listed by locale -a, you might need to install it. Eg on Ubuntu/De- bian: $ apt-get install language-pack-fr @@ -3808,8 +3812,8 @@ TROUBLESHOOTING $ echo "export LANG=en_US.utf8" >>~/.bash_profile $ bash --login - Exact spelling and capitalisation may be important. Note the differ- - ence on MacOS (UTF-8, not utf8). Some platforms (eg ubuntu) allow + Exact spelling and capitalisation may be important. Note the differ- + ence on MacOS (UTF-8, not utf8). Some platforms (eg ubuntu) allow variant spellings, but others (eg macos) require it to be exact: $ locale -a | grep -iE en_us.*utf @@ -3819,7 +3823,7 @@ TROUBLESHOOTING REPORTING BUGS - Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel + Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel or hledger mail list) @@ -3828,16 +3832,13 @@ AUTHORS COPYRIGHT - Copyright (C) 2007-2019 Simon Michael. + Copyright (C) 2007-2020 Simon Michael. Released under GNU GPL v3 or later. SEE ALSO - hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), - hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- - dot(5), ledger(1) - - http://hledger.org + hledger(1), hledger-ui(1), hledger-web(1), hledger_csv(5), + hledger_journal(5), hledger_timeclock(5), hledger_timedot(5), ledger(1)