update embedded manuals
This commit is contained in:
		
							parent
							
								
									6242b1d784
								
							
						
					
					
						commit
						22f2e90a4b
					
				| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| .TH "hledger\-api" "1" "March 2018" "hledger\-api 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger\-api" "1" "June 2018" "hledger\-api 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -117,4 +117,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger-api 1.9.99                March 2018                    hledger-api(1) | ||||
| hledger-api 1.9.99                 June 2018                    hledger-api(1) | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| .TH "hledger_csv" "5" "March 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger_csv" "5" "June 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -249,4 +249,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger 1.9.99                    March 2018                    hledger_csv(5) | ||||
| hledger 1.9.99                     June 2018                    hledger_csv(5) | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| .\"t | ||||
| 
 | ||||
| .TH "hledger_journal" "5" "March 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger_journal" "5" "June 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -825,50 +825,173 @@ simple strings. | ||||
| .PP | ||||
| A directive is a line in the journal beginning with a special keyword, | ||||
| that influences how the journal is processed. | ||||
| Some directives may also have indented sub\-directives on the following | ||||
| lines (\f[C]commodity\f[]). | ||||
| .SS Directive scope, multiple files | ||||
| hledger's directives are based on a subset of Ledger's, but there are | ||||
| many differences (and also some differences between hledger versions). | ||||
| .PP | ||||
| Directives vary in which journal entries they affect: | ||||
| .IP \[bu] 2 | ||||
| some form a begin/end pair, and affect the enclosed journal entries (and | ||||
| included files): | ||||
| .PD 0 | ||||
| .P | ||||
| .PD | ||||
| \f[C]alias\f[] & \f[C]end\ aliases\f[]; \f[C]comment\f[] & | ||||
| Directives' behaviour and interactions can get a little bit complex, so | ||||
| here is a table summarising the directives and their effects, with links | ||||
| to more detailed docs. | ||||
| .PP | ||||
| .TS | ||||
| tab(@); | ||||
| lw(7.8n) lw(8.6n) lw(7.0n) lw(27.8n) lw(18.8n). | ||||
| T{ | ||||
| directive | ||||
| T}@T{ | ||||
| end directive | ||||
| T}@T{ | ||||
| subdirectives | ||||
| T}@T{ | ||||
| purpose | ||||
| T}@T{ | ||||
| can affect (as of 2018/06) | ||||
| T} | ||||
| _ | ||||
| T{ | ||||
| \f[C]account\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| any text | ||||
| T}@T{ | ||||
| declare an account name & optional account code | ||||
| T}@T{ | ||||
| account code: balance reports (except \f[C]balance\f[] single\-column | ||||
| mode) | ||||
| T} | ||||
| T{ | ||||
| \f[C]alias\f[] | ||||
| T}@T{ | ||||
| \f[C]end\ aliases\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| rewrite account names | ||||
| T}@T{ | ||||
| following inline/included entries until end of current file or end | ||||
| directive | ||||
| T} | ||||
| T{ | ||||
| \f[C]apply\ account\f[] | ||||
| T}@T{ | ||||
| \f[C]end\ apply\ account\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| prepend a common parent to account names | ||||
| T}@T{ | ||||
| following inline/included entries until end of current file or end | ||||
| directive | ||||
| T} | ||||
| T{ | ||||
| \f[C]comment\f[] | ||||
| T}@T{ | ||||
| \f[C]end\ comment\f[] | ||||
| .IP \[bu] 2 | ||||
| some affect the subsequent journal entries (and included files) in the | ||||
| current file: | ||||
| .PD 0 | ||||
| .P | ||||
| .PD | ||||
| \f[C]alias\f[] or \f[C]comment\f[] without an end directive, \f[C]Y\f[] | ||||
| .IP \[bu] 2 | ||||
| some affect all journal entries (and included files) anywhere in the | ||||
| current file: | ||||
| .PD 0 | ||||
| .P | ||||
| .PD | ||||
| \f[C]account\f[], \f[C]commodity\f[], \f[C]D\f[], \f[C]P\f[]. | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| ignore part of journal | ||||
| T}@T{ | ||||
| following inline/included entries until end of current file or end | ||||
| directive | ||||
| T} | ||||
| T{ | ||||
| \f[C]commodity\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| \f[C]format\f[] | ||||
| T}@T{ | ||||
| declare a commodity and its number notation & display style | ||||
| T}@T{ | ||||
| number notation: following entries in that commodity in all files; | ||||
| display style: amounts of that commodity in reports | ||||
| T} | ||||
| T{ | ||||
| \f[C]D\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| declare a commodity, number notation & display style for commodityless | ||||
| amounts | ||||
| T}@T{ | ||||
| commodity: all commodityless entries in all files; number notation: | ||||
| following commodityless entries and entries in that commodity in all | ||||
| files; display style: amounts of that commodity in reports | ||||
| T} | ||||
| T{ | ||||
| \f[C]include\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| include entries/directives from another file | ||||
| T}@T{ | ||||
| what the included directives affect | ||||
| T} | ||||
| T{ | ||||
| \f[C]P\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| declare a market price for a commodity | ||||
| T}@T{ | ||||
| amounts of that commodity in reports, when \-V is used | ||||
| T} | ||||
| T{ | ||||
| \f[C]Y\f[] | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| T}@T{ | ||||
| declare a year for yearless dates | ||||
| T}@T{ | ||||
| following inline/included entries until end of current file | ||||
| T} | ||||
| .TE | ||||
| .PP | ||||
| It's important to note that directives can affect the current file and | ||||
| child (included) files, but not sibling or parent (including) files. | ||||
| This is by design, for simplicity and predictability of reports, but it | ||||
| can be surprising at times. | ||||
| Eg, in: | ||||
| .IP | ||||
| .nf | ||||
| \f[C] | ||||
| hledger\ \-f\ a.prices\ \-f\ b.journal | ||||
| \f[] | ||||
| .fi | ||||
| And some definitions: | ||||
| .PP | ||||
| the prices defined in a.prices will not be effective in b.journal (a | ||||
| sibling file). | ||||
| Instead, you have to include (or inline) a.prices in b.journal, or vice | ||||
| versa. | ||||
| .TS | ||||
| tab(@); | ||||
| lw(8.9n) lw(61.1n). | ||||
| T{ | ||||
| subdirective | ||||
| T}@T{ | ||||
| optional indented directive or unparsed text lines immediately following | ||||
| a parent directive | ||||
| T} | ||||
| T{ | ||||
| account code | ||||
| T}@T{ | ||||
| numeric code influencing account display order in most balance reports | ||||
| T} | ||||
| T{ | ||||
| number notation | ||||
| T}@T{ | ||||
| how to interpret numbers when parsing journal entries (the identity of | ||||
| the decimal separator character). | ||||
| (Currently each commodity can have its own notation, even in the same | ||||
| file.) | ||||
| T} | ||||
| T{ | ||||
| display style | ||||
| T}@T{ | ||||
| how to display amounts of a commodity in reports (symbol side and | ||||
| spacing, digit groups, decimal separator, decimal places) | ||||
| T} | ||||
| T{ | ||||
| directive scope | ||||
| T}@T{ | ||||
| which entries and (when there are multiple files) which files are | ||||
| affected by a directive | ||||
| T} | ||||
| .TE | ||||
| .PP | ||||
| As you can see, directives vary in which journal entries and files they | ||||
| affect, and whether they are focussed on input (parsing) or output | ||||
| (reports). | ||||
| Some directives have multiple effects. | ||||
| .PP | ||||
| If you have a journal made up of multiple files, or pass multiple \-f | ||||
| options on the command line, note that directives which affect input | ||||
| typically last only until the end of their defining file. | ||||
| This provides more simplicity and predictability, eg reports are not | ||||
| changed by writing file options in a different order. | ||||
| It can be surprising at times though. | ||||
| .SS Comment blocks | ||||
| .PP | ||||
| A line containing just \f[C]comment\f[] starts a commented region of the | ||||
| @ -1047,11 +1170,24 @@ account\ expenses\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 6000 | ||||
| \f[] | ||||
| .fi | ||||
| .PP | ||||
| This affects account display order in reports: accounts with codes are | ||||
| listed before accounts without codes, in increasing code order. | ||||
| (Otherwise, accounts are listed alphabetically.) Account codes should be | ||||
| all numeric digits, unique, and separated from the account name by at | ||||
| least two spaces (since account names may contain single spaces). | ||||
| This affects how accounts are sorted in account and balance reports: | ||||
| accounts with codes are listed before accounts without codes, and in | ||||
| increasing code order (instead of listing all accounts alphabetically). | ||||
| Warning, this feature is incomplete; account codes do not yet affect | ||||
| sort order in | ||||
| .IP \[bu] 2 | ||||
| the \f[C]accounts\f[] command | ||||
| .IP \[bu] 2 | ||||
| the \f[C]balance\f[] command's single\-column mode | ||||
| .IP \[bu] 2 | ||||
| flat mode balance reports (to work around this, declare account codes on | ||||
| the subaccounts as well). | ||||
| .IP \[bu] 2 | ||||
| hledger\-web's sidebar | ||||
| .PP | ||||
| Account codes should be all numeric digits, unique, and separated from | ||||
| the account name by at least two spaces (since account names may contain | ||||
| single spaces). | ||||
| By convention, often the first digit indicates the type of account, as | ||||
| in this numbering scheme and the example above. | ||||
| In future, we might use this to recognize account types. | ||||
| @ -1072,9 +1208,9 @@ account\ assets:bank:checking\ \ \ 1110 | ||||
| .fi | ||||
| .SS Rewriting accounts | ||||
| .PP | ||||
| You can define aliases which rewrite your account names (after reading | ||||
| the journal, before generating reports). | ||||
| hledger's account aliases can be useful for: | ||||
| You can define account alias rules which rewrite your account names, or | ||||
| parts of them, before generating reports. | ||||
| This can be useful for: | ||||
| .IP \[bu] 2 | ||||
| expanding shorthand account names to their full form, allowing easier | ||||
| data entry and a less verbose journal | ||||
| @ -1086,6 +1222,10 @@ combining two accounts into one | ||||
| .IP \[bu] 2 | ||||
| customising reports | ||||
| .PP | ||||
| Account aliases also rewrite account names in account directives. | ||||
| They do not affect account names being entered via hledger add or | ||||
| hledger\-web. | ||||
| .PP | ||||
| See also Cookbook: Rewrite account names. | ||||
| .SS Basic aliases | ||||
| .PP | ||||
| @ -1106,7 +1246,7 @@ command line. | ||||
| This affects all entries. | ||||
| It's useful for trying out aliases interactively. | ||||
| .PP | ||||
| OLD and NEW are full account names. | ||||
| OLD and NEW are case sensitive full account names. | ||||
| hledger will replace any occurrence of the old account name with the new | ||||
| one. | ||||
| Subaccounts are also affected. | ||||
| @ -1216,16 +1356,22 @@ include\ personal.journal | ||||
| .PP | ||||
| Prior to hledger 1.0, legacy \f[C]account\f[] and \f[C]end\f[] spellings | ||||
| were also supported. | ||||
| .PP | ||||
| A default parent account also affects account directives. | ||||
| It does not affect account names being entered via hledger add or | ||||
| hledger\-web. | ||||
| If account aliases are present, they are applied after the default | ||||
| parent account. | ||||
| .SS Periodic transactions | ||||
| .PP | ||||
| Periodic transaction rules describe transactions that recur. | ||||
| They allow you to generate future transactions for forecast reports | ||||
| (with \f[C]\-\-forecast\f[]), without having to write them out | ||||
| explicitly in the journal. | ||||
| They allow you to generate future transactions for forecasting, without | ||||
| having to write them out explicitly in the journal (with | ||||
| \f[C]\-\-forecast\f[]). | ||||
| Secondly, they also can be used to define budget goals (with | ||||
| \f[C]\-\-budget\f[]). | ||||
| .PP | ||||
| A periodic transaction rule looks like a regular journal entry, with the | ||||
| A periodic transaction rule looks like a normal journal entry, with the | ||||
| date replaced by a tilde (\f[C]~\f[]) followed by a period expression | ||||
| (mnemonic: \f[C]~\f[] looks like a repeating sine wave): | ||||
| .IP | ||||
| @ -1242,9 +1388,8 @@ date must fall on a natural boundary of the interval. | ||||
| Eg \f[C]monthly\ from\ 2018/1/1\f[] is valid, but | ||||
| \f[C]monthly\ from\ 2018/1/15\f[] is not. | ||||
| .PP | ||||
| Also, if you write a transaction description or same\-line comment, it | ||||
| must be separated from the period expression by \f[B]two or more | ||||
| spaces\f[]. | ||||
| If you write a transaction description or same\-line comment, it must be | ||||
| separated from the period expression by \f[B]two or more spaces\f[]. | ||||
| Eg: | ||||
| .IP | ||||
| .nf | ||||
| @ -1257,30 +1402,34 @@ Eg: | ||||
| \ \ \ \ income:acme\ inc | ||||
| \f[] | ||||
| .fi | ||||
| .SS Generating forecasts with periodic transactions | ||||
| .SS Forecasting with periodic transactions | ||||
| .PP | ||||
| With the \f[C]\-\-forecast\f[] flag, each periodic transaction rule | ||||
| generates future transactions recurring at the specified interval, | ||||
| beginning the day after the latest recorded journal transaction (or | ||||
| today, if there are no transactions), and ending 6 months from today (or | ||||
| at the report end date, if specified). | ||||
| The generated transactions will appear in all reports. | ||||
| They will have a \[lq]recur:\[rq] transaction tag added, with the | ||||
| generating period expression as its value. | ||||
| generates future transactions recurring at the specified interval. | ||||
| These are not saved in the journal, but appear in all reports. | ||||
| They will look like normal transactions, but with an extra tag named | ||||
| \f[C]recur\f[], whose value is the generating period expression. | ||||
| .PP | ||||
| This can be useful for forecasting balances into the future, and | ||||
| experimenting with different scenarios, without having to write a lot of | ||||
| journal entries. | ||||
| It can also help with data entry (describe most of your transactions | ||||
| with periodic rules, and every so often copy the output of | ||||
| \f[C]print\ \-\-forecast\f[] to the journal). | ||||
| Forecast transactions begin on or after the day after the latest normal | ||||
| (non\-periodic) transaction in the journal, or today if there are none. | ||||
| .PP | ||||
| You can generate one\-time transactions too; just write a period | ||||
| They end on or before the report end date if specified, or 180 days from | ||||
| today if unspecified. | ||||
| .PP | ||||
| Forecasting can be useful for estimating balances into the future, and | ||||
| experimenting with different scenarios. | ||||
| Note the start date logic means that forecasted transactions are | ||||
| automatically replaced by normal transactions as you add those. | ||||
| .PP | ||||
| Forecasting can also help with data entry: describe most of your | ||||
| transactions with periodic rules, and every so often copy the output of | ||||
| \f[C]print\ \-\-forecast\f[] to the journal. | ||||
| .PP | ||||
| You can generate one\-time transactions too: just write a period | ||||
| expression specifying a date with no report interval. | ||||
| You could use this to forecast an estimated transaction, that is | ||||
| automatically deactivated once the actual transaction (or any other | ||||
| transaction on or after that date) is recorded. | ||||
| .SS Setting budget goals with periodic transactions | ||||
| (You could also write a normal transaction with a future date, but | ||||
| remember this disables forecast transactions on previous dates.) | ||||
| .SS Budgeting with periodic transactions | ||||
| .PP | ||||
| With the \f[C]\-\-budget\f[] flag, currently supported by the balance | ||||
| command, each periodic transaction rule declares recurring budget goals | ||||
| @ -1297,7 +1446,7 @@ Automated posting rules describe extra postings that should be added to | ||||
| certain transactions at report time, when the \f[C]\-\-auto\f[] flag is | ||||
| used. | ||||
| .PP | ||||
| An automated posting rule looks like a regular journal entry, except the | ||||
| An automated posting rule looks like a normal journal entry, except the | ||||
| first line is an equal sign (\f[C]=\f[]) followed by a query (mnemonic: | ||||
| \f[C]=\f[] looks like posting lines): | ||||
| .IP | ||||
|  | ||||
| @ -755,11 +755,97 @@ File: hledger_journal.info,  Node: Directives,  Next: Periodic transactions,  Pr | ||||
| =============== | ||||
| 
 | ||||
| A directive is a line in the journal beginning with a special keyword, | ||||
| that influences how the journal is processed.  Some directives may also | ||||
| have indented sub-directives on the following lines ('commodity'). | ||||
| that influences how the journal is processed.  hledger's directives are | ||||
| based on a subset of Ledger's, but there are many differences (and also | ||||
| some differences between hledger versions). | ||||
| 
 | ||||
|    Directives' behaviour and interactions can get a little bit complex, | ||||
| so here is a table summarising the directives and their effects, with | ||||
| links to more detailed docs. | ||||
| 
 | ||||
| directiveend       subdirectivespurpose                  can affect (as of | ||||
|          directive                                       2018/06) | ||||
| ----------------------------------------------------------------------------- | ||||
| 'account'          any     declare an account name &     account code: | ||||
|                    text    optional account code         balance reports | ||||
|                                                          (except 'balance' | ||||
|                                                          single-column | ||||
|                                                          mode) | ||||
| 'alias'  'end              rewrite account names         following | ||||
|          aliases'                                        inline/included | ||||
|                                                          entries until end | ||||
|                                                          of current file | ||||
|                                                          or end directive | ||||
| 'apply   'end              prepend a common parent to    following | ||||
| account' apply             account names                 inline/included | ||||
|          account'                                        entries until end | ||||
|                                                          of current file | ||||
|                                                          or end directive | ||||
| 'comment''end              ignore part of journal        following | ||||
|          comment'                                        inline/included | ||||
|                                                          entries until end | ||||
|                                                          of current file | ||||
|                                                          or end directive | ||||
| 'commodity'        'format'declare a commodity and its   number notation: | ||||
|                            number notation & display     following entries | ||||
|                            style                         in that commodity | ||||
|                                                          in all files; | ||||
|                                                          display style: | ||||
|                                                          amounts of that | ||||
|                                                          commodity in | ||||
|                                                          reports | ||||
| 'D'                        declare a commodity, number   commodity: all | ||||
|                            notation & display style      commodityless | ||||
|                            for commodityless amounts     entries in all | ||||
|                                                          files; number | ||||
|                                                          notation: | ||||
|                                                          following | ||||
|                                                          commodityless | ||||
|                                                          entries and | ||||
|                                                          entries in that | ||||
|                                                          commodity in all | ||||
|                                                          files; display | ||||
|                                                          style: amounts of | ||||
|                                                          that commodity in | ||||
|                                                          reports | ||||
| 'include'                  include entries/directives    what the included | ||||
|                            from another file             directives affect | ||||
| 'P'                        declare a market price for    amounts of that | ||||
|                            a commodity                   commodity in | ||||
|                                                          reports, when -V | ||||
|                                                          is used | ||||
| 'Y'                        declare a year for yearless   following | ||||
|                            dates                         inline/included | ||||
|                                                          entries until end | ||||
|                                                          of current file | ||||
| 
 | ||||
|    And some definitions: | ||||
| 
 | ||||
| subdirectiveoptional indented directive or unparsed text lines | ||||
|           immediately following a parent directive | ||||
| account   numeric code influencing account display order in most | ||||
| code      balance reports | ||||
| number    how to interpret numbers when parsing journal entries (the | ||||
| notation  identity of the decimal separator character).  (Currently | ||||
|           each commodity can have its own notation, even in the same | ||||
|           file.) | ||||
| display   how to display amounts of a commodity in reports (symbol side | ||||
| style     and spacing, digit groups, decimal separator, decimal places) | ||||
| directive which entries and (when there are multiple files) which files | ||||
| scope     are affected by a directive | ||||
| 
 | ||||
|    As you can see, directives vary in which journal entries and files | ||||
| they affect, and whether they are focussed on input (parsing) or output | ||||
| (reports).  Some directives have multiple effects. | ||||
| 
 | ||||
|    If you have a journal made up of multiple files, or pass multiple -f | ||||
| options on the command line, note that directives which affect input | ||||
| typically last only until the end of their defining file.  This provides | ||||
| more simplicity and predictability, eg reports are not changed by | ||||
| writing file options in a different order.  It can be surprising at | ||||
| times though. | ||||
| * Menu: | ||||
| 
 | ||||
| * Directive scope multiple files:: | ||||
| * Comment blocks:: | ||||
| * Including other files:: | ||||
| * Default year:: | ||||
| @ -771,38 +857,9 @@ have indented sub-directives on the following lines ('commodity'). | ||||
| * Default parent account:: | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Directive scope multiple files,  Next: Comment blocks,  Up: Directives | ||||
| File: hledger_journal.info,  Node: Comment blocks,  Next: Including other files,  Up: Directives | ||||
| 
 | ||||
| 1.14.1 Directive scope, multiple files | ||||
| -------------------------------------- | ||||
| 
 | ||||
| Directives vary in which journal entries they affect: | ||||
| 
 | ||||
|    * some form a begin/end pair, and affect the enclosed journal entries | ||||
|      (and included files): | ||||
|      'alias' & 'end aliases'; 'comment' & 'end comment' | ||||
|    * some affect the subsequent journal entries (and included files) in | ||||
|      the current file: | ||||
|      'alias' or 'comment' without an end directive, 'Y' | ||||
|    * some affect all journal entries (and included files) anywhere in | ||||
|      the current file: | ||||
|      'account', 'commodity', 'D', 'P'. | ||||
| 
 | ||||
|    It's important to note that directives can affect the current file | ||||
| and child (included) files, but not sibling or parent (including) files. | ||||
| This is by design, for simplicity and predictability of reports, but it | ||||
| can be surprising at times.  Eg, in: | ||||
| 
 | ||||
| hledger -f a.prices -f b.journal | ||||
| 
 | ||||
|    the prices defined in a.prices will not be effective in b.journal (a | ||||
| sibling file).  Instead, you have to include (or inline) a.prices in | ||||
| b.journal, or vice versa. | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Comment blocks,  Next: Including other files,  Prev: Directive scope multiple files,  Up: Directives | ||||
| 
 | ||||
| 1.14.2 Comment blocks | ||||
| 1.14.1 Comment blocks | ||||
| --------------------- | ||||
| 
 | ||||
| A line containing just 'comment' starts a commented region of the file, | ||||
| @ -812,7 +869,7 @@ file) ends it.  See also comments. | ||||
|  | ||||
| File: hledger_journal.info,  Node: Including other files,  Next: Default year,  Prev: Comment blocks,  Up: Directives | ||||
| 
 | ||||
| 1.14.3 Including other files | ||||
| 1.14.2 Including other files | ||||
| ---------------------------- | ||||
| 
 | ||||
| You can pull in the content of additional files by writing an include | ||||
| @ -829,7 +886,7 @@ include journal, timeclock or timedot files, but not CSV files. | ||||
|  | ||||
| File: hledger_journal.info,  Node: Default year,  Next: Declaring commodities,  Prev: Including other files,  Up: Directives | ||||
| 
 | ||||
| 1.14.4 Default year | ||||
| 1.14.3 Default year | ||||
| ------------------- | ||||
| 
 | ||||
| You can set a default year to be used for subsequent dates which don't | ||||
| @ -855,7 +912,7 @@ Y2010      ; change default year to 2010 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Declaring commodities,  Next: Default commodity,  Prev: Default year,  Up: Directives | ||||
| 
 | ||||
| 1.14.5 Declaring commodities | ||||
| 1.14.4 Declaring commodities | ||||
| ---------------------------- | ||||
| 
 | ||||
| The 'commodity' directive declares commodities which may be used in the | ||||
| @ -893,7 +950,7 @@ or more decimal digits). | ||||
|  | ||||
| File: hledger_journal.info,  Node: Default commodity,  Next: Market prices,  Prev: Declaring commodities,  Up: Directives | ||||
| 
 | ||||
| 1.14.6 Default commodity | ||||
| 1.14.5 Default commodity | ||||
| ------------------------ | ||||
| 
 | ||||
| The 'D' directive sets a default commodity (and display format), to be | ||||
| @ -916,7 +973,7 @@ with a decimal point. | ||||
|  | ||||
| File: hledger_journal.info,  Node: Market prices,  Next: Declaring accounts,  Prev: Default commodity,  Up: Directives | ||||
| 
 | ||||
| 1.14.7 Market prices | ||||
| 1.14.6 Market prices | ||||
| -------------------- | ||||
| 
 | ||||
| The 'P' directive declares a market price, which is an exchange rate | ||||
| @ -946,7 +1003,7 @@ another commodity using these prices. | ||||
|  | ||||
| File: hledger_journal.info,  Node: Declaring accounts,  Next: Rewriting accounts,  Prev: Market prices,  Up: Directives | ||||
| 
 | ||||
| 1.14.8 Declaring accounts | ||||
| 1.14.7 Declaring accounts | ||||
| ------------------------- | ||||
| 
 | ||||
| The 'account' directive predeclares account names.  The simplest form is | ||||
| @ -966,14 +1023,23 @@ account liabilities             2000 | ||||
| account revenues                4000 | ||||
| account expenses                6000 | ||||
| 
 | ||||
|    This affects account display order in reports: accounts with codes | ||||
| are listed before accounts without codes, in increasing code order. | ||||
| (Otherwise, accounts are listed alphabetically.)  Account codes should | ||||
| be all numeric digits, unique, and separated from the account name by at | ||||
| least two spaces (since account names may contain single spaces).  By | ||||
| convention, often the first digit indicates the type of account, as in | ||||
| this numbering scheme and the example above.  In future, we might use | ||||
| this to recognize account types. | ||||
|    This affects how accounts are sorted in account and balance reports: | ||||
| accounts with codes are listed before accounts without codes, and in | ||||
| increasing code order (instead of listing all accounts alphabetically). | ||||
| Warning, this feature is incomplete; account codes do not yet affect | ||||
| sort order in | ||||
| 
 | ||||
|    * the 'accounts' command | ||||
|    * the 'balance' command's single-column mode | ||||
|    * flat mode balance reports (to work around this, declare account | ||||
|      codes on the subaccounts as well). | ||||
|    * hledger-web's sidebar | ||||
| 
 | ||||
|    Account codes should be all numeric digits, unique, and separated | ||||
| from the account name by at least two spaces (since account names may | ||||
| contain single spaces).  By convention, often the first digit indicates | ||||
| the type of account, as in this numbering scheme and the example above. | ||||
| In future, we might use this to recognize account types. | ||||
| 
 | ||||
|    An account directive can also have indented subdirectives following | ||||
| it, which are currently ignored.  Here is the full syntax: | ||||
| @ -988,12 +1054,11 @@ account assets:bank:checking   1110 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Rewriting accounts,  Next: Default parent account,  Prev: Declaring accounts,  Up: Directives | ||||
| 
 | ||||
| 1.14.9 Rewriting accounts | ||||
| 1.14.8 Rewriting accounts | ||||
| ------------------------- | ||||
| 
 | ||||
| You can define aliases which rewrite your account names (after reading | ||||
| the journal, before generating reports).  hledger's account aliases can | ||||
| be useful for: | ||||
| You can define account alias rules which rewrite your account names, or | ||||
| parts of them, before generating reports.  This can be useful for: | ||||
| 
 | ||||
|    * expanding shorthand account names to their full form, allowing | ||||
|      easier data entry and a less verbose journal | ||||
| @ -1002,6 +1067,10 @@ be useful for: | ||||
|      or combining two accounts into one | ||||
|    * customising reports | ||||
| 
 | ||||
|    Account aliases also rewrite account names in account directives. | ||||
| They do not affect account names being entered via hledger add or | ||||
| hledger-web. | ||||
| 
 | ||||
|    See also Cookbook: Rewrite account names. | ||||
| * Menu: | ||||
| 
 | ||||
| @ -1013,7 +1082,7 @@ be useful for: | ||||
|  | ||||
| File: hledger_journal.info,  Node: Basic aliases,  Next: Regex aliases,  Up: Rewriting accounts | ||||
| 
 | ||||
| 1.14.9.1 Basic aliases | ||||
| 1.14.8.1 Basic aliases | ||||
| ...................... | ||||
| 
 | ||||
| To set an account alias, use the 'alias' directive in your journal file. | ||||
| @ -1026,9 +1095,9 @@ alias OLD = NEW | ||||
| This affects all entries.  It's useful for trying out aliases | ||||
| interactively. | ||||
| 
 | ||||
|    OLD and NEW are full account names.  hledger will replace any | ||||
| occurrence of the old account name with the new one.  Subaccounts are | ||||
| also affected.  Eg: | ||||
|    OLD and NEW are case sensitive full account names.  hledger will | ||||
| replace any occurrence of the old account name with the new one. | ||||
| Subaccounts are also affected.  Eg: | ||||
| 
 | ||||
| alias checking = assets:bank:wells fargo:checking | ||||
| # rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" | ||||
| @ -1036,7 +1105,7 @@ alias checking = assets:bank:wells fargo:checking | ||||
|  | ||||
| File: hledger_journal.info,  Node: Regex aliases,  Next: Multiple aliases,  Prev: Basic aliases,  Up: Rewriting accounts | ||||
| 
 | ||||
| 1.14.9.2 Regex aliases | ||||
| 1.14.8.2 Regex aliases | ||||
| ...................... | ||||
| 
 | ||||
| There is also a more powerful variant that uses a regular expression, | ||||
| @ -1061,7 +1130,7 @@ whitespace. | ||||
|  | ||||
| File: hledger_journal.info,  Node: Multiple aliases,  Next: end aliases,  Prev: Regex aliases,  Up: Rewriting accounts | ||||
| 
 | ||||
| 1.14.9.3 Multiple aliases | ||||
| 1.14.8.3 Multiple aliases | ||||
| ......................... | ||||
| 
 | ||||
| You can define as many aliases as you like using directives or | ||||
| @ -1077,7 +1146,7 @@ following order: | ||||
|  | ||||
| File: hledger_journal.info,  Node: end aliases,  Prev: Multiple aliases,  Up: Rewriting accounts | ||||
| 
 | ||||
| 1.14.9.4 'end aliases' | ||||
| 1.14.8.4 'end aliases' | ||||
| ...................... | ||||
| 
 | ||||
| You can clear (forget) all currently defined aliases with the 'end | ||||
| @ -1088,8 +1157,8 @@ end aliases | ||||
|  | ||||
| File: hledger_journal.info,  Node: Default parent account,  Prev: Rewriting accounts,  Up: Directives | ||||
| 
 | ||||
| 1.14.10 Default parent account | ||||
| ------------------------------ | ||||
| 1.14.9 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 | ||||
| @ -1121,6 +1190,11 @@ include personal.journal | ||||
|    Prior to hledger 1.0, legacy 'account' and 'end' spellings were also | ||||
| supported. | ||||
| 
 | ||||
|    A default parent account also affects account directives.  It does | ||||
| not affect account names being entered via hledger add or hledger-web. | ||||
| If account aliases are present, they are applied after the default | ||||
| parent account. | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Periodic transactions,  Next: Automated postings,  Prev: Directives,  Up: FILE FORMAT | ||||
| 
 | ||||
| @ -1128,12 +1202,11 @@ File: hledger_journal.info,  Node: Periodic transactions,  Next: Automated posti | ||||
| ========================== | ||||
| 
 | ||||
| Periodic transaction rules describe transactions that recur.  They allow | ||||
| you to generate future transactions for forecast reports (with | ||||
| '--forecast'), without having to write them out explicitly in the | ||||
| journal.  Secondly, they also can be used to define budget goals (with | ||||
| '--budget'). | ||||
| you to generate future transactions for forecasting, without having to | ||||
| write them out explicitly in the journal (with '--forecast').  Secondly, | ||||
| they also can be used to define budget goals (with '--budget'). | ||||
| 
 | ||||
|    A periodic transaction rule looks like a regular journal entry, with | ||||
|    A periodic transaction rule looks like a normal journal entry, with | ||||
| the date replaced by a tilde ('~') followed by a period expression | ||||
| (mnemonic: '~' looks like a repeating sine wave): | ||||
| 
 | ||||
| @ -1145,9 +1218,8 @@ the date replaced by a tilde ('~') followed by a period expression | ||||
| date must fall on a natural boundary of the interval.  Eg 'monthly from | ||||
| 2018/1/1' is valid, but 'monthly from 2018/1/15' is not. | ||||
| 
 | ||||
|    Also, if you write a transaction description or same-line comment, it | ||||
| must be separated from the period expression by *two or more spaces*. | ||||
| Eg: | ||||
|    If you write a transaction description or same-line comment, it must | ||||
| be separated from the period expression by *two or more spaces*.  Eg: | ||||
| 
 | ||||
| ;                              2 or more spaces | ||||
| ;                                    || | ||||
| @ -1158,40 +1230,47 @@ Eg: | ||||
| 
 | ||||
| * Menu: | ||||
| 
 | ||||
| * Generating forecasts with periodic transactions:: | ||||
| * Setting budget goals with periodic transactions:: | ||||
| * Forecasting with periodic transactions:: | ||||
| * Budgeting with periodic transactions:: | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Generating forecasts with periodic transactions,  Next: Setting budget goals with periodic transactions,  Up: Periodic transactions | ||||
| File: hledger_journal.info,  Node: Forecasting with periodic transactions,  Next: Budgeting with periodic transactions,  Up: Periodic transactions | ||||
| 
 | ||||
| 1.15.1 Generating forecasts with periodic transactions | ||||
| ------------------------------------------------------ | ||||
| 1.15.1 Forecasting with periodic transactions | ||||
| --------------------------------------------- | ||||
| 
 | ||||
| With the '--forecast' flag, each periodic transaction rule generates | ||||
| future transactions recurring at the specified interval, beginning the | ||||
| day after the latest recorded journal transaction (or today, if there | ||||
| are no transactions), and ending 6 months from today (or at the report | ||||
| end date, if specified).  The generated transactions will appear in all | ||||
| reports.  They will have a "recur:" transaction tag added, with the | ||||
| generating period expression as its value. | ||||
| future transactions recurring at the specified interval.  These are not | ||||
| saved in the journal, but appear in all reports.  They will look like | ||||
| normal transactions, but with an extra tag named 'recur', whose value is | ||||
| the generating period expression. | ||||
| 
 | ||||
|    This can be useful for forecasting balances into the future, and | ||||
| experimenting with different scenarios, without having to write a lot of | ||||
| journal entries.  It can also help with data entry (describe most of | ||||
| your transactions with periodic rules, and every so often copy the | ||||
| output of 'print --forecast' to the journal). | ||||
|    Forecast transactions begin on or after the day after the latest | ||||
| normal (non-periodic) transaction in the journal, or today if there are | ||||
| none. | ||||
| 
 | ||||
|    You can generate one-time transactions too; just write a period | ||||
| expression specifying a date with no report interval.  You could use | ||||
| this to forecast an estimated transaction, that is automatically | ||||
| deactivated once the actual transaction (or any other transaction on or | ||||
| after that date) is recorded. | ||||
|    They end on or before the report end date if specified, or 180 days | ||||
| from today if unspecified. | ||||
| 
 | ||||
|    Forecasting can be useful for estimating balances into the future, | ||||
| and experimenting with different scenarios.  Note the start date logic | ||||
| means that forecasted transactions are automatically replaced by normal | ||||
| transactions as you add those. | ||||
| 
 | ||||
|    Forecasting can also help with data entry: describe most of your | ||||
| transactions with periodic rules, and every so often copy the output of | ||||
| 'print --forecast' to the journal. | ||||
| 
 | ||||
|    You can generate one-time transactions too: just write a period | ||||
| expression specifying a date with no report interval.  (You could also | ||||
| write a normal transaction with a future date, but remember this | ||||
| disables forecast transactions on previous dates.) | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Setting budget goals with periodic transactions,  Prev: Generating forecasts with periodic transactions,  Up: Periodic transactions | ||||
| File: hledger_journal.info,  Node: Budgeting with periodic transactions,  Prev: Forecasting with periodic transactions,  Up: Periodic transactions | ||||
| 
 | ||||
| 1.15.2 Setting budget goals with periodic transactions | ||||
| ------------------------------------------------------ | ||||
| 1.15.2 Budgeting with periodic transactions | ||||
| ------------------------------------------- | ||||
| 
 | ||||
| With the '--budget' flag, currently supported by the balance command, | ||||
| each periodic transaction rule declares recurring budget goals for the | ||||
| @ -1212,7 +1291,7 @@ File: hledger_journal.info,  Node: Automated postings,  Prev: Periodic transacti | ||||
| Automated posting rules describe extra postings that should be added to | ||||
| certain transactions at report time, when the '--auto' flag is used. | ||||
| 
 | ||||
|    An automated posting rule looks like a regular journal entry, except | ||||
|    An automated posting rule looks like a normal journal entry, except | ||||
| the first line is an equal sign ('=') followed by a query (mnemonic: '=' | ||||
| looks like posting lines): | ||||
| 
 | ||||
| @ -1325,43 +1404,41 @@ Node: Tags26398 | ||||
| Ref: #tags26516 | ||||
| Node: Directives27918 | ||||
| Ref: #directives28061 | ||||
| Node: Directive scope multiple files28517 | ||||
| Ref: #directive-scope-multiple-files28705 | ||||
| Node: Comment blocks29655 | ||||
| Ref: #comment-blocks29839 | ||||
| Node: Including other files30015 | ||||
| Ref: #including-other-files30195 | ||||
| Node: Default year30584 | ||||
| Ref: #default-year30753 | ||||
| Node: Declaring commodities31176 | ||||
| Ref: #declaring-commodities31359 | ||||
| Node: Default commodity32586 | ||||
| Ref: #default-commodity32762 | ||||
| Node: Market prices33398 | ||||
| Ref: #market-prices33563 | ||||
| Node: Declaring accounts34404 | ||||
| Ref: #declaring-accounts34580 | ||||
| Node: Rewriting accounts35927 | ||||
| Ref: #rewriting-accounts36112 | ||||
| Node: Basic aliases36716 | ||||
| Ref: #basic-aliases36862 | ||||
| Node: Regex aliases37552 | ||||
| Ref: #regex-aliases37723 | ||||
| Node: Multiple aliases38441 | ||||
| Ref: #multiple-aliases38616 | ||||
| Node: end aliases39114 | ||||
| Ref: #end-aliases39261 | ||||
| Node: Default parent account39362 | ||||
| Ref: #default-parent-account39530 | ||||
| Node: Periodic transactions40189 | ||||
| Ref: #periodic-transactions40368 | ||||
| Node: Generating forecasts with periodic transactions41609 | ||||
| Ref: #generating-forecasts-with-periodic-transactions41890 | ||||
| Node: Setting budget goals with periodic transactions42983 | ||||
| Ref: #setting-budget-goals-with-periodic-transactions43264 | ||||
| Node: Automated postings43723 | ||||
| Ref: #automated-postings43877 | ||||
| Node: EDITOR SUPPORT45017 | ||||
| Ref: #editor-support45135 | ||||
| Node: Comment blocks33917 | ||||
| Ref: #comment-blocks34062 | ||||
| Node: Including other files34238 | ||||
| Ref: #including-other-files34418 | ||||
| Node: Default year34807 | ||||
| Ref: #default-year34976 | ||||
| Node: Declaring commodities35399 | ||||
| Ref: #declaring-commodities35582 | ||||
| Node: Default commodity36809 | ||||
| Ref: #default-commodity36985 | ||||
| Node: Market prices37621 | ||||
| Ref: #market-prices37786 | ||||
| Node: Declaring accounts38627 | ||||
| Ref: #declaring-accounts38803 | ||||
| Node: Rewriting accounts40474 | ||||
| Ref: #rewriting-accounts40659 | ||||
| Node: Basic aliases41393 | ||||
| Ref: #basic-aliases41539 | ||||
| Node: Regex aliases42243 | ||||
| Ref: #regex-aliases42414 | ||||
| Node: Multiple aliases43132 | ||||
| Ref: #multiple-aliases43307 | ||||
| Node: end aliases43805 | ||||
| Ref: #end-aliases43952 | ||||
| Node: Default parent account44053 | ||||
| Ref: #default-parent-account44219 | ||||
| Node: Periodic transactions45103 | ||||
| Ref: #periodic-transactions45282 | ||||
| Node: Forecasting with periodic transactions46492 | ||||
| Ref: #forecasting-with-periodic-transactions46735 | ||||
| Node: Budgeting with periodic transactions47976 | ||||
| Ref: #budgeting-with-periodic-transactions48215 | ||||
| Node: Automated postings48674 | ||||
| Ref: #automated-postings48828 | ||||
| Node: EDITOR SUPPORT49967 | ||||
| Ref: #editor-support50085 | ||||
|  | ||||
| End Tag Table | ||||
|  | ||||
| @ -601,34 +601,97 @@ FILE FORMAT | ||||
| 
 | ||||
|    Directives | ||||
|        A directive is a line in the journal beginning with a special  keyword, | ||||
|        that influences how the journal is processed.  Some directives may also | ||||
|        have indented sub-directives on the following lines (commodity). | ||||
|        that influences how the journal is processed.  hledger's directives are | ||||
|        based on a subset of Ledger's, but there are many differences (and also | ||||
|        some differences between hledger versions). | ||||
| 
 | ||||
|    Directive scope, multiple files | ||||
|        Directives vary in which journal entries they affect: | ||||
|        Directives' behaviour and interactions can get a little bit complex, so | ||||
|        here is a table summarising the  directives  and  their  effects,  with | ||||
|        links to more detailed docs. | ||||
| 
 | ||||
|        o some form a begin/end pair, and affect the enclosed  journal  entries | ||||
|          (and included files): | ||||
|        alias & end aliases; comment & end comment | ||||
| 
 | ||||
|        o some  affect  the  subsequent journal entries (and included files) in | ||||
|          the current file: | ||||
|        alias or comment without an end directive, Y | ||||
|        direc-          end                 subdi-    purpose                        can affect  (as  of | ||||
|        tive            directive           rec-                                     2018/06) | ||||
|                                            tives | ||||
|        ------------------------------------------------------------------------------------------------- | ||||
|        account                             any       declare an  account  name  &   account  code: bal- | ||||
|                                            text      optional account code          ance        reports | ||||
|                                                                                     (except     balance | ||||
|                                                                                     single-column mode) | ||||
|        alias           end aliases                   rewrite account names          following | ||||
|                                                                                     inline/included | ||||
|                                                                                     entries  until  end | ||||
|                                                                                     of  current file or | ||||
|                                                                                     end directive | ||||
|        apply account   end apply account             prepend a common  parent  to   following | ||||
|                                                      account names                  inline/included | ||||
|                                                                                     entries  until  end | ||||
|                                                                                     of current file  or | ||||
|                                                                                     end directive | ||||
|        comment         end comment                   ignore part of journal         following | ||||
|                                                                                     inline/included | ||||
|                                                                                     entries  until  end | ||||
|                                                                                     of current file  or | ||||
|                                                                                     end directive | ||||
|        commodity                           format    declare  a commodity and its   number    notation: | ||||
|                                                      number  notation  &  display   following   entries | ||||
|                                                      style                          in  that  commodity | ||||
|                                                                                     in all files;  dis- | ||||
|                                                                                     play style: amounts | ||||
|                                                                                     of  that  commodity | ||||
|                                                                                     in reports | ||||
|        D                                             declare  a commodity, number   commodity: all com- | ||||
|                                                      notation & display style for   modityless  entries | ||||
|                                                      commodityless amounts          in  all files; num- | ||||
|                                                                                     ber notation:  fol- | ||||
|                                                                                     lowing   commodity- | ||||
|                                                                                     less  entries   and | ||||
|                                                                                     entries   in   that | ||||
|                                                                                     commodity  in   all | ||||
|                                                                                     files;      display | ||||
|                                                                                     style:  amounts  of | ||||
|                                                                                     that  commodity  in | ||||
|                                                                                     reports | ||||
|        include                                       include   entries/directives   what  the  included | ||||
|                                                      from another file              directives affect | ||||
|        P                                             declare a market price for a   amounts   of   that | ||||
|                                                      commodity                      commodity        in | ||||
|                                                                                     reports, when -V is | ||||
|                                                                                     used | ||||
|        Y                                             declare a year for  yearless   following | ||||
|                                                      dates                          inline/included | ||||
|                                                                                     entries  until  end | ||||
|                                                                                     of current file | ||||
| 
 | ||||
|        o some affect all journal entries (and included files) anywhere in  the | ||||
|          current file: | ||||
|        account, commodity, D, P. | ||||
|        And some definitions: | ||||
| 
 | ||||
|        It's  important to note that directives can affect the current file and | ||||
|        child (included) files, but not sibling or  parent  (including)  files. | ||||
|        This is by design, for simplicity and predictability of reports, but it | ||||
|        can be surprising at times.  Eg, in: | ||||
| 
 | ||||
|               hledger -f a.prices -f b.journal | ||||
|        subdirec-   optional  indented  directive  or unparsed text lines immedi- | ||||
|        tive        ately following a parent directive | ||||
|        account     numeric  code  influencing account display order in most bal- | ||||
|        code        ance reports | ||||
| 
 | ||||
|        the prices defined in a.prices will not be effective  in  b.journal  (a | ||||
|        sibling  file).   Instead,  you have to include (or inline) a.prices in | ||||
|        b.journal, or vice versa. | ||||
| 
 | ||||
| 
 | ||||
|        number      how  to  interpret  numbers when parsing journal entries (the | ||||
|        notation    identity of the  decimal  separator  character).   (Currently | ||||
|                    each  commodity  can  have its own notation, even in the same | ||||
|                    file.) | ||||
|        display     how to display amounts of a commodity in reports (symbol side | ||||
|        style       and spacing, digit groups, decimal separator, decimal places) | ||||
|        directive   which entries and (when there are multiple files) which files | ||||
|        scope       are affected by a directive | ||||
| 
 | ||||
|        As you can see, directives vary in which journal entries and files they | ||||
|        affect, and whether they are focussed  on  input  (parsing)  or  output | ||||
|        (reports).  Some directives have multiple effects. | ||||
| 
 | ||||
|        If  you  have  a journal made up of multiple files, or pass multiple -f | ||||
|        options on the command line, note that directives  which  affect  input | ||||
|        typically  last  only  until the end of their defining file.  This pro- | ||||
|        vides more simplicity and predictability, eg reports are not changed by | ||||
|        writing  file  options  in  a different order.  It can be surprising at | ||||
|        times though. | ||||
| 
 | ||||
|    Comment blocks | ||||
|        A line containing just comment starts a commented region of  the  file, | ||||
| @ -763,14 +826,26 @@ FILE FORMAT | ||||
|               account revenues                4000 | ||||
|               account expenses                6000 | ||||
| 
 | ||||
|        This affects account display order in reports: accounts with codes  are | ||||
|        listed  before accounts without codes, in increasing code order.  (Oth- | ||||
|        erwise, accounts are listed alphabetically.) Account  codes  should  be | ||||
|        all  numeric  digits, unique, and separated from the account name by at | ||||
|        least two spaces (since account names may contain single  spaces).   By | ||||
|        convention,  often the first digit indicates the type of account, as in | ||||
|        this numbering scheme and the example above.  In future, we  might  use | ||||
|        this to recognize account types. | ||||
|        This affects how accounts are sorted in account  and  balance  reports: | ||||
|        accounts  with  codes  are listed before accounts without codes, and in | ||||
|        increasing code order (instead of listing all accounts alphabetically). | ||||
|        Warning,  this  feature  is incomplete; account codes do not yet affect | ||||
|        sort order in | ||||
| 
 | ||||
|        o the accounts command | ||||
| 
 | ||||
|        o the balance command's single-column mode | ||||
| 
 | ||||
|        o flat mode balance reports (to work around this, declare account codes | ||||
|          on the subaccounts as well). | ||||
| 
 | ||||
|        o hledger-web's sidebar | ||||
| 
 | ||||
|        Account  codes should be all numeric digits, unique, and separated from | ||||
|        the account name by at least two spaces (since account names  may  con- | ||||
|        tain  single  spaces).   By convention, often the first digit indicates | ||||
|        the type of account, as in this numbering scheme and the example above. | ||||
|        In future, we might use this to recognize account types. | ||||
| 
 | ||||
|        An account directive can also have indented subdirectives following it, | ||||
|        which are currently ignored.  Here is the full syntax: | ||||
| @ -783,9 +858,8 @@ FILE FORMAT | ||||
|                 some-tag:12345 | ||||
| 
 | ||||
|    Rewriting accounts | ||||
|        You can define aliases which rewrite your account names (after  reading | ||||
|        the journal, before generating reports).  hledger's account aliases can | ||||
|        be useful for: | ||||
|        You can define account alias rules which rewrite your account names, or | ||||
|        parts of them, before generating reports.  This can be useful for: | ||||
| 
 | ||||
|        o expanding shorthand account names to their full form, allowing easier | ||||
|          data entry and a less verbose journal | ||||
| @ -797,11 +871,15 @@ FILE FORMAT | ||||
| 
 | ||||
|        o customising reports | ||||
| 
 | ||||
|        Account aliases also rewrite account names in account directives.  They | ||||
|        do  not  affect  account  names  being  entered  via  hledger  add   or | ||||
|        hledger-web. | ||||
| 
 | ||||
|        See also Cookbook: Rewrite account names. | ||||
| 
 | ||||
|    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 | ||||
|        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 | ||||
|        included files.  The spaces around the = are optional: | ||||
| 
 | ||||
|               alias OLD = NEW | ||||
| @ -809,54 +887,54 @@ FILE FORMAT | ||||
|        Or, you can use the --alias 'OLD=NEW' option on the command line.  This | ||||
|        affects all entries.  It's useful for trying out aliases interactively. | ||||
| 
 | ||||
|        OLD and NEW are full account names.  hledger will  replace  any  occur- | ||||
|        rence  of  the old account name with the new one.  Subaccounts are also | ||||
|        affected.  Eg: | ||||
|        OLD  and  NEW  are  case  sensitive  full  account names.  hledger will | ||||
|        replace any occurrence of the old account name with the new one.   Sub- | ||||
|        accounts are also affected.  Eg: | ||||
| 
 | ||||
|               alias checking = assets:bank:wells fargo:checking | ||||
|               # rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" | ||||
| 
 | ||||
|    Regex aliases | ||||
|        There is also a more powerful variant that uses a  regular  expression, | ||||
|        There  is  also a more powerful variant that uses a regular expression, | ||||
|        indicated by the forward slashes: | ||||
| 
 | ||||
|               alias /REGEX/ = REPLACEMENT | ||||
| 
 | ||||
|        or --alias '/REGEX/=REPLACEMENT'. | ||||
| 
 | ||||
|        REGEX  is  a  case-insensitive regular expression.  Anywhere it matches | ||||
|        inside an account name, the matched part will be replaced  by  REPLACE- | ||||
|        MENT.   If REGEX contains parenthesised match groups, these can be ref- | ||||
|        REGEX is a case-insensitive regular expression.   Anywhere  it  matches | ||||
|        inside  an  account name, the matched part will be replaced by REPLACE- | ||||
|        MENT.  If REGEX contains parenthesised match groups, these can be  ref- | ||||
|        erenced by the usual numeric backreferences in REPLACEMENT.  Eg: | ||||
| 
 | ||||
|               alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3 | ||||
|               # rewrites "assets:bank:wells fargo:checking" to  "assets:wells fargo checking" | ||||
| 
 | ||||
|        Also note that REPLACEMENT continues to the end of line (or on  command | ||||
|        line,  to  end  of  option argument), so it can contain trailing white- | ||||
|        Also  note that REPLACEMENT continues to the end of line (or on command | ||||
|        line, to end of option argument), so it  can  contain  trailing  white- | ||||
|        space. | ||||
| 
 | ||||
|    Multiple aliases | ||||
|        You can define as many aliases as you like  using  directives  or  com- | ||||
|        mand-line  options.  Aliases are recursive - each alias sees the result | ||||
|        of applying previous ones.   (This  is  different  from  Ledger,  where | ||||
|        You  can  define  as  many aliases as you like using directives or com- | ||||
|        mand-line options.  Aliases are recursive - each alias sees the  result | ||||
|        of  applying  previous  ones.   (This  is  different from Ledger, where | ||||
|        aliases are non-recursive by default).  Aliases are applied in the fol- | ||||
|        lowing order: | ||||
| 
 | ||||
|        1. alias directives, most recently seen first (recent  directives  take | ||||
|        1. alias  directives,  most recently seen first (recent directives take | ||||
|           precedence over earlier ones; directives not yet seen are ignored) | ||||
| 
 | ||||
|        2. alias options, in the order they appear on the command line | ||||
| 
 | ||||
|    end aliases | ||||
|        You   can  clear  (forget)  all  currently  defined  aliases  with  the | ||||
|        You  can  clear  (forget)  all  currently  defined  aliases  with   the | ||||
|        end aliases directive: | ||||
| 
 | ||||
|               end aliases | ||||
| 
 | ||||
|    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 | ||||
|        You  can  specify  a  parent  account  which  will  be prepended to all | ||||
|        accounts within a section of the journal.  Use  the  apply account  and | ||||
|        end apply account directives like so: | ||||
| 
 | ||||
|               apply account home | ||||
| @ -873,7 +951,7 @@ FILE FORMAT | ||||
|                   home:food           $10 | ||||
|                   home:cash          $-10 | ||||
| 
 | ||||
|        If end apply account is omitted, the effect lasts to  the  end  of  the | ||||
|        If  end apply account  is  omitted,  the effect lasts to the end of the | ||||
|        file.  Included files are also affected, eg: | ||||
| 
 | ||||
|               apply account business | ||||
| @ -882,19 +960,23 @@ FILE FORMAT | ||||
|               apply account personal | ||||
|               include personal.journal | ||||
| 
 | ||||
|        Prior  to  hledger 1.0, legacy account and end spellings were also sup- | ||||
|        Prior to hledger 1.0, legacy account and end spellings were  also  sup- | ||||
|        ported. | ||||
| 
 | ||||
|        A  default parent account also affects account directives.  It does not | ||||
|        affect account names being entered via hledger add or hledger-web.   If | ||||
|        account  aliases are present, they are applied after the default parent | ||||
|        account. | ||||
| 
 | ||||
|    Periodic transactions | ||||
|        Periodic transaction rules  describe  transactions  that  recur.   They | ||||
|        allow  you  to  generate future transactions for forecast reports (with | ||||
|        --forecast), without having to write them out explicitly in  the  jour- | ||||
|        nal.   Secondly,  they  also  can  be used to define budget goals (with | ||||
|        --budget). | ||||
|        allow you to generate future transactions for forecasting, without hav- | ||||
|        ing to write them out explicitly  in  the  journal  (with  --forecast). | ||||
|        Secondly, they also can be used to define budget goals (with --budget). | ||||
| 
 | ||||
|        A periodic transaction rule looks like a regular  journal  entry,  with | ||||
|        the  date  replaced  by  a  tilde  (~)  followed by a period expression | ||||
|        (mnemonic: ~ looks like a repeating sine wave): | ||||
|        A periodic transaction rule looks like a normal journal entry, with the | ||||
|        date replaced by a tilde (~) followed by a period expression (mnemonic: | ||||
|        ~ looks like a repeating sine wave): | ||||
| 
 | ||||
|               ~ monthly | ||||
|                   expenses:rent          $2000 | ||||
| @ -904,9 +986,8 @@ FILE FORMAT | ||||
|        date   must   fall   on   a  natural  boundary  of  the  interval.   Eg | ||||
|        monthly from 2018/1/1 is valid, but monthly from 2018/1/15 is not. | ||||
| 
 | ||||
|        Also, if you write a transaction description or same-line  comment,  it | ||||
|        must  be  separated  from  the period expression by two or more spaces. | ||||
|        Eg: | ||||
|        If you write a transaction description or same-line comment, it must be | ||||
|        separated from the period expression by two or more spaces.  Eg: | ||||
| 
 | ||||
|               ;                              2 or more spaces | ||||
|               ;                                    || | ||||
| @ -915,28 +996,34 @@ FILE FORMAT | ||||
|                   assets:bank:checking   $1500 | ||||
|                   income:acme inc | ||||
| 
 | ||||
|    Generating forecasts with periodic transactions | ||||
|        With the --forecast flag,  each  periodic  transaction  rule  generates | ||||
|        future  transactions recurring at the specified interval, beginning the | ||||
|        day after the latest recorded journal transaction (or today,  if  there | ||||
|        are  no transactions), and ending 6 months from today (or at the report | ||||
|        end date, if specified).  The generated transactions will appear in all | ||||
|        reports.   They  will  have  a "recur:" transaction tag added, with the | ||||
|        generating period expression as its value. | ||||
|    Forecasting with periodic transactions | ||||
|        With  the  --forecast  flag,  each  periodic transaction rule generates | ||||
|        future transactions recurring at the specified interval.  These are not | ||||
|        saved  in  the journal, but appear in all reports.  They will look like | ||||
|        normal transactions, but with an extra tag named recur, whose value  is | ||||
|        the generating period expression. | ||||
| 
 | ||||
|        This can be useful for forecasting balances into the future, and exper- | ||||
|        imenting  with  different  scenarios,  without having to write a lot of | ||||
|        journal entries.  It can also help with data entry  (describe  most  of | ||||
|        your transactions with periodic rules, and every so often copy the out- | ||||
|        put of print --forecast to the journal). | ||||
|        Forecast transactions begin on or after the day after the latest normal | ||||
|        (non-periodic) transaction in the journal, or today if there are  none. | ||||
| 
 | ||||
|        You can generate one-time transactions too; just write a period expres- | ||||
|        sion  specifying a date with no report interval.  You could use this to | ||||
|        forecast an estimated transaction, that  is  automatically  deactivated | ||||
|        once  the actual transaction (or any other transaction on or after that | ||||
|        date) is recorded. | ||||
|        They  end  on  or  before the report end date if specified, or 180 days | ||||
|        from today if unspecified. | ||||
| 
 | ||||
|    Setting budget goals with periodic transactions | ||||
|        Forecasting can be useful for estimating balances into the future,  and | ||||
|        experimenting  with  different  scenarios.   Note  the start date logic | ||||
|        means that forecasted transactions are automatically replaced by normal | ||||
|        transactions as you add those. | ||||
| 
 | ||||
|        Forecasting can also help with data entry: describe most of your trans- | ||||
|        actions with periodic rules, and every so  often  copy  the  output  of | ||||
|        print --forecast to the journal. | ||||
| 
 | ||||
|        You can generate one-time transactions too: just write a period expres- | ||||
|        sion specifying a date with no report interval.  (You could also  write | ||||
|        a  normal  transaction  with  a future date, but remember this disables | ||||
|        forecast transactions on previous dates.) | ||||
| 
 | ||||
|    Budgeting with periodic transactions | ||||
|        With the --budget flag, currently supported  by  the  balance  command, | ||||
|        each  periodic transaction rule declares recurring budget goals for the | ||||
|        specified accounts.  Eg the first example  above  declares  a  goal  of | ||||
| @ -951,9 +1038,9 @@ FILE FORMAT | ||||
|        Automated posting rules describe extra postings that should be added to | ||||
|        certain transactions at report time, when the --auto flag is used. | ||||
| 
 | ||||
|        An  automated  posting  rule looks like a regular journal entry, except | ||||
|        the first line is an equal sign (=) followed by a  query  (mnemonic:  = | ||||
|        looks like posting lines): | ||||
|        An automated posting rule looks like a normal journal entry, except the | ||||
|        first line is an equal sign (=) followed by a query (mnemonic: =  looks | ||||
|        like posting lines): | ||||
| 
 | ||||
|               = expenses:gifts | ||||
|                   budget:gifts  *-1 | ||||
| @ -1003,6 +1090,7 @@ EDITOR SUPPORT | ||||
|        Textmate       https://github.com/ledger/ledger/wiki/Using-TextMate-2 | ||||
|        Text   Wran-   https://github.com/ledger/ledger/wiki/Edit- | ||||
|        gler           ing-Ledger-files-with-TextWrangler | ||||
| 
 | ||||
|        Visual  Stu-   https://marketplace.visualstudio.com/items?item- | ||||
|        dio Code       Name=mark-hansen.hledger-vscode | ||||
| 
 | ||||
| @ -1031,4 +1119,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger 1.9.99                    March 2018                hledger_journal(5) | ||||
| hledger 1.9.99                     June 2018                hledger_journal(5) | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| .TH "hledger_timeclock" "5" "March 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger_timeclock" "5" "June 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -77,4 +77,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger 1.9.99                    March 2018              hledger_timeclock(5) | ||||
| hledger 1.9.99                     June 2018              hledger_timeclock(5) | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| .TH "hledger_timedot" "5" "March 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger_timedot" "5" "June 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -124,4 +124,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger 1.9.99                    March 2018                hledger_timedot(5) | ||||
| hledger 1.9.99                     June 2018                hledger_timedot(5) | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| .TH "hledger\-ui" "1" "March 2018" "hledger\-ui 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger\-ui" "1" "June 2018" "hledger\-ui 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -384,4 +384,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger-ui 1.9.99                 March 2018                     hledger-ui(1) | ||||
| hledger-ui 1.9.99                  June 2018                     hledger-ui(1) | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| .TH "hledger\-web" "1" "March 2018" "hledger\-web 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger\-web" "1" "June 2018" "hledger\-web 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -248,4 +248,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger-web 1.9.99                March 2018                    hledger-web(1) | ||||
| hledger-web 1.9.99                 June 2018                    hledger-web(1) | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| .\"t | ||||
| 
 | ||||
| .TH "hledger" "1" "March 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| .TH "hledger" "1" "June 2018" "hledger 1.9.99" "hledger User Manuals" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -2210,4 +2210,4 @@ SEE ALSO | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| hledger 1.9.99                    March 2018                        hledger(1) | ||||
| hledger 1.9.99                     June 2018                        hledger(1) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user