;doc: update manuals
This commit is contained in:
		
							parent
							
								
									ddec2cedf3
								
							
						
					
					
						commit
						7a249cffe9
					
				| @ -1,2 +1,2 @@ | |||||||
| m4_dnl Date to show in man pages. Updated by "Shake manuals" | m4_dnl Date to show in man pages. Updated by "Shake manuals" | ||||||
| m4_define({{_monthyear_}}, {{August 2021}})m4_dnl | m4_define({{_monthyear_}}, {{September 2021}})m4_dnl | ||||||
|  | |||||||
| @ -1,2 +1,2 @@ | |||||||
| m4_dnl Date to show in man pages. Updated by "Shake manuals" | m4_dnl Date to show in man pages. Updated by "Shake manuals" | ||||||
| m4_define({{_monthyear_}}, {{August 2021}})m4_dnl | m4_define({{_monthyear_}}, {{September 2021}})m4_dnl | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| 
 | 
 | ||||||
| .TH "HLEDGER-UI" "1" "August 2021" "hledger-ui-1.22.99 " "hledger User Manuals" | .TH "HLEDGER-UI" "1" "September 2021" "hledger-ui-1.22.99 " "hledger User Manuals" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| This is hledger-ui.info, produced by makeinfo version 6.8 from stdin. | This is hledger-ui/hledger-ui.info, produced by makeinfo version 4.8 | ||||||
|  | from stdin. | ||||||
| 
 | 
 | ||||||
| INFO-DIR-SECTION User Applications | INFO-DIR-SECTION User Applications | ||||||
| START-INFO-DIR-ENTRY | START-INFO-DIR-ENTRY | ||||||
| @ -6,36 +7,36 @@ START-INFO-DIR-ENTRY | |||||||
| END-INFO-DIR-ENTRY | END-INFO-DIR-ENTRY | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-ui.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | File: hledger-ui.info,  Node: Top,  Up: (dir) | ||||||
| 
 | 
 | ||||||
| hledger-ui(1) | hledger-ui(1) | ||||||
| ************* | ************* | ||||||
| 
 | 
 | ||||||
| hledger-ui is a terminal interface (TUI) for the hledger accounting | hledger-ui is a terminal interface (TUI) for the hledger accounting | ||||||
| tool.  This manual is for hledger-ui 1.22.99. | tool. This manual is for hledger-ui 1.22.99. | ||||||
| 
 | 
 | ||||||
|    'hledger-ui [OPTIONS] [QUERYARGS]' |    `hledger-ui [OPTIONS] [QUERYARGS]' | ||||||
| 'hledger ui -- [OPTIONS] [QUERYARGS]' | `hledger ui -- [OPTIONS] [QUERYARGS]' | ||||||
| 
 | 
 | ||||||
|    hledger is a reliable, cross-platform set of programs for tracking |    hledger is a reliable, cross-platform set of programs for tracking | ||||||
| money, time, or any other commodity, using double-entry accounting and a | money, time, or any other commodity, using double-entry accounting and a | ||||||
| simple, editable file format.  hledger is inspired by and largely | simple, editable file format. hledger is inspired by and largely | ||||||
| compatible with ledger(1). | compatible with ledger(1). | ||||||
| 
 | 
 | ||||||
|    hledger-ui is hledger's terminal interface, providing an efficient |    hledger-ui is hledger's terminal interface, providing an efficient | ||||||
| full-window text UI for viewing accounts and transactions, and some | full-window text UI for viewing accounts and transactions, and some | ||||||
| limited data entry capability.  It is easier than hledger's command-line | limited data entry capability. It is easier than hledger's command-line | ||||||
| interface, and sometimes quicker and more convenient than the web | interface, and sometimes quicker and more convenient than the web | ||||||
| interface. | interface. | ||||||
| 
 | 
 | ||||||
|    Like hledger, it reads data from one or more files in hledger |    Like hledger, it reads data from one or more files in hledger | ||||||
| journal, timeclock, timedot, or CSV format specified with '-f', or | journal, timeclock, timedot, or CSV format specified with `-f', or | ||||||
| '$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps | `$LEDGER_FILE', or `$HOME/.hledger.journal' (on windows, perhaps | ||||||
| 'C:/Users/USER/.hledger.journal').  For more about this see hledger(1), | `C:/Users/USER/.hledger.journal'). For more about this see hledger(1), | ||||||
| hledger_journal(5) etc. | hledger_journal(5) etc. | ||||||
| 
 | 
 | ||||||
|    Unlike hledger, hledger-ui hides all future-dated transactions by |    Unlike hledger, hledger-ui hides all future-dated transactions by | ||||||
| default.  They can be revealed, along with any rule-generated periodic | default. They can be revealed, along with any rule-generated periodic | ||||||
| transactions, by pressing the F key (or starting with -forecast) to | transactions, by pressing the F key (or starting with -forecast) to | ||||||
| enable "forecast mode". | enable "forecast mode". | ||||||
| 
 | 
 | ||||||
| @ -55,146 +56,143 @@ File: hledger-ui.info,  Node: OPTIONS,  Next: KEYS,  Prev: Top,  Up: Top | |||||||
| 1 OPTIONS | 1 OPTIONS | ||||||
| ********* | ********* | ||||||
| 
 | 
 | ||||||
| Note: if invoking hledger-ui as a hledger subcommand, write '--' before | Note: if invoking hledger-ui as a hledger subcommand, write `--' before | ||||||
| options as shown above. | options as shown above. | ||||||
| 
 | 
 | ||||||
|    Any QUERYARGS are interpreted as a hledger search query which filters |    Any QUERYARGS are interpreted as a hledger search query which filters | ||||||
| the data. | the data. | ||||||
| 
 | 
 | ||||||
| '--watch' | `--watch' | ||||||
| 
 |  | ||||||
|      watch for data and date changes and reload automatically |      watch for data and date changes and reload automatically | ||||||
| '--theme=default|terminal|greenterm' |  | ||||||
| 
 | 
 | ||||||
|  | `--theme=default|terminal|greenterm' | ||||||
|      use this custom display theme |      use this custom display theme | ||||||
| '--register=ACCTREGEX' |  | ||||||
| 
 | 
 | ||||||
|  | `--register=ACCTREGEX' | ||||||
|      start in the (first) matched account's register screen |      start in the (first) matched account's register screen | ||||||
| '--change' |  | ||||||
| 
 | 
 | ||||||
|  | `--change' | ||||||
|      show period balances (changes) at startup instead of historical |      show period balances (changes) at startup instead of historical | ||||||
|      balances |      balances | ||||||
| '-l --flat' |  | ||||||
| 
 | 
 | ||||||
|  | `-l --flat' | ||||||
|      show accounts as a flat list (default) |      show accounts as a flat list (default) | ||||||
| '-t --tree' |  | ||||||
| 
 | 
 | ||||||
|  | `-t --tree' | ||||||
|      show accounts as a tree |      show accounts as a tree | ||||||
| 
 | 
 | ||||||
|    hledger input options: |    hledger input options: | ||||||
| 
 | 
 | ||||||
| '-f FILE --file=FILE' | `-f FILE --file=FILE' | ||||||
| 
 |      use a different input file. For stdin, use - (default: | ||||||
|      use a different input file.  For stdin, use - (default: |      `$LEDGER_FILE' or `$HOME/.hledger.journal') | ||||||
|      '$LEDGER_FILE' or '$HOME/.hledger.journal') |  | ||||||
| '--rules-file=RULESFILE' |  | ||||||
| 
 | 
 | ||||||
|  | `--rules-file=RULESFILE' | ||||||
|      Conversion rules file to use when reading CSV (default: FILE.rules) |      Conversion rules file to use when reading CSV (default: FILE.rules) | ||||||
| '--separator=CHAR' |  | ||||||
| 
 | 
 | ||||||
|  | `--separator=CHAR' | ||||||
|      Field separator to expect when reading CSV (default: ',') |      Field separator to expect when reading CSV (default: ',') | ||||||
| '--alias=OLD=NEW' |  | ||||||
| 
 | 
 | ||||||
|  | `--alias=OLD=NEW' | ||||||
|      rename accounts named OLD to NEW |      rename accounts named OLD to NEW | ||||||
| '--anon' |  | ||||||
| 
 | 
 | ||||||
|  | `--anon' | ||||||
|      anonymize accounts and payees |      anonymize accounts and payees | ||||||
| '--pivot FIELDNAME' |  | ||||||
| 
 | 
 | ||||||
|  | `--pivot FIELDNAME' | ||||||
|      use some other field or tag for the account name |      use some other field or tag for the account name | ||||||
| '-I --ignore-assertions' |  | ||||||
| 
 | 
 | ||||||
|  | `-I --ignore-assertions' | ||||||
|      disable balance assertion checks (note: does not disable balance |      disable balance assertion checks (note: does not disable balance | ||||||
|      assignments) |      assignments) | ||||||
| '-s --strict' |  | ||||||
| 
 | 
 | ||||||
|  | `-s --strict' | ||||||
|      do extra error checking (check that all posted accounts are |      do extra error checking (check that all posted accounts are | ||||||
|      declared) |      declared) | ||||||
| 
 | 
 | ||||||
|    hledger reporting options: |    hledger reporting options: | ||||||
| 
 | 
 | ||||||
| '-b --begin=DATE' | `-b --begin=DATE' | ||||||
| 
 |  | ||||||
|      include postings/txns on or after this date (will be adjusted to |      include postings/txns on or after this date (will be adjusted to | ||||||
|      preceding subperiod start when using a report interval) |      preceding subperiod start when using a report interval) | ||||||
| '-e --end=DATE' |  | ||||||
| 
 | 
 | ||||||
|  | `-e --end=DATE' | ||||||
|      include postings/txns before this date (will be adjusted to |      include postings/txns before this date (will be adjusted to | ||||||
|      following subperiod end when using a report interval) |      following subperiod end when using a report interval) | ||||||
| '-D --daily' |  | ||||||
| 
 | 
 | ||||||
|  | `-D --daily' | ||||||
|      multiperiod/multicolumn report by day |      multiperiod/multicolumn report by day | ||||||
| '-W --weekly' |  | ||||||
| 
 | 
 | ||||||
|  | `-W --weekly' | ||||||
|      multiperiod/multicolumn report by week |      multiperiod/multicolumn report by week | ||||||
| '-M --monthly' |  | ||||||
| 
 | 
 | ||||||
|  | `-M --monthly' | ||||||
|      multiperiod/multicolumn report by month |      multiperiod/multicolumn report by month | ||||||
| '-Q --quarterly' |  | ||||||
| 
 | 
 | ||||||
|  | `-Q --quarterly' | ||||||
|      multiperiod/multicolumn report by quarter |      multiperiod/multicolumn report by quarter | ||||||
| '-Y --yearly' |  | ||||||
| 
 | 
 | ||||||
|  | `-Y --yearly' | ||||||
|      multiperiod/multicolumn report by year |      multiperiod/multicolumn report by year | ||||||
| '-p --period=PERIODEXP' |  | ||||||
| 
 | 
 | ||||||
|  | `-p --period=PERIODEXP' | ||||||
|      set start date, end date, and/or reporting interval all at once |      set start date, end date, and/or reporting interval all at once | ||||||
|      using period expressions syntax |      using period expressions syntax | ||||||
| '--date2' |  | ||||||
| 
 | 
 | ||||||
|  | `--date2' | ||||||
|      match the secondary date instead (see command help for other |      match the secondary date instead (see command help for other | ||||||
|      effects) |      effects) | ||||||
| '-U --unmarked' |  | ||||||
| 
 | 
 | ||||||
|  | `-U --unmarked' | ||||||
|      include only unmarked postings/txns (can combine with -P or -C) |      include only unmarked postings/txns (can combine with -P or -C) | ||||||
| '-P --pending' |  | ||||||
| 
 | 
 | ||||||
|  | `-P --pending' | ||||||
|      include only pending postings/txns |      include only pending postings/txns | ||||||
| '-C --cleared' |  | ||||||
| 
 | 
 | ||||||
|  | `-C --cleared' | ||||||
|      include only cleared postings/txns |      include only cleared postings/txns | ||||||
| '-R --real' |  | ||||||
| 
 | 
 | ||||||
|  | `-R --real' | ||||||
|      include only non-virtual postings |      include only non-virtual postings | ||||||
| '-NUM --depth=NUM' |  | ||||||
| 
 | 
 | ||||||
|  | `-NUM --depth=NUM' | ||||||
|      hide/aggregate accounts or postings more than NUM levels deep |      hide/aggregate accounts or postings more than NUM levels deep | ||||||
| '-E --empty' |  | ||||||
| 
 | 
 | ||||||
|  | `-E --empty' | ||||||
|      show items with zero amount, normally hidden (and vice-versa in |      show items with zero amount, normally hidden (and vice-versa in | ||||||
|      hledger-ui/hledger-web) |      hledger-ui/hledger-web) | ||||||
| '-B --cost' |  | ||||||
| 
 | 
 | ||||||
|  | `-B --cost' | ||||||
|      convert amounts to their cost/selling amount at transaction time |      convert amounts to their cost/selling amount at transaction time | ||||||
| '-V --market' |  | ||||||
| 
 | 
 | ||||||
|  | `-V --market' | ||||||
|      convert amounts to their market value in default valuation |      convert amounts to their market value in default valuation | ||||||
|      commodities |      commodities | ||||||
| '-X --exchange=COMM' |  | ||||||
| 
 | 
 | ||||||
|  | `-X --exchange=COMM' | ||||||
|      convert amounts to their market value in commodity COMM |      convert amounts to their market value in commodity COMM | ||||||
| '--value' |  | ||||||
| 
 | 
 | ||||||
|  | `--value' | ||||||
|      convert amounts to cost or market value, more flexibly than |      convert amounts to cost or market value, more flexibly than | ||||||
|      -B/-V/-X |      -B/-V/-X | ||||||
| '--infer-market-prices' |  | ||||||
| 
 | 
 | ||||||
|  | `--infer-market-prices' | ||||||
|      use transaction prices (recorded with @ or @@) as additional market |      use transaction prices (recorded with @ or @@) as additional market | ||||||
|      prices, as if they were P directives |      prices, as if they were P directives | ||||||
| '--auto' |  | ||||||
| 
 | 
 | ||||||
|  | `--auto' | ||||||
|      apply automated posting rules to modify transactions. |      apply automated posting rules to modify transactions. | ||||||
| '--forecast' |  | ||||||
| 
 | 
 | ||||||
|  | `--forecast' | ||||||
|      generate future transactions from periodic transaction rules, for |      generate future transactions from periodic transaction rules, for | ||||||
|      the next 6 months or till report end date.  In hledger-ui, also |      the next 6 months or till report end date. In hledger-ui, also | ||||||
|      make ordinary future transactions visible. |      make ordinary future transactions visible. | ||||||
| '--color=WHEN (or --colour=WHEN)' |  | ||||||
| 
 | 
 | ||||||
|  | `--color=WHEN (or --colour=WHEN)' | ||||||
|      Should color-supporting commands use ANSI color codes in text |      Should color-supporting commands use ANSI color codes in text | ||||||
|      output.  'auto' (default): whenever stdout seems to be a |      output.  'auto' (default): whenever stdout seems to be a | ||||||
|      color-supporting terminal.  'always' or 'yes': always, useful eg |      color-supporting terminal.  'always' or 'yes': always, useful eg | ||||||
|      when piping output into 'less -R'. 'never' or 'no': never.  A |      when piping output into 'less -R'.  'never' or 'no': never.  A | ||||||
|      NO_COLOR environment variable overrides this. |      NO_COLOR environment variable overrides this. | ||||||
| 
 | 
 | ||||||
|    When a reporting option appears more than once in the command line, |    When a reporting option appears more than once in the command line, | ||||||
| @ -204,25 +202,24 @@ the last one takes precedence. | |||||||
| 
 | 
 | ||||||
|    hledger help options: |    hledger help options: | ||||||
| 
 | 
 | ||||||
| '-h --help' | `-h --help' | ||||||
| 
 |  | ||||||
|      show general or COMMAND help |      show general or COMMAND help | ||||||
| '--man' |  | ||||||
| 
 | 
 | ||||||
|  | `--man' | ||||||
|      show general or COMMAND user manual with man |      show general or COMMAND user manual with man | ||||||
| '--info' |  | ||||||
| 
 | 
 | ||||||
|  | `--info' | ||||||
|      show general or COMMAND user manual with info |      show general or COMMAND user manual with info | ||||||
| '--version' |  | ||||||
| 
 | 
 | ||||||
|  | `--version' | ||||||
|      show general or ADDONCMD version |      show general or ADDONCMD version | ||||||
| '--debug[=N]' |  | ||||||
| 
 | 
 | ||||||
|  | `--debug[=N]' | ||||||
|      show debug output (levels 1-9, default: 1) |      show debug output (levels 1-9, default: 1) | ||||||
| 
 | 
 | ||||||
|    A @FILE argument will be expanded to the contents of FILE, which |    A @FILE argument will be expanded to the contents of FILE, which | ||||||
| should contain one command line option/argument per line.  (To prevent | should contain one command line option/argument per line. (To prevent | ||||||
| this, insert a '--' argument before.) | this, insert a `--' argument before.) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-ui.info,  Node: KEYS,  Next: SCREENS,  Prev: OPTIONS,  Up: Top | File: hledger-ui.info,  Node: KEYS,  Next: SCREENS,  Prev: OPTIONS,  Up: Top | ||||||
| @ -230,89 +227,89 @@ File: hledger-ui.info,  Node: KEYS,  Next: SCREENS,  Prev: OPTIONS,  Up: Top | |||||||
| 2 KEYS | 2 KEYS | ||||||
| ****** | ****** | ||||||
| 
 | 
 | ||||||
| '?' shows a help dialog listing all keys.  (Some of these also appear in | `?' shows a help dialog listing all keys. (Some of these also appear in | ||||||
| the quick help at the bottom of each screen.)  Press '?' again (or | the quick help at the bottom of each screen.) Press `?' again (or | ||||||
| 'ESCAPE', or 'LEFT', or 'q') to close it.  The following keys work on | `ESCAPE', or `LEFT', or `q') to close it. The following keys work on | ||||||
| most screens: | most screens: | ||||||
| 
 | 
 | ||||||
|    The cursor keys navigate: 'right' (or 'enter') goes deeper, 'left' |    The cursor keys navigate: `right' (or `enter') goes deeper, `left' | ||||||
| returns to the previous screen, 'up'/'down'/'page up'/'page | returns to the previous screen, `up'/`down'/`page up'/`page | ||||||
| down'/'home'/'end' move up and down through lists.  Emacs-style | down'/`home'/`end' move up and down through lists. Emacs-style | ||||||
| ('ctrl-p'/'ctrl-n'/'ctrl-f'/'ctrl-b') movement keys are also supported | (`ctrl-p'/`ctrl-n'/`ctrl-f'/`ctrl-b') movement keys are also supported | ||||||
| (but not vi-style keys, since hledger-1.19, sorry!).  A tip: movement | (but not vi-style keys, since hledger-1.19, sorry!).  A tip: movement | ||||||
| speed is limited by your keyboard repeat rate, to move faster you may | speed is limited by your keyboard repeat rate, to move faster you may | ||||||
| want to adjust it.  (If you're on a mac, the karabiner app is one way to | want to adjust it. (If you're on a mac, the karabiner app is one way to | ||||||
| do that.) | do that.) | ||||||
| 
 | 
 | ||||||
|    With shift pressed, the cursor keys adjust the report period, |    With shift pressed, the cursor keys adjust the report period, | ||||||
| limiting the transactions to be shown (by default, all are shown). | limiting the transactions to be shown (by default, all are shown). | ||||||
| 'shift-down/up' steps downward and upward through these standard report | `shift-down/up' steps downward and upward through these standard report | ||||||
| period durations: year, quarter, month, week, day.  Then, | period durations: year, quarter, month, week, day. Then, | ||||||
| 'shift-left/right' moves to the previous/next period.  'T' sets the | `shift-left/right' moves to the previous/next period. `T' sets the | ||||||
| report period to today.  With the '--watch' option, when viewing a | report period to today. With the `--watch' option, when viewing a | ||||||
| "current" period (the current day, week, month, quarter, or year), the | "current" period (the current day, week, month, quarter, or year), the | ||||||
| period will move automatically to track the current date.  To set a | period will move automatically to track the current date. To set a | ||||||
| non-standard period, you can use '/' and a 'date:' query. | non-standard period, you can use `/' and a `date:' query. | ||||||
| 
 | 
 | ||||||
|    '/' lets you set a general filter query limiting the data shown, |    `/' lets you set a general filter query limiting the data shown, | ||||||
| using the same query terms as in hledger and hledger-web.  While editing | using the same query terms as in hledger and hledger-web. While editing | ||||||
| the query, you can use CTRL-a/e/d/k, BS, cursor keys; press 'ENTER' to | the query, you can use CTRL-a/e/d/k, BS, cursor keys; press `ENTER' to | ||||||
| set it, or 'ESCAPE'to cancel.  There are also keys for quickly adjusting | set it, or `ESCAPE'to cancel. There are also keys for quickly adjusting | ||||||
| some common filters like account depth and transaction status (see | some common filters like account depth and transaction status (see | ||||||
| below).  'BACKSPACE' or 'DELETE' removes all filters, showing all | below). `BACKSPACE' or `DELETE' removes all filters, showing all | ||||||
| transactions. | transactions. | ||||||
| 
 | 
 | ||||||
|    As mentioned above, by default hledger-ui hides future transactions - |    As mentioned above, by default hledger-ui hides future transactions - | ||||||
| both ordinary transactions recorded in the journal, and periodic | both ordinary transactions recorded in the journal, and periodic | ||||||
| transactions generated by rule.  'F' toggles forecast mode, in which | transactions generated by rule. `F' toggles forecast mode, in which | ||||||
| future/forecasted transactions are shown. | future/forecasted transactions are shown. | ||||||
| 
 | 
 | ||||||
|    'ESCAPE' resets the UI state and jumps back to the top screen, |    `ESCAPE' resets the UI state and jumps back to the top screen, | ||||||
| restoring the app's initial state at startup.  Or, it cancels minibuffer | restoring the app's initial state at startup. Or, it cancels minibuffer | ||||||
| data entry or the help dialog. | data entry or the help dialog. | ||||||
| 
 | 
 | ||||||
|    'CTRL-l' redraws the screen and centers the selection if possible |    `CTRL-l' redraws the screen and centers the selection if possible | ||||||
| (selections near the top won't be centered, since we don't scroll above | (selections near the top won't be centered, since we don't scroll above | ||||||
| the top). | the top). | ||||||
| 
 | 
 | ||||||
|    'g' reloads from the data file(s) and updates the current screen and |    `g' reloads from the data file(s) and updates the current screen and | ||||||
| any previous screens.  (With large files, this could cause a noticeable | any previous screens. (With large files, this could cause a noticeable | ||||||
| pause.) | pause.) | ||||||
| 
 | 
 | ||||||
|    'I' toggles balance assertion checking.  Disabling balance assertions |    `I' toggles balance assertion checking. Disabling balance assertions | ||||||
| temporarily can be useful for troubleshooting. | temporarily can be useful for troubleshooting. | ||||||
| 
 | 
 | ||||||
|    'a' runs command-line hledger's add command, and reloads the updated |    `a' runs command-line hledger's add command, and reloads the updated | ||||||
| file.  This allows some basic data entry. | file. This allows some basic data entry. | ||||||
| 
 | 
 | ||||||
|    'A' is like 'a', but runs the hledger-iadd tool, which provides a |    `A' is like `a', but runs the hledger-iadd tool, which provides a | ||||||
| terminal interface.  This key will be available if 'hledger-iadd' is | terminal interface. This key will be available if `hledger-iadd' is | ||||||
| installed in $path. | installed in $path. | ||||||
| 
 | 
 | ||||||
|    'E' runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default ('emacsclient |    `E' runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (`emacsclient | ||||||
| -a "" -nw') on the journal file.  With some editors (emacs, vi), the | -a "" -nw') on the journal file. With some editors (emacs, vi), the | ||||||
| cursor will be positioned at the current transaction when invoked from | cursor will be positioned at the current transaction when invoked from | ||||||
| the register and transaction screens, and at the error location (if | the register and transaction screens, and at the error location (if | ||||||
| possible) when invoked from the error screen. | possible) when invoked from the error screen. | ||||||
| 
 | 
 | ||||||
|    'B' toggles cost mode, showing amounts in their transaction price's |    `B' toggles cost mode, showing amounts in their transaction price's | ||||||
| commodity (like toggling the '-B/--cost' flag). | commodity (like toggling the `-B/--cost' flag). | ||||||
| 
 | 
 | ||||||
|    'V' toggles value mode, showing amounts' current market value in |    `V' toggles value mode, showing amounts' current market value in | ||||||
| their default valuation commodity (like toggling the '-V/--market' | their default valuation commodity (like toggling the `-V/--market' | ||||||
| flag).  Note, "current market value" means the value on the report end | flag). Note, "current market value" means the value on the report end | ||||||
| date if specified, otherwise today.  To see the value on another date, | date if specified, otherwise today. To see the value on another date, | ||||||
| you can temporarily set that as the report end date.  Eg: to see a | you can temporarily set that as the report end date. Eg: to see a | ||||||
| transaction as it was valued on july 30, go to the accounts or register | transaction as it was valued on july 30, go to the accounts or register | ||||||
| screen, press '/', and add 'date:-7/30' to the query. | screen, press `/', and add `date:-7/30' to the query. | ||||||
| 
 | 
 | ||||||
|    At most one of cost or value mode can be active at once. |    At most one of cost or value mode can be active at once. | ||||||
| 
 | 
 | ||||||
|    There's not yet any visual reminder when cost or value mode is |    There's not yet any visual reminder when cost or value mode is | ||||||
| active; for now pressing 'b' 'b' 'v' should reliably reset to normal | active; for now pressing `b' `b' `v' should reliably reset to normal | ||||||
| mode. | mode. | ||||||
| 
 | 
 | ||||||
|    'q' quits the application. |    `q' quits the application. | ||||||
| 
 | 
 | ||||||
|    Additional screen-specific keys are described below. |    Additional screen-specific keys are described below. | ||||||
| 
 | 
 | ||||||
| @ -335,48 +332,47 @@ File: hledger-ui.info,  Node: Accounts screen,  Next: Register screen,  Up: SCRE | |||||||
| 3.1 Accounts screen | 3.1 Accounts screen | ||||||
| =================== | =================== | ||||||
| 
 | 
 | ||||||
| This is normally the first screen displayed.  It lists accounts and | This is normally the first screen displayed. It lists accounts and their | ||||||
| their balances, like hledger's balance command.  By default, it shows | balances, like hledger's balance command. By default, it shows all | ||||||
| all accounts and their latest ending balances (including the balances of | accounts and their latest ending balances (including the balances of | ||||||
| subaccounts).  If you specify a query on the command line, it shows just | subaccounts). If you specify a query on the command line, it shows just | ||||||
| the matched accounts and the balances from matched transactions. | the matched accounts and the balances from matched transactions. | ||||||
| 
 | 
 | ||||||
|    Account names are shown as a flat list by default; press 't' to |    Account names are shown as a flat list by default; press `t' to | ||||||
| toggle tree mode.  In list mode, account balances are exclusive of | toggle tree mode. In list mode, account balances are exclusive of | ||||||
| subaccounts, except where subaccounts are hidden by a depth limit (see | subaccounts, except where subaccounts are hidden by a depth limit (see | ||||||
| below).  In tree mode, all account balances are inclusive of | below). In tree mode, all account balances are inclusive of subaccounts. | ||||||
| subaccounts. |  | ||||||
| 
 | 
 | ||||||
|    To see less detail, press a number key, '1' to '9', to set a depth |    To see less detail, press a number key, `1' to `9', to set a depth | ||||||
| limit.  Or use '-' to decrease and '+'/'=' to increase the depth limit. | limit. Or use `-' to decrease and `+'/`=' to increase the depth limit. | ||||||
| '0' shows even less detail, collapsing all accounts to a single total. | `0' shows even less detail, collapsing all accounts to a single total. | ||||||
| To remove the depth limit, set it higher than the maximum account depth, | To remove the depth limit, set it higher than the maximum account | ||||||
| or press 'ESCAPE'. | depth, or press `ESCAPE'. | ||||||
| 
 | 
 | ||||||
|    'H' toggles between showing historical balances or period balances. |    `H' toggles between showing historical balances or period balances. | ||||||
| Historical balances (the default) are ending balances at the end of the | Historical balances (the default) are ending balances at the end of the | ||||||
| report period, taking into account all transactions before that date | report period, taking into account all transactions before that date | ||||||
| (filtered by the filter query if any), including transactions before the | (filtered by the filter query if any), including transactions before the | ||||||
| start of the report period.  In other words, historical balances are | start of the report period. In other words, historical balances are what | ||||||
| what you would see on a bank statement for that account (unless | you would see on a bank statement for that account (unless disturbed by | ||||||
| disturbed by a filter query).  Period balances ignore transactions | a filter query). Period balances ignore transactions before the report | ||||||
| before the report start date, so they show the change in balance during | start date, so they show the change in balance during the report period. | ||||||
| the report period.  They are more useful eg when viewing a time log. | They are more useful eg when viewing a time log. | ||||||
| 
 | 
 | ||||||
|    'U' toggles filtering by unmarked status, including or excluding |    `U' toggles filtering by unmarked status, including or excluding | ||||||
| unmarked postings in the balances.  Similarly, 'P' toggles pending | unmarked postings in the balances. Similarly, `P' toggles pending | ||||||
| postings, and 'C' toggles cleared postings.  (By default, balances | postings, and `C' toggles cleared postings. (By default, balances | ||||||
| include all postings; if you activate one or two status filters, only | include all postings; if you activate one or two status filters, only | ||||||
| those postings are included; and if you activate all three, the filter | those postings are included; and if you activate all three, the filter | ||||||
| is removed.) | is removed.) | ||||||
| 
 | 
 | ||||||
|    'R' toggles real mode, in which virtual postings are ignored. |    `R' toggles real mode, in which virtual postings are ignored. | ||||||
| 
 | 
 | ||||||
|    'Z' toggles nonzero mode, in which only accounts with nonzero |    `Z' toggles nonzero mode, in which only accounts with nonzero | ||||||
| balances are shown (hledger-ui shows zero items by default, unlike | balances are shown (hledger-ui shows zero items by default, unlike | ||||||
| command-line hledger). | command-line hledger). | ||||||
| 
 | 
 | ||||||
|    Press 'right' or 'enter' to view an account's transactions register. |    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: SCREENS | ||||||
| @ -385,44 +381,46 @@ File: hledger-ui.info,  Node: Register screen,  Next: Transaction screen,  Prev: | |||||||
| =================== | =================== | ||||||
| 
 | 
 | ||||||
| This screen shows the transactions affecting a particular account, like | This screen shows the transactions affecting a particular account, like | ||||||
| a check register.  Each line represents one transaction and shows: | a check register. Each line represents one transaction and shows: | ||||||
| 
 | 
 | ||||||
|    * the other account(s) involved, in abbreviated form.  (If there are |    * the other account(s) involved, in abbreviated form. (If there are | ||||||
|      both real and virtual postings, it shows only the accounts affected |      both real and virtual postings, it shows only the accounts | ||||||
|      by real postings.) |      affected by real postings.) | ||||||
| 
 | 
 | ||||||
|    * the overall change to the current account's balance; positive for |    * the overall change to the current account's balance; positive for | ||||||
|      an inflow to this account, negative for an outflow. |      an inflow to this account, negative for an outflow. | ||||||
| 
 | 
 | ||||||
|    * the running historical total or period total for the current |    * the running historical total or period total for the current | ||||||
|      account, after the transaction.  This can be toggled with 'H'. |      account, after the transaction. This can be toggled with `H'. | ||||||
|      Similar to the accounts screen, the historical total is affected by |      Similar to the accounts screen, the historical total is affected | ||||||
|      transactions (filtered by the filter query) before the report start |      by transactions (filtered by the filter query) before the report | ||||||
|      date, while the period total is not.  If the historical total is |      start date, while the period total is not. If the historical total | ||||||
|      not disturbed by a filter query, it will be the running historical |      is not disturbed by a filter query, it will be the running | ||||||
|      balance you would see on a bank register for the current account. |      historical balance you would see on a bank register for the | ||||||
|  |      current account. | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|    Transactions affecting this account's subaccounts will be included in |    Transactions affecting this account's subaccounts will be included in | ||||||
| the register if the accounts screen is in tree mode, or if it's in list | the register if the accounts screen is in tree mode, or if it's in list | ||||||
| mode but this account has subaccounts which are not shown due to a depth | mode but this account has subaccounts which are not shown due to a depth | ||||||
| limit.  In other words, the register always shows the transactions | limit. In other words, the register always shows the transactions | ||||||
| contributing to the balance shown on the accounts screen.  Tree | contributing to the balance shown on the accounts screen. Tree mode/list | ||||||
| mode/list mode can be toggled with 't' here also. | mode can be toggled with `t' here also. | ||||||
| 
 | 
 | ||||||
|    'U' toggles filtering by unmarked status, showing or hiding unmarked |    `U' toggles filtering by unmarked status, showing or hiding unmarked | ||||||
| transactions.  Similarly, 'P' toggles pending transactions, and 'C' | transactions. Similarly, `P' toggles pending transactions, and `C' | ||||||
| toggles cleared transactions.  (By default, transactions with all | toggles cleared transactions. (By default, transactions with all | ||||||
| statuses are shown; if you activate one or two status filters, only | statuses are shown; if you activate one or two status filters, only | ||||||
| those transactions are shown; and if you activate all three, the filter | those transactions are shown; and if you activate all three, the filter | ||||||
| is removed.) | is removed.) | ||||||
| 
 | 
 | ||||||
|    'R' toggles real mode, in which virtual postings are ignored. |    `R' toggles real mode, in which virtual postings are ignored. | ||||||
| 
 | 
 | ||||||
|    'Z' toggles nonzero mode, in which only transactions posting a |    `Z' toggles nonzero mode, in which only transactions posting a | ||||||
| nonzero change are shown (hledger-ui shows zero items by default, unlike | nonzero change are shown (hledger-ui shows zero items by default, unlike | ||||||
| command-line hledger). | command-line hledger). | ||||||
| 
 | 
 | ||||||
|    Press 'right' (or 'enter') to view the selected transaction in |    Press `right' (or `enter') to view the selected transaction in | ||||||
| detail. | detail. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| @ -440,11 +438,11 @@ description, comments, along with all of its account postings are shown. | |||||||
| Simple transactions have two postings, but there can be more (or in | Simple transactions have two postings, but there can be more (or in | ||||||
| certain cases, fewer). | certain cases, fewer). | ||||||
| 
 | 
 | ||||||
|    'up' and 'down' will step through all transactions listed in the |    `up' and `down' will step through all transactions listed in the | ||||||
| previous account register screen.  In the title bar, the numbers in | previous account register screen. In the title bar, the numbers in | ||||||
| parentheses show your position within that account register.  They will | parentheses show your position within that account register. They will | ||||||
| vary depending on which account register you came from (remember most | vary depending on which account register you came from (remember most | ||||||
| transactions appear in multiple account registers).  The #N number | transactions appear in multiple account registers). The #N number | ||||||
| preceding them is the transaction's position within the complete | preceding them is the transaction's position within the complete | ||||||
| unfiltered journal, which is a more stable id (at least until the next | unfiltered journal, which is a more stable id (at least until the next | ||||||
| reload). | reload). | ||||||
| @ -456,8 +454,8 @@ File: hledger-ui.info,  Node: Error screen,  Prev: Transaction screen,  Up: SCRE | |||||||
| ================ | ================ | ||||||
| 
 | 
 | ||||||
| This screen will appear if there is a problem, such as a parse error, | This screen will appear if there is a problem, such as a parse error, | ||||||
| when you press g to reload.  Once you have fixed the problem, press g | when you press g to reload. Once you have fixed the problem, press g | ||||||
| again to reload and resume normal operation.  (Or, you can press escape | again to reload and resume normal operation. (Or, you can press escape | ||||||
| to cancel the reload attempt.) | to cancel the reload attempt.) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| @ -477,20 +475,21 @@ File: hledger-ui.info,  Node: Watch mode,  Next: Watch mode limitations,  Up: TI | |||||||
| 4.1 Watch mode | 4.1 Watch mode | ||||||
| ============== | ============== | ||||||
| 
 | 
 | ||||||
| One of hledger-ui's best features is the auto-reloading '--watch' mode. | One of hledger-ui's best features is the auto-reloading `--watch' mode. | ||||||
| With this flag, it will update the display automatically whenever | With this flag, it will update the display automatically whenever | ||||||
| changes are saved to the data files. | changes are saved to the data files. | ||||||
| 
 | 
 | ||||||
|    This is very useful when reconciling.  A good workflow is to have |    This is very useful when reconciling. A good workflow is to have your | ||||||
| your bank's online register open in a browser window, for reference; the | bank's online register open in a browser window, for reference; the | ||||||
| journal file open in an editor window; and hledger-ui in watch mode in a | journal file open in an editor window; and hledger-ui in watch mode in a | ||||||
| terminal window, eg: | terminal window, eg: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| $ hledger-ui --watch --register checking -C | $ hledger-ui --watch --register checking -C | ||||||
| 
 | 
 | ||||||
|    As you mark things cleared in the editor, you can see the effect |    As you mark things cleared in the editor, you can see the effect | ||||||
| immediately without having to context switch.  This leaves more mental | immediately without having to context switch. This leaves more mental | ||||||
| bandwidth for your accounting.  Of course you can still interact with | bandwidth for your accounting. Of course you can still interact with | ||||||
| hledger-ui when needed, eg to toggle cleared mode, or to explore the | hledger-ui when needed, eg to toggle cleared mode, or to explore the | ||||||
| history. | history. | ||||||
| 
 | 
 | ||||||
| @ -501,28 +500,29 @@ File: hledger-ui.info,  Node: Watch mode limitations,  Prev: Watch mode,  Up: TI | |||||||
| ========================== | ========================== | ||||||
| 
 | 
 | ||||||
| There are situations in which it won't work, ie the display will not | There are situations in which it won't work, ie the display will not | ||||||
| update when you save a change (because the underlying 'inotify' library | update when you save a change (because the underlying `inotify' library | ||||||
| does not support it).  Here are some that we know of: | does not support it). Here are some that we know of: | ||||||
| 
 | 
 | ||||||
|    * Certain editors: saving with 'gedit', and perhaps any Gnome |    * Certain editors: saving with `gedit', and perhaps any Gnome | ||||||
|      application, won't be detected (#1617).  Jetbrains IDEs, such as |      application, won't be detected (#1617). Jetbrains IDEs, such as | ||||||
|      IDEA, also may not work (#911). |      IDEA, also may not work (#911). | ||||||
| 
 | 
 | ||||||
|    * Certain unusual filesystems might not be supported.  (All the usual |    * Certain unusual filesystems might not be supported. (All the usual | ||||||
|      ones on unix, mac and windows are supported.) |      ones on unix, mac and windows are supported.) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|    In such cases, the workaround is to switch to the hledger-ui window |    In such cases, the workaround is to switch to the hledger-ui window | ||||||
| and press 'g' each time you want it to reload.  (Actually, see #1617 for | and press `g' each time you want it to reload. (Actually, see #1617 for | ||||||
| another workaround, and let us know if it works for you.) | another workaround, and let us know if it works for you.) | ||||||
| 
 | 
 | ||||||
|    If you leave 'hledger-ui --watch' running for days, on certain |    If you leave `hledger-ui --watch' running for days, on certain | ||||||
| platforms (?), perhaps with many transactions in your journal (?), | platforms (?), perhaps with many transactions in your journal (?), | ||||||
| perhaps with large numbers of other files present (?), you may see it | perhaps with large numbers of other files present (?), you may see it | ||||||
| gradually using more and more memory and CPU over time, as seen in 'top' | gradually using more and more memory and CPU over time, as seen in | ||||||
| or Activity Monitor or Task Manager. | `top' or Activity Monitor or Task Manager. | ||||||
| 
 | 
 | ||||||
|    A workaround is to 'q'uit and restart it, or to suspend it ('CTRL-z') |    A workaround is to `q'uit and restart it, or to suspend it | ||||||
| and restart it ('fg') if your shell supports that. | (`CTRL-z') and restart it (`fg') if your shell supports that. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-ui.info,  Node: ENVIRONMENT,  Next: FILES,  Prev: TIPS,  Up: Top | File: hledger-ui.info,  Node: ENVIRONMENT,  Next: FILES,  Prev: TIPS,  Up: Top | ||||||
| @ -530,27 +530,28 @@ File: hledger-ui.info,  Node: ENVIRONMENT,  Next: FILES,  Prev: TIPS,  Up: Top | |||||||
| 5 ENVIRONMENT | 5 ENVIRONMENT | ||||||
| ************* | ************* | ||||||
| 
 | 
 | ||||||
| *COLUMNS* The screen width to use.  Default: the full terminal width. | *COLUMNS* The screen width to use. Default: the full terminal width. | ||||||
| 
 | 
 | ||||||
|    *LEDGER_FILE* The journal file path when not specified with '-f'. |    *LEDGER_FILE* The journal file path when not specified with `-f'. | ||||||
| Default: '~/.hledger.journal' (on windows, perhaps | Default: `~/.hledger.journal' (on windows, perhaps | ||||||
| 'C:/Users/USER/.hledger.journal'). | `C:/Users/USER/.hledger.journal'). | ||||||
| 
 | 
 | ||||||
|    A typical value is '~/DIR/YYYY.journal', where DIR is a |    A typical value is `~/DIR/YYYY.journal', where DIR is a | ||||||
| version-controlled finance directory and YYYY is the current year.  Or | version-controlled finance directory and YYYY is the current year. Or | ||||||
| '~/DIR/current.journal', where current.journal is a symbolic link to | `~/DIR/current.journal', where current.journal is a symbolic link to | ||||||
| YYYY.journal. | YYYY.journal. | ||||||
| 
 | 
 | ||||||
|    On Mac computers, you can set this and other environment variables in |    On Mac computers, you can set this and other environment variables | ||||||
| a more thorough way that also affects applications started from the GUI | in a more thorough way that also affects applications started from the | ||||||
| (say, an Emacs dock icon).  Eg on MacOS Catalina I have a | GUI (say, an Emacs dock icon). Eg on MacOS Catalina I have a | ||||||
| '~/.MacOSX/environment.plist' file containing | `~/.MacOSX/environment.plist' file containing | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   "LEDGER_FILE" : "~/finance/current.journal" |   "LEDGER_FILE" : "~/finance/current.journal" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|    To see the effect you may need to 'killall Dock', or reboot. |    To see the effect you may need to `killall Dock', or reboot. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-ui.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | File: hledger-ui.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | ||||||
| @ -559,9 +560,9 @@ File: hledger-ui.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | |||||||
| ******* | ******* | ||||||
| 
 | 
 | ||||||
| Reads data from one or more files in hledger journal, timeclock, | Reads data from one or more files in hledger journal, timeclock, | ||||||
| timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or | timedot, or CSV format specified with `-f', or `$LEDGER_FILE', or | ||||||
| '$HOME/.hledger.journal' (on windows, perhaps | `$HOME/.hledger.journal' (on windows, perhaps | ||||||
| 'C:/Users/USER/.hledger.journal'). | `C:/Users/USER/.hledger.journal'). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-ui.info,  Node: BUGS,  Prev: FILES,  Up: Top | File: hledger-ui.info,  Node: BUGS,  Prev: FILES,  Up: Top | ||||||
| @ -569,18 +570,18 @@ File: hledger-ui.info,  Node: BUGS,  Prev: FILES,  Up: Top | |||||||
| 7 BUGS | 7 BUGS | ||||||
| ****** | ****** | ||||||
| 
 | 
 | ||||||
| The need to precede options with '--' when invoked from hledger is | The need to precede options with `--' when invoked from hledger is | ||||||
| awkward. | awkward. | ||||||
| 
 | 
 | ||||||
|    '-f-' doesn't work (hledger-ui can't read from stdin). |    `-f-' doesn't work (hledger-ui can't read from stdin). | ||||||
| 
 | 
 | ||||||
|    '-V' affects only the accounts screen. |    `-V' affects only the accounts screen. | ||||||
| 
 | 
 | ||||||
|    When you press 'g', the current and all previous screens are |    When you press `g', the current and all previous screens are | ||||||
| regenerated, which may cause a noticeable pause with large files.  Also | regenerated, which may cause a noticeable pause with large files. Also | ||||||
| there is no visual indication that this is in progress. | there is no visual indication that this is in progress. | ||||||
| 
 | 
 | ||||||
|    '--watch' is not yet fully robust.  It works well for normal usage, |    `--watch' is not yet fully robust. It works well for normal usage, | ||||||
| but many file changes in a short time (eg saving the file thousands of | but many file changes in a short time (eg saving the file thousands of | ||||||
| times with an editor macro) can cause problems at least on OSX. Symptoms | times with an editor macro) can cause problems at least on OSX. Symptoms | ||||||
| include: unresponsive UI, periodic resetting of the cursor position, | include: unresponsive UI, periodic resetting of the cursor position, | ||||||
| @ -589,41 +590,37 @@ and possibly a small but persistent build-up of CPU usage until the | |||||||
| program is restarted. | program is restarted. | ||||||
| 
 | 
 | ||||||
|    Also, if you are viewing files mounted from another machine, |    Also, if you are viewing files mounted from another machine, | ||||||
| '--watch' requires that both machine clocks are roughly in step. | `--watch' requires that both machine clocks are roughly in step. | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| Tag Table: | Tag Table: | ||||||
| Node: Top221 | Node: Top232 | ||||||
| Node: OPTIONS1647 | Node: OPTIONS1637 | ||||||
| Ref: #options1744 | Ref: #options1734 | ||||||
| Node: KEYS6145 | Node: KEYS6129 | ||||||
| Ref: #keys6240 | Ref: #keys6224 | ||||||
| Node: SCREENS10311 | Node: SCREENS10273 | ||||||
| Ref: #screens10409 | Ref: #screens10371 | ||||||
| Node: Accounts screen10499 | Node: Accounts screen10461 | ||||||
| Ref: #accounts-screen10627 | Ref: #accounts-screen10589 | ||||||
| Node: Register screen12842 | Node: Register screen12793 | ||||||
| Ref: #register-screen12997 | Ref: #register-screen12948 | ||||||
| Node: Transaction screen14994 | Node: Transaction screen14943 | ||||||
| Ref: #transaction-screen15152 | Ref: #transaction-screen15101 | ||||||
| Node: Error screen16022 | Node: Error screen15968 | ||||||
| Ref: #error-screen16144 | Ref: #error-screen16090 | ||||||
| Node: TIPS16388 | Node: TIPS16332 | ||||||
| Ref: #tips16487 | Ref: #tips16431 | ||||||
| Node: Watch mode16539 | Node: Watch mode16483 | ||||||
| Ref: #watch-mode16656 | Ref: #watch-mode16600 | ||||||
| Node: Watch mode limitations17402 | Node: Watch mode limitations17344 | ||||||
| Ref: #watch-mode-limitations17543 | Ref: #watch-mode-limitations17485 | ||||||
| Node: ENVIRONMENT18679 | Node: ENVIRONMENT18618 | ||||||
| Ref: #environment18790 | Ref: #environment18729 | ||||||
| Node: FILES19597 | Node: FILES19534 | ||||||
| Ref: #files19696 | Ref: #files19633 | ||||||
| Node: BUGS19909 | Node: BUGS19846 | ||||||
| Ref: #bugs19986 | Ref: #bugs19923 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
| 
 |  | ||||||
|  |  | ||||||
| Local Variables: |  | ||||||
| coding: utf-8 |  | ||||||
| End: |  | ||||||
|  | |||||||
| @ -504,4 +504,4 @@ SEE ALSO | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| hledger-ui-1.22.99                August 2021                    HLEDGER-UI(1) | hledger-ui-1.22.99              September 2021                   HLEDGER-UI(1) | ||||||
|  | |||||||
| @ -1,2 +1,2 @@ | |||||||
| m4_dnl Date to show in man pages. Updated by "Shake manuals" | m4_dnl Date to show in man pages. Updated by "Shake manuals" | ||||||
| m4_define({{_monthyear_}}, {{August 2021}})m4_dnl | m4_define({{_monthyear_}}, {{September 2021}})m4_dnl | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| 
 | 
 | ||||||
| .TH "HLEDGER-WEB" "1" "August 2021" "hledger-web-1.22.99 " "hledger User Manuals" | .TH "HLEDGER-WEB" "1" "September 2021" "hledger-web-1.22.99 " "hledger User Manuals" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| This is hledger-web.info, produced by makeinfo version 6.8 from stdin. | This is hledger-web/hledger-web.info, produced by makeinfo version 4.8 | ||||||
|  | from stdin. | ||||||
| 
 | 
 | ||||||
| INFO-DIR-SECTION User Applications | INFO-DIR-SECTION User Applications | ||||||
| START-INFO-DIR-ENTRY | START-INFO-DIR-ENTRY | ||||||
| @ -6,7 +7,7 @@ START-INFO-DIR-ENTRY | |||||||
| END-INFO-DIR-ENTRY | END-INFO-DIR-ENTRY | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-web.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | File: hledger-web.info,  Node: Top,  Up: (dir) | ||||||
| 
 | 
 | ||||||
| hledger-web(1) | hledger-web(1) | ||||||
| ************** | ************** | ||||||
| @ -14,32 +15,31 @@ hledger-web(1) | |||||||
| hledger-web is a web interface (WUI) for the hledger accounting tool. | hledger-web is a web interface (WUI) for the hledger accounting tool. | ||||||
| This manual is for hledger-web 1.22.99. | This manual is for hledger-web 1.22.99. | ||||||
| 
 | 
 | ||||||
|    'hledger-web [OPTIONS]' |    `hledger-web [OPTIONS]' | ||||||
| 'hledger web -- [OPTIONS]' | `hledger web -- [OPTIONS]' | ||||||
| 
 | 
 | ||||||
|    hledger is a reliable, cross-platform set of programs for tracking |    hledger is a reliable, cross-platform set of programs for tracking | ||||||
| money, time, or any other commodity, using double-entry accounting and a | money, time, or any other commodity, using double-entry accounting and a | ||||||
| simple, editable file format.  hledger is inspired by and largely | simple, editable file format. hledger is inspired by and largely | ||||||
| compatible with ledger(1). | compatible with ledger(1). | ||||||
| 
 | 
 | ||||||
|    hledger-web is hledger's web interface.  It starts a simple web |    hledger-web is hledger's web interface. It starts a simple web | ||||||
| application for browsing and adding transactions, and optionally opens | application for browsing and adding transactions, and optionally opens | ||||||
| it in a web browser window if possible.  It provides a more | it in a web browser window if possible. It provides a more user-friendly | ||||||
| user-friendly UI than the hledger CLI or hledger-ui interface, showing | UI than the hledger CLI or hledger-ui interface, showing more at once | ||||||
| more at once (accounts, the current account register, balance charts) | (accounts, the current account register, balance charts) and allowing | ||||||
| and allowing history-aware data entry, interactive searching, and | history-aware data entry, interactive searching, and bookmarking. | ||||||
| bookmarking. |  | ||||||
| 
 | 
 | ||||||
|    hledger-web also lets you share a ledger with multiple users, or even |    hledger-web also lets you share a ledger with multiple users, or even | ||||||
| the public web.  There is no access control, so if you need that you | the public web. There is no access control, so if you need that you | ||||||
| should put it behind a suitable web proxy.  As a small protection | should put it behind a suitable web proxy. As a small protection against | ||||||
| against data loss when running an unprotected instance, it writes a | data loss when running an unprotected instance, it writes a numbered | ||||||
| numbered backup of the main journal file (only ?)  on every edit. | backup of the main journal file (only ?) on every edit. | ||||||
| 
 | 
 | ||||||
|    Like hledger, it reads data from one or more files in hledger |    Like hledger, it reads data from one or more files in hledger | ||||||
| journal, timeclock, timedot, or CSV format specified with '-f', or | journal, timeclock, timedot, or CSV format specified with `-f', or | ||||||
| '$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps | `$LEDGER_FILE', or `$HOME/.hledger.journal' (on windows, perhaps | ||||||
| 'C:/Users/USER/.hledger.journal').  For more about this see hledger(1). | `C:/Users/USER/.hledger.journal'). For more about this see hledger(1). | ||||||
| 
 | 
 | ||||||
| * Menu: | * Menu: | ||||||
| 
 | 
 | ||||||
| @ -59,168 +59,165 @@ File: hledger-web.info,  Node: OPTIONS,  Next: PERMISSIONS,  Prev: Top,  Up: Top | |||||||
| ********* | ********* | ||||||
| 
 | 
 | ||||||
| Command-line options and arguments may be used to set an initial filter | Command-line options and arguments may be used to set an initial filter | ||||||
| on the data.  These filter options are not shown in the web UI, but it | on the data. These filter options are not shown in the web UI, but it | ||||||
| will be applied in addition to any search query entered there. | will be applied in addition to any search query entered there. | ||||||
| 
 | 
 | ||||||
|    Note: if invoking hledger-web as a hledger subcommand, write '--' |    Note: if invoking hledger-web as a hledger subcommand, write `--' | ||||||
| before options, as shown in the synopsis above. | before options, as shown in the synopsis above. | ||||||
| 
 | 
 | ||||||
| '--serve' | `--serve' | ||||||
| 
 |  | ||||||
|      serve and log requests, don't browse or auto-exit |      serve and log requests, don't browse or auto-exit | ||||||
| '--serve-api' |  | ||||||
| 
 | 
 | ||||||
|  | `--serve-api' | ||||||
|      like -serve, but serve only the JSON web API, without the |      like -serve, but serve only the JSON web API, without the | ||||||
|      server-side web UI |      server-side web UI | ||||||
| '--host=IPADDR' |  | ||||||
| 
 | 
 | ||||||
|  | `--host=IPADDR' | ||||||
|      listen on this IP address (default: 127.0.0.1) |      listen on this IP address (default: 127.0.0.1) | ||||||
| '--port=PORT' |  | ||||||
| 
 | 
 | ||||||
|  | `--port=PORT' | ||||||
|      listen on this TCP port (default: 5000) |      listen on this TCP port (default: 5000) | ||||||
| '--socket=SOCKETFILE' |  | ||||||
| 
 | 
 | ||||||
|  | `--socket=SOCKETFILE' | ||||||
|      use a unix domain socket file to listen for requests instead of a |      use a unix domain socket file to listen for requests instead of a | ||||||
|      TCP socket.  Implies '--serve'.  It can only be used if the |      TCP socket. Implies `--serve'. It can only be used if the operating | ||||||
|      operating system can provide this type of socket. |      system can provide this type of socket. | ||||||
| '--base-url=URL' |  | ||||||
| 
 | 
 | ||||||
|  | `--base-url=URL' | ||||||
|      set the base url (default: http://IPADDR:PORT). You would change |      set the base url (default: http://IPADDR:PORT). You would change | ||||||
|      this when sharing over the network, or integrating within a larger |      this when sharing over the network, or integrating within a larger | ||||||
|      website. |      website. | ||||||
| '--file-url=URL' |  | ||||||
| 
 | 
 | ||||||
|      set the static files url (default: BASEURL/static).  hledger-web | `--file-url=URL' | ||||||
|  |      set the static files url (default: BASEURL/static). hledger-web | ||||||
|      normally serves static files itself, but if you wanted to serve |      normally serves static files itself, but if you wanted to serve | ||||||
|      them from another server for efficiency, you would set the url with |      them from another server for efficiency, you would set the url | ||||||
|      this. |      with this. | ||||||
| '--capabilities=CAP[,CAP..]' |  | ||||||
| 
 | 
 | ||||||
|  | `--capabilities=CAP[,CAP..]' | ||||||
|      enable the view, add, and/or manage capabilities (default: |      enable the view, add, and/or manage capabilities (default: | ||||||
|      view,add) |      view,add) | ||||||
| '--capabilities-header=HTTPHEADER' |  | ||||||
| 
 | 
 | ||||||
|  | `--capabilities-header=HTTPHEADER' | ||||||
|      read capabilities to enable from a HTTP header, like |      read capabilities to enable from a HTTP header, like | ||||||
|      X-Sandstorm-Permissions (default: disabled) |      X-Sandstorm-Permissions (default: disabled) | ||||||
| '--test' |  | ||||||
| 
 | 
 | ||||||
|      run hledger-web's tests and exit.  hspec test runner args may | `--test' | ||||||
|  |      run hledger-web's tests and exit. hspec test runner args may | ||||||
|      follow a -, eg: hledger-web -test - -help |      follow a -, eg: hledger-web -test - -help | ||||||
| 
 | 
 | ||||||
|    hledger input options: |    hledger input options: | ||||||
| 
 | 
 | ||||||
| '-f FILE --file=FILE' | `-f FILE --file=FILE' | ||||||
| 
 |      use a different input file. For stdin, use - (default: | ||||||
|      use a different input file.  For stdin, use - (default: |      `$LEDGER_FILE' or `$HOME/.hledger.journal') | ||||||
|      '$LEDGER_FILE' or '$HOME/.hledger.journal') |  | ||||||
| '--rules-file=RULESFILE' |  | ||||||
| 
 | 
 | ||||||
|  | `--rules-file=RULESFILE' | ||||||
|      Conversion rules file to use when reading CSV (default: FILE.rules) |      Conversion rules file to use when reading CSV (default: FILE.rules) | ||||||
| '--separator=CHAR' |  | ||||||
| 
 | 
 | ||||||
|  | `--separator=CHAR' | ||||||
|      Field separator to expect when reading CSV (default: ',') |      Field separator to expect when reading CSV (default: ',') | ||||||
| '--alias=OLD=NEW' |  | ||||||
| 
 | 
 | ||||||
|  | `--alias=OLD=NEW' | ||||||
|      rename accounts named OLD to NEW |      rename accounts named OLD to NEW | ||||||
| '--anon' |  | ||||||
| 
 | 
 | ||||||
|  | `--anon' | ||||||
|      anonymize accounts and payees |      anonymize accounts and payees | ||||||
| '--pivot FIELDNAME' |  | ||||||
| 
 | 
 | ||||||
|  | `--pivot FIELDNAME' | ||||||
|      use some other field or tag for the account name |      use some other field or tag for the account name | ||||||
| '-I --ignore-assertions' |  | ||||||
| 
 | 
 | ||||||
|  | `-I --ignore-assertions' | ||||||
|      disable balance assertion checks (note: does not disable balance |      disable balance assertion checks (note: does not disable balance | ||||||
|      assignments) |      assignments) | ||||||
| '-s --strict' |  | ||||||
| 
 | 
 | ||||||
|  | `-s --strict' | ||||||
|      do extra error checking (check that all posted accounts are |      do extra error checking (check that all posted accounts are | ||||||
|      declared) |      declared) | ||||||
| 
 | 
 | ||||||
|    hledger reporting options: |    hledger reporting options: | ||||||
| 
 | 
 | ||||||
| '-b --begin=DATE' | `-b --begin=DATE' | ||||||
| 
 |  | ||||||
|      include postings/txns on or after this date (will be adjusted to |      include postings/txns on or after this date (will be adjusted to | ||||||
|      preceding subperiod start when using a report interval) |      preceding subperiod start when using a report interval) | ||||||
| '-e --end=DATE' |  | ||||||
| 
 | 
 | ||||||
|  | `-e --end=DATE' | ||||||
|      include postings/txns before this date (will be adjusted to |      include postings/txns before this date (will be adjusted to | ||||||
|      following subperiod end when using a report interval) |      following subperiod end when using a report interval) | ||||||
| '-D --daily' |  | ||||||
| 
 | 
 | ||||||
|  | `-D --daily' | ||||||
|      multiperiod/multicolumn report by day |      multiperiod/multicolumn report by day | ||||||
| '-W --weekly' |  | ||||||
| 
 | 
 | ||||||
|  | `-W --weekly' | ||||||
|      multiperiod/multicolumn report by week |      multiperiod/multicolumn report by week | ||||||
| '-M --monthly' |  | ||||||
| 
 | 
 | ||||||
|  | `-M --monthly' | ||||||
|      multiperiod/multicolumn report by month |      multiperiod/multicolumn report by month | ||||||
| '-Q --quarterly' |  | ||||||
| 
 | 
 | ||||||
|  | `-Q --quarterly' | ||||||
|      multiperiod/multicolumn report by quarter |      multiperiod/multicolumn report by quarter | ||||||
| '-Y --yearly' |  | ||||||
| 
 | 
 | ||||||
|  | `-Y --yearly' | ||||||
|      multiperiod/multicolumn report by year |      multiperiod/multicolumn report by year | ||||||
| '-p --period=PERIODEXP' |  | ||||||
| 
 | 
 | ||||||
|  | `-p --period=PERIODEXP' | ||||||
|      set start date, end date, and/or reporting interval all at once |      set start date, end date, and/or reporting interval all at once | ||||||
|      using period expressions syntax |      using period expressions syntax | ||||||
| '--date2' |  | ||||||
| 
 | 
 | ||||||
|  | `--date2' | ||||||
|      match the secondary date instead (see command help for other |      match the secondary date instead (see command help for other | ||||||
|      effects) |      effects) | ||||||
| '-U --unmarked' |  | ||||||
| 
 | 
 | ||||||
|  | `-U --unmarked' | ||||||
|      include only unmarked postings/txns (can combine with -P or -C) |      include only unmarked postings/txns (can combine with -P or -C) | ||||||
| '-P --pending' |  | ||||||
| 
 | 
 | ||||||
|  | `-P --pending' | ||||||
|      include only pending postings/txns |      include only pending postings/txns | ||||||
| '-C --cleared' |  | ||||||
| 
 | 
 | ||||||
|  | `-C --cleared' | ||||||
|      include only cleared postings/txns |      include only cleared postings/txns | ||||||
| '-R --real' |  | ||||||
| 
 | 
 | ||||||
|  | `-R --real' | ||||||
|      include only non-virtual postings |      include only non-virtual postings | ||||||
| '-NUM --depth=NUM' |  | ||||||
| 
 | 
 | ||||||
|  | `-NUM --depth=NUM' | ||||||
|      hide/aggregate accounts or postings more than NUM levels deep |      hide/aggregate accounts or postings more than NUM levels deep | ||||||
| '-E --empty' |  | ||||||
| 
 | 
 | ||||||
|  | `-E --empty' | ||||||
|      show items with zero amount, normally hidden (and vice-versa in |      show items with zero amount, normally hidden (and vice-versa in | ||||||
|      hledger-ui/hledger-web) |      hledger-ui/hledger-web) | ||||||
| '-B --cost' |  | ||||||
| 
 | 
 | ||||||
|  | `-B --cost' | ||||||
|      convert amounts to their cost/selling amount at transaction time |      convert amounts to their cost/selling amount at transaction time | ||||||
| '-V --market' |  | ||||||
| 
 | 
 | ||||||
|  | `-V --market' | ||||||
|      convert amounts to their market value in default valuation |      convert amounts to their market value in default valuation | ||||||
|      commodities |      commodities | ||||||
| '-X --exchange=COMM' |  | ||||||
| 
 | 
 | ||||||
|  | `-X --exchange=COMM' | ||||||
|      convert amounts to their market value in commodity COMM |      convert amounts to their market value in commodity COMM | ||||||
| '--value' |  | ||||||
| 
 | 
 | ||||||
|  | `--value' | ||||||
|      convert amounts to cost or market value, more flexibly than |      convert amounts to cost or market value, more flexibly than | ||||||
|      -B/-V/-X |      -B/-V/-X | ||||||
| '--infer-market-prices' |  | ||||||
| 
 | 
 | ||||||
|  | `--infer-market-prices' | ||||||
|      use transaction prices (recorded with @ or @@) as additional market |      use transaction prices (recorded with @ or @@) as additional market | ||||||
|      prices, as if they were P directives |      prices, as if they were P directives | ||||||
| '--auto' |  | ||||||
| 
 | 
 | ||||||
|  | `--auto' | ||||||
|      apply automated posting rules to modify transactions. |      apply automated posting rules to modify transactions. | ||||||
| '--forecast' |  | ||||||
| 
 | 
 | ||||||
|  | `--forecast' | ||||||
|      generate future transactions from periodic transaction rules, for |      generate future transactions from periodic transaction rules, for | ||||||
|      the next 6 months or till report end date.  In hledger-ui, also |      the next 6 months or till report end date. In hledger-ui, also | ||||||
|      make ordinary future transactions visible. |      make ordinary future transactions visible. | ||||||
| '--color=WHEN (or --colour=WHEN)' |  | ||||||
| 
 | 
 | ||||||
|  | `--color=WHEN (or --colour=WHEN)' | ||||||
|      Should color-supporting commands use ANSI color codes in text |      Should color-supporting commands use ANSI color codes in text | ||||||
|      output.  'auto' (default): whenever stdout seems to be a |      output.  'auto' (default): whenever stdout seems to be a | ||||||
|      color-supporting terminal.  'always' or 'yes': always, useful eg |      color-supporting terminal.  'always' or 'yes': always, useful eg | ||||||
|      when piping output into 'less -R'. 'never' or 'no': never.  A |      when piping output into 'less -R'.  'never' or 'no': never.  A | ||||||
|      NO_COLOR environment variable overrides this. |      NO_COLOR environment variable overrides this. | ||||||
| 
 | 
 | ||||||
|    When a reporting option appears more than once in the command line, |    When a reporting option appears more than once in the command line, | ||||||
| @ -230,62 +227,62 @@ the last one takes precedence. | |||||||
| 
 | 
 | ||||||
|    hledger help options: |    hledger help options: | ||||||
| 
 | 
 | ||||||
| '-h --help' | `-h --help' | ||||||
| 
 |  | ||||||
|      show general or COMMAND help |      show general or COMMAND help | ||||||
| '--man' |  | ||||||
| 
 | 
 | ||||||
|  | `--man' | ||||||
|      show general or COMMAND user manual with man |      show general or COMMAND user manual with man | ||||||
| '--info' |  | ||||||
| 
 | 
 | ||||||
|  | `--info' | ||||||
|      show general or COMMAND user manual with info |      show general or COMMAND user manual with info | ||||||
| '--version' |  | ||||||
| 
 | 
 | ||||||
|  | `--version' | ||||||
|      show general or ADDONCMD version |      show general or ADDONCMD version | ||||||
| '--debug[=N]' |  | ||||||
| 
 | 
 | ||||||
|  | `--debug[=N]' | ||||||
|      show debug output (levels 1-9, default: 1) |      show debug output (levels 1-9, default: 1) | ||||||
| 
 | 
 | ||||||
|    A @FILE argument will be expanded to the contents of FILE, which |    A @FILE argument will be expanded to the contents of FILE, which | ||||||
| should contain one command line option/argument per line.  (To prevent | should contain one command line option/argument per line. (To prevent | ||||||
| this, insert a '--' argument before.) | this, insert a `--' argument before.) | ||||||
| 
 | 
 | ||||||
|    By default, hledger-web starts the web app in "transient mode" and |    By default, hledger-web starts the web app in "transient mode" and | ||||||
| also opens it in your default web browser if possible.  In this mode the | also opens it in your default web browser if possible. In this mode the | ||||||
| web app will keep running for as long as you have it open in a browser | web app will keep running for as long as you have it open in a browser | ||||||
| window, and will exit after two minutes of inactivity (no requests and | window, and will exit after two minutes of inactivity (no requests and | ||||||
| no browser windows viewing it).  With '--serve', it just runs the web | no browser windows viewing it). With `--serve', it just runs the web | ||||||
| app without exiting, and logs requests to the console.  With | app without exiting, and logs requests to the console. With | ||||||
| '--serve-api', only the JSON web api (see below) is served, with the | `--serve-api', only the JSON web api (see below) is served, with the | ||||||
| usual HTML server-side web UI disabled. | usual HTML server-side web UI disabled. | ||||||
| 
 | 
 | ||||||
|    By default the server listens on IP address 127.0.0.1, accessible |    By default the server listens on IP address 127.0.0.1, accessible | ||||||
| only to local requests.  You can use '--host' to change this, eg '--host | only to local requests. You can use `--host' to change this, eg `--host | ||||||
| 0.0.0.0' to listen on all configured addresses. | 0.0.0.0' to listen on all configured addresses. | ||||||
| 
 | 
 | ||||||
|    Similarly, use '--port' to set a TCP port other than 5000, eg if you |    Similarly, use `--port' to set a TCP port other than 5000, eg if you | ||||||
| are running multiple hledger-web instances. | are running multiple hledger-web instances. | ||||||
| 
 | 
 | ||||||
|    Both of these options are ignored when '--socket' is used.  In this |    Both of these options are ignored when `--socket' is used. In this | ||||||
| case, it creates an 'AF_UNIX' socket file at the supplied path and uses | case, it creates an `AF_UNIX' socket file at the supplied path and uses | ||||||
| that for communication.  This is an alternative way of running multiple | that for communication. This is an alternative way of running multiple | ||||||
| hledger-web instances behind a reverse proxy that handles authentication | hledger-web instances behind a reverse proxy that handles | ||||||
| for different users.  The path can be derived in a predictable way, eg | authentication for different users. The path can be derived in a | ||||||
| by using the username within the path.  As an example, 'nginx' as | predictable way, eg by using the username within the path. As an | ||||||
| reverse proxy can use the variable '$remote_user' to derive a path from | example, `nginx' as reverse proxy can use the variable `$remote_user' | ||||||
| the username used in a HTTP basic authentication.  The following | to derive a path from the username used in a HTTP basic authentication. | ||||||
| 'proxy_pass' directive allows access to all 'hledger-web' instances that | The following `proxy_pass' directive allows access to all `hledger-web' | ||||||
| created a socket in '/tmp/hledger/': | instances that created a socket in `/tmp/hledger/': | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|   proxy_pass http://unix:/tmp/hledger/${remote_user}.socket; |   proxy_pass http://unix:/tmp/hledger/${remote_user}.socket; | ||||||
| 
 | 
 | ||||||
|    You can use '--base-url' to change the protocol, hostname, port and |    You can use `--base-url' to change the protocol, hostname, port and | ||||||
| path that appear in hyperlinks, useful eg for integrating hledger-web | path that appear in hyperlinks, useful eg for integrating hledger-web | ||||||
| within a larger website.  The default is 'http://HOST:PORT/' using the | within a larger website. The default is `http://HOST:PORT/' using the | ||||||
| server's configured host address and TCP port (or 'http://HOST' if PORT | server's configured host address and TCP port (or `http://HOST' if PORT | ||||||
| is 80). | is 80). | ||||||
| 
 | 
 | ||||||
|    With '--file-url' you can set a different base url for static files, |    With `--file-url' you can set a different base url for static files, | ||||||
| eg for better caching or cookie-less serving on high performance | eg for better caching or cookie-less serving on high performance | ||||||
| websites. | websites. | ||||||
| 
 | 
 | ||||||
| @ -300,28 +297,32 @@ journal and to add new transactions, but not to change existing data. | |||||||
| 
 | 
 | ||||||
|    You can restrict who can reach it by |    You can restrict who can reach it by | ||||||
| 
 | 
 | ||||||
|    * setting the IP address it listens on (see '--host' above).  By |    * setting the IP address it listens on (see `--host' above). By | ||||||
|      default it listens on 127.0.0.1, accessible to all users on the |      default it listens on 127.0.0.1, accessible to all users on the | ||||||
|      local machine. |      local machine. | ||||||
|  | 
 | ||||||
|    * putting it behind an authenticating proxy, using eg apache or nginx |    * putting it behind an authenticating proxy, using eg apache or nginx | ||||||
|  | 
 | ||||||
|    * custom firewall rules |    * custom firewall rules | ||||||
| 
 | 
 | ||||||
|    You can restrict what the users who reach it can do, by |    You can restrict what the users who reach it can do, by | ||||||
| 
 | 
 | ||||||
|    * using the '--capabilities=CAP[,CAP..]' flag when you start it, |    * using the `--capabilities=CAP[,CAP..]' flag when you start it, | ||||||
|      enabling one or more of the following capabilities.  The default |      enabling one or more of the following capabilities. The default | ||||||
|      value is 'view,add': |      value is `view,add': | ||||||
|         * 'view' - allows viewing the journal file and all included |         * `view' - allows viewing the journal file and all included | ||||||
|           files |           files | ||||||
|         * 'add' - allows adding new transactions to the main journal | 
 | ||||||
|  |         * `add' - allows adding new transactions to the main journal | ||||||
|           file |           file | ||||||
|         * 'manage' - allows editing, uploading or downloading the main | 
 | ||||||
|  |         * `manage' - allows editing, uploading or downloading the main | ||||||
|           or included files |           or included files | ||||||
| 
 | 
 | ||||||
|    * using the '--capabilities-header=HTTPHEADER' flag to specify a HTTP |    * using the `--capabilities-header=HTTPHEADER' flag to specify a HTTP | ||||||
|      header from which it will read capabilities to enable.  hledger-web |      header from which it will read capabilities to enable. hledger-web | ||||||
|      on Sandstorm uses the X-Sandstorm-Permissions header to integrate |      on Sandstorm uses the X-Sandstorm-Permissions header to integrate | ||||||
|      with Sandstorm's permissions.  This is disabled by default. |      with Sandstorm's permissions. This is disabled by default. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-web.info,  Node: EDITING UPLOADING DOWNLOADING,  Next: RELOADING,  Prev: PERMISSIONS,  Up: Top | File: hledger-web.info,  Node: EDITING UPLOADING DOWNLOADING,  Next: RELOADING,  Prev: PERMISSIONS,  Up: Top | ||||||
| @ -329,8 +330,8 @@ File: hledger-web.info,  Node: EDITING UPLOADING DOWNLOADING,  Next: RELOADING, | |||||||
| 3 EDITING, UPLOADING, DOWNLOADING | 3 EDITING, UPLOADING, DOWNLOADING | ||||||
| ********************************* | ********************************* | ||||||
| 
 | 
 | ||||||
| If you enable the 'manage' capability mentioned above, you'll see a new | If you enable the `manage' capability mentioned above, you'll see a new | ||||||
| "spanner" button to the right of the search form.  Clicking this will | "spanner" button to the right of the search form. Clicking this will | ||||||
| let you edit, upload, or download the journal file or any files it | let you edit, upload, or download the journal file or any files it | ||||||
| includes. | includes. | ||||||
| 
 | 
 | ||||||
| @ -339,13 +340,13 @@ visitor) can alter or wipe the data files. | |||||||
| 
 | 
 | ||||||
|    Normally whenever a file is changed in this way, hledger-web saves a |    Normally whenever a file is changed in this way, hledger-web saves a | ||||||
| numbered backup (assuming file permissions allow it, the disk is not | numbered backup (assuming file permissions allow it, the disk is not | ||||||
| full, etc.)  hledger-web is not aware of version control systems, | full, etc.) hledger-web is not aware of version control systems, | ||||||
| currently; if you use one, you'll have to arrange to commit the changes | currently; if you use one, you'll have to arrange to commit the changes | ||||||
| yourself (eg with a cron job or a file watcher like entr). | yourself (eg with a cron job or a file watcher like entr). | ||||||
| 
 | 
 | ||||||
|    Changes which would leave the journal file(s) unparseable or |    Changes which would leave the journal file(s) unparseable or | ||||||
| non-valid (eg with failing balance assertions) are prevented. | non-valid (eg with failing balance assertions) are prevented. | ||||||
| (Probably.  This needs re-testing.) | (Probably. This needs re-testing.) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-web.info,  Node: RELOADING,  Next: JSON API,  Prev: EDITING UPLOADING DOWNLOADING,  Up: Top | File: hledger-web.info,  Node: RELOADING,  Next: JSON API,  Prev: EDITING UPLOADING DOWNLOADING,  Up: Top | ||||||
| @ -355,7 +356,7 @@ File: hledger-web.info,  Node: RELOADING,  Next: JSON API,  Prev: EDITING UPLOAD | |||||||
| 
 | 
 | ||||||
| hledger-web detects changes made to the files by other means (eg if you | hledger-web detects changes made to the files by other means (eg if you | ||||||
| edit it directly, outside of hledger-web), and it will show the new data | edit it directly, outside of hledger-web), and it will show the new data | ||||||
| when you reload the page or navigate to a new page.  If a change makes a | when you reload the page or navigate to a new page. If a change makes a | ||||||
| file unparseable, hledger-web will display an error message until the | file unparseable, hledger-web will display an error message until the | ||||||
| file has been fixed. | file has been fixed. | ||||||
| 
 | 
 | ||||||
| @ -369,14 +370,16 @@ File: hledger-web.info,  Node: JSON API,  Next: ENVIRONMENT,  Prev: RELOADING, | |||||||
| ********** | ********** | ||||||
| 
 | 
 | ||||||
| In addition to the web UI, hledger-web also serves a JSON API that can | In addition to the web UI, hledger-web also serves a JSON API that can | ||||||
| be used to get data or add new transactions.  If you want the JSON API | be used to get data or add new transactions. If you want the JSON API | ||||||
| only, you can use the '--serve-api' flag.  Eg: | only, you can use the `--serve-api' flag. Eg: | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| $ hledger-web -f examples/sample.journal --serve-api | $ hledger-web -f examples/sample.journal --serve-api | ||||||
| ... | ... | ||||||
| 
 | 
 | ||||||
|    You can get JSON data from these routes: |    You can get JSON data from these routes: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| /version | /version | ||||||
| /accountnames | /accountnames | ||||||
| /transactions | /transactions | ||||||
| @ -389,6 +392,7 @@ $ hledger-web -f examples/sample.journal --serve-api | |||||||
| command).  (hledger-web's JSON does not include newlines, here we use | command).  (hledger-web's JSON does not include newlines, here we use | ||||||
| python to prettify it): | python to prettify it): | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool | $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool | ||||||
| [ | [ | ||||||
|     "assets", |     "assets", | ||||||
| @ -408,6 +412,7 @@ $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool | |||||||
| 
 | 
 | ||||||
|    Or all transactions: |    Or all transactions: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool | $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool | ||||||
| [ | [ | ||||||
|     { |     { | ||||||
| @ -429,24 +434,25 @@ $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool | |||||||
| 
 | 
 | ||||||
|    Most of the JSON corresponds to hledger's data types; for details of |    Most of the JSON corresponds to hledger's data types; for details of | ||||||
| what the fields mean, see the Hledger.Data.Json haddock docs and click | what the fields mean, see the Hledger.Data.Json haddock docs and click | ||||||
| on the various data types, eg Transaction.  And for a higher level | on the various data types, eg Transaction. And for a higher level | ||||||
| understanding, see the journal manual. | understanding, see the journal manual. | ||||||
| 
 | 
 | ||||||
|    In some cases there is outer JSON corresponding to a "Report" type. |    In some cases there is outer JSON corresponding to a "Report" type. | ||||||
| To understand that, go to the Hledger.Web.Handler.MiscR haddock and look | To understand that, go to the Hledger.Web.Handler.MiscR haddock and | ||||||
| at the source for the appropriate handler to see what it returns.  Eg | look at the source for the appropriate handler to see what it returns. | ||||||
| for '/accounttransactions' it's getAccounttransactionsR, returning a | Eg for `/accounttransactions' it's getAccounttransactionsR, returning a | ||||||
| "'accountTransactionsReport ...'".  Looking up the haddock for that we | "`accountTransactionsReport ...'". Looking up the haddock for that we | ||||||
| can see that /accounttransactions returns an AccountTransactionsReport, | can see that /accounttransactions returns an AccountTransactionsReport, | ||||||
| which consists of a report title and a list of | which consists of a report title and a list of | ||||||
| AccountTransactionsReportItem (etc). | AccountTransactionsReportItem (etc). | ||||||
| 
 | 
 | ||||||
|    You can add a new transaction to the journal with a PUT request to |    You can add a new transaction to the journal with a PUT request to | ||||||
| '/add', if hledger-web was started with the 'add' capability (enabled by | `/add', if hledger-web was started with the `add' capability (enabled | ||||||
| default).  The payload must be the full, exact JSON representation of a | by default). The payload must be the full, exact JSON representation of | ||||||
| hledger transaction (partial data won't do).  You can get sample JSON | a hledger transaction (partial data won't do). You can get sample JSON | ||||||
| from hledger-web's '/transactions' or '/accounttransactions', or you can | from hledger-web's `/transactions' or `/accounttransactions', or you | ||||||
| export it with hledger-lib, eg like so: | can export it with hledger-lib, eg like so: | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| .../hledger$ stack ghci hledger-lib | .../hledger$ stack ghci hledger-lib | ||||||
| >>> writeJsonFile "txn.json" (head $ jtxns samplejournal) | >>> writeJsonFile "txn.json" (head $ jtxns samplejournal) | ||||||
| @ -455,6 +461,7 @@ export it with hledger-lib, eg like so: | |||||||
|    Here's how it looks as of hledger-1.17 (remember, this JSON |    Here's how it looks as of hledger-1.17 (remember, this JSON | ||||||
| corresponds to hledger's Transaction and related data types): | corresponds to hledger's Transaction and related data types): | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| { | { | ||||||
|     "tcomment": "", |     "tcomment": "", | ||||||
|     "tpostings": [ |     "tpostings": [ | ||||||
| @ -541,9 +548,10 @@ corresponds to hledger's Transaction and related data types): | |||||||
|     "tstatus": "Unmarked" |     "tstatus": "Unmarked" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|    And here's how to test adding it with curl.  This should add a new |    And here's how to test adding it with curl. This should add a new | ||||||
| entry to your journal: | entry to your journal: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| $ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json | $ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| @ -552,25 +560,26 @@ File: hledger-web.info,  Node: ENVIRONMENT,  Next: FILES,  Prev: JSON API,  Up: | |||||||
| 6 ENVIRONMENT | 6 ENVIRONMENT | ||||||
| ************* | ************* | ||||||
| 
 | 
 | ||||||
| *LEDGER_FILE* The journal file path when not specified with '-f'. | *LEDGER_FILE* The journal file path when not specified with `-f'. | ||||||
| Default: '~/.hledger.journal' (on windows, perhaps | Default: `~/.hledger.journal' (on windows, perhaps | ||||||
| 'C:/Users/USER/.hledger.journal'). | `C:/Users/USER/.hledger.journal'). | ||||||
| 
 | 
 | ||||||
|    A typical value is '~/DIR/YYYY.journal', where DIR is a |    A typical value is `~/DIR/YYYY.journal', where DIR is a | ||||||
| version-controlled finance directory and YYYY is the current year.  Or | version-controlled finance directory and YYYY is the current year. Or | ||||||
| '~/DIR/current.journal', where current.journal is a symbolic link to | `~/DIR/current.journal', where current.journal is a symbolic link to | ||||||
| YYYY.journal. | YYYY.journal. | ||||||
| 
 | 
 | ||||||
|    On Mac computers, you can set this and other environment variables in |    On Mac computers, you can set this and other environment variables | ||||||
| a more thorough way that also affects applications started from the GUI | in a more thorough way that also affects applications started from the | ||||||
| (say, an Emacs dock icon).  Eg on MacOS Catalina I have a | GUI (say, an Emacs dock icon). Eg on MacOS Catalina I have a | ||||||
| '~/.MacOSX/environment.plist' file containing | `~/.MacOSX/environment.plist' file containing | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   "LEDGER_FILE" : "~/finance/current.journal" |   "LEDGER_FILE" : "~/finance/current.journal" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|    To see the effect you may need to 'killall Dock', or reboot. |    To see the effect you may need to `killall Dock', or reboot. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-web.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | File: hledger-web.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | ||||||
| @ -579,9 +588,9 @@ File: hledger-web.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | |||||||
| ******* | ******* | ||||||
| 
 | 
 | ||||||
| Reads data from one or more files in hledger journal, timeclock, | Reads data from one or more files in hledger journal, timeclock, | ||||||
| timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or | timedot, or CSV format specified with `-f', or `$LEDGER_FILE', or | ||||||
| '$HOME/.hledger.journal' (on windows, perhaps | `$HOME/.hledger.journal' (on windows, perhaps | ||||||
| 'C:/Users/USER/.hledger.journal'). | `C:/Users/USER/.hledger.journal'). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-web.info,  Node: BUGS,  Prev: FILES,  Up: Top | File: hledger-web.info,  Node: BUGS,  Prev: FILES,  Up: Top | ||||||
| @ -589,10 +598,10 @@ File: hledger-web.info,  Node: BUGS,  Prev: FILES,  Up: Top | |||||||
| 8 BUGS | 8 BUGS | ||||||
| ****** | ****** | ||||||
| 
 | 
 | ||||||
| The need to precede options with '--' when invoked from hledger is | The need to precede options with `--' when invoked from hledger is | ||||||
| awkward. | awkward. | ||||||
| 
 | 
 | ||||||
|    '-f-' doesn't work (hledger-web can't read from stdin). |    `-f-' doesn't work (hledger-web can't read from stdin). | ||||||
| 
 | 
 | ||||||
|    Query arguments and some hledger options are ignored. |    Query arguments and some hledger options are ignored. | ||||||
| 
 | 
 | ||||||
| @ -600,29 +609,25 @@ awkward. | |||||||
| 
 | 
 | ||||||
|    Does not work well on small screens. |    Does not work well on small screens. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| Tag Table: |  | ||||||
| Node: Top223 |  | ||||||
| Node: OPTIONS1889 |  | ||||||
| Ref: #options1994 |  | ||||||
| Node: PERMISSIONS9427 |  | ||||||
| Ref: #permissions9566 |  | ||||||
| Node: EDITING UPLOADING DOWNLOADING10778 |  | ||||||
| Ref: #editing-uploading-downloading10959 |  | ||||||
| Node: RELOADING11793 |  | ||||||
| Ref: #reloading11927 |  | ||||||
| Node: JSON API12360 |  | ||||||
| Ref: #json-api12474 |  | ||||||
| Node: ENVIRONMENT17964 |  | ||||||
| Ref: #environment18080 |  | ||||||
| Node: FILES18813 |  | ||||||
| Ref: #files18913 |  | ||||||
| Node: BUGS19126 |  | ||||||
| Ref: #bugs19204 |  | ||||||
|  |  | ||||||
| End Tag Table |  | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| Local Variables: | Tag Table: | ||||||
| coding: utf-8 | Node: Top235 | ||||||
| End: | Node: OPTIONS1878 | ||||||
|  | Ref: #options1983 | ||||||
|  | Node: PERMISSIONS9396 | ||||||
|  | Ref: #permissions9535 | ||||||
|  | Node: EDITING UPLOADING DOWNLOADING10747 | ||||||
|  | Ref: #editing-uploading-downloading10928 | ||||||
|  | Node: RELOADING11759 | ||||||
|  | Ref: #reloading11893 | ||||||
|  | Node: JSON API12325 | ||||||
|  | Ref: #json-api12439 | ||||||
|  | Node: ENVIRONMENT17928 | ||||||
|  | Ref: #environment18044 | ||||||
|  | Node: FILES18776 | ||||||
|  | Ref: #files18876 | ||||||
|  | Node: BUGS19089 | ||||||
|  | Ref: #bugs19167 | ||||||
|  |  | ||||||
|  | End Tag Table | ||||||
|  | |||||||
| @ -556,4 +556,4 @@ SEE ALSO | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| hledger-web-1.22.99               August 2021                   HLEDGER-WEB(1) | hledger-web-1.22.99             September 2021                  HLEDGER-WEB(1) | ||||||
|  | |||||||
| @ -1,2 +1,2 @@ | |||||||
| m4_dnl Date to show in man pages. Updated by "Shake manuals" | m4_dnl Date to show in man pages. Updated by "Shake manuals" | ||||||
| m4_define({{_monthyear_}}, {{August 2021}})m4_dnl | m4_define({{_monthyear_}}, {{September 2021}})m4_dnl | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| .\"t | .\"t | ||||||
| 
 | 
 | ||||||
| .TH "HLEDGER" "1" "August 2021" "hledger-1.22.99 " "hledger User Manuals" | .TH "HLEDGER" "1" "September 2021" "hledger-1.22.99 " "hledger User Manuals" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -762,6 +762,12 @@ T}@T{ | |||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
| .PP | .PP | ||||||
|  | Note \[dq]today\[aq]s date\[dq] can be overridden with the | ||||||
|  | \f[C]--today\f[R] option, in case it\[aq]s needed for testing or for | ||||||
|  | recreating old reports. | ||||||
|  | (Except for periodic transaction rules; those are not affected by | ||||||
|  | \f[C]--today\f[R].) | ||||||
|  | .PP | ||||||
| .SS Report start & end date | .SS Report start & end date | ||||||
| .PP | .PP | ||||||
| By default, most hledger reports will show the full span of time | By default, most hledger reports will show the full span of time | ||||||
| @ -779,8 +785,8 @@ All of these accept the smart date syntax. | |||||||
| .PP | .PP | ||||||
| Some notes: | Some notes: | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| As in Ledger, end dates are exclusive, so you need to write the date | End dates are exclusive, as in Ledger, so you should write the date | ||||||
| \f[I]after\f[R] the last day you want to include. | \f[I]after\f[R] the last day you want to see in the report. | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| As noted in reporting options: among start/end dates specified with | As noted in reporting options: among start/end dates specified with | ||||||
| \f[I]options\f[R], the last (i.e. | \f[I]options\f[R], the last (i.e. | ||||||
| @ -847,9 +853,16 @@ separate row or column. | |||||||
| .PP | .PP | ||||||
| The following \[dq]standard\[dq] report intervals can be enabled by | The following \[dq]standard\[dq] report intervals can be enabled by | ||||||
| using their corresponding flag: | using their corresponding flag: | ||||||
| .PP | .IP \[bu] 2 | ||||||
| \f[C]-D/--daily\f[R], \f[C]-W/--weekly\f[R], \f[C]-M/--monthly\f[R], | \f[C]-D/--daily\f[R] | ||||||
| \f[C]-Q/--quarterly\f[R], \f[C]-Y/--yearly\f[R]. | .IP \[bu] 2 | ||||||
|  | \f[C]-W/--weekly\f[R] | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]-M/--monthly\f[R] | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]-Q/--quarterly\f[R] | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]-Y/--yearly\f[R] | ||||||
| .PP | .PP | ||||||
| These standard intervals always start on natural interval boundaries: eg | These standard intervals always start on natural interval boundaries: eg | ||||||
| \f[C]--weekly\f[R] starts on mondays, \f[C]--monthly\f[R] starts on the | \f[C]--weekly\f[R] starts on mondays, \f[C]--monthly\f[R] starts on the | ||||||
| @ -871,6 +884,20 @@ overridden (ie, the report starts earlier than your requested start | |||||||
| date, or ends later than your requested end date). | date, or ends later than your requested end date). | ||||||
| This is done to ensure \[dq]full\[dq] first and last subperiods, so that | This is done to ensure \[dq]full\[dq] first and last subperiods, so that | ||||||
| all subperiods\[aq] numbers are comparable. | all subperiods\[aq] numbers are comparable. | ||||||
|  | .PP | ||||||
|  | To summarise: | ||||||
|  | .IP \[bu] 2 | ||||||
|  | In multiperiod reports, all subperiods are forced to be the same length, | ||||||
|  | to simplify reporting. | ||||||
|  | .IP \[bu] 2 | ||||||
|  | Reports with the standard | ||||||
|  | \f[C]--weekly\f[R]/\f[C]--monthly\f[R]/\f[C]--quarterly\f[R]/\f[C]--yearly\f[R] | ||||||
|  | intervals are required to start on the first day of a | ||||||
|  | week/month/quarter/year. | ||||||
|  | We\[aq]d like more flexibility here but it isn\[aq]t supported yet. | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]--period\f[R] (below) can specify more complex intervals, starting | ||||||
|  | on any date. | ||||||
| .SS Period expressions | .SS Period expressions | ||||||
| .PP | .PP | ||||||
| The \f[C]-p/--period\f[R] option accepts period expressions, a shorthand | The \f[C]-p/--period\f[R] option accepts period expressions, a shorthand | ||||||
| @ -882,7 +909,13 @@ Here\[aq]s a basic period expression specifying the first quarter of | |||||||
| Note, hledger always treats start dates as inclusive and end dates as | Note, hledger always treats start dates as inclusive and end dates as | ||||||
| exclusive: | exclusive: | ||||||
| .PP | .PP | ||||||
|  | .TS | ||||||
|  | tab(@); | ||||||
|  | l. | ||||||
|  | T{ | ||||||
| \f[C]-p \[dq]from 2009/1/1 to 2009/4/1\[dq]\f[R] | \f[C]-p \[dq]from 2009/1/1 to 2009/4/1\[dq]\f[R] | ||||||
|  | T} | ||||||
|  | .TE | ||||||
| .PP | .PP | ||||||
| Keywords like \[dq]from\[dq] and \[dq]to\[dq] are optional, and so are | Keywords like \[dq]from\[dq] and \[dq]to\[dq] are optional, and so are | ||||||
| the spaces, as long as you don\[aq]t run two dates together. | the spaces, as long as you don\[aq]t run two dates together. | ||||||
| @ -987,17 +1020,16 @@ T}@T{ | |||||||
| fourth quarter of the current year | fourth quarter of the current year | ||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
|  | .SS Period expressions with a report interval | ||||||
| .PP | .PP | ||||||
| The argument of \f[C]-p\f[R] can also begin with, or be, a report | \f[C]-p/--period\f[R]\[aq]s argument can also begin with, or entirely | ||||||
| interval expression. | consist of, a report interval. | ||||||
| The basic report intervals are \f[C]daily\f[R], \f[C]weekly\f[R], | This should be separated from the start/end dates (if any) by a space, | ||||||
| \f[C]monthly\f[R], \f[C]quarterly\f[R], or \f[C]yearly\f[R], which have | or the word \f[C]in\f[R]. | ||||||
| the same effect as the | The basic intervals (which can also be written as command line flags) | ||||||
| \f[C]-D\f[R],\f[C]-W\f[R],\f[C]-M\f[R],\f[C]-Q\f[R], or \f[C]-Y\f[R] | are \f[C]daily\f[R], \f[C]weekly\f[R], \f[C]monthly\f[R], | ||||||
| flags. | \f[C]quarterly\f[R], and \f[C]yearly\f[R]. | ||||||
| Between report interval and start/end dates (if any), the word | Some examples: | ||||||
| \f[C]in\f[R] is optional. |  | ||||||
| Examples: |  | ||||||
| .PP | .PP | ||||||
| .TS | .TS | ||||||
| tab(@); | tab(@); | ||||||
| @ -1013,11 +1045,11 @@ T{ | |||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
| .PP | .PP | ||||||
| Note that \f[C]weekly\f[R], \f[C]monthly\f[R], \f[C]quarterly\f[R] and | As mentioned above, the \f[C]weekly\f[R], \f[C]monthly\f[R], | ||||||
| \f[C]yearly\f[R] intervals will always start on the first day on week, | \f[C]quarterly\f[R] and \f[C]yearly\f[R] intervals require a report | ||||||
| month, quarter or year accordingly, and will end on the last day of same | start date that is the first day of a week, month, quarter or year. | ||||||
| period, even if associated period expression specifies different | And, report start/end dates will be expanded if needed to span a whole | ||||||
| explicit start and end date. | number of intervals. | ||||||
| .PP | .PP | ||||||
| For example: | For example: | ||||||
| .PP | .PP | ||||||
| @ -1046,15 +1078,23 @@ T}@T{ | |||||||
| starts on 2009/01/01, first day of 2009 | starts on 2009/01/01, first day of 2009 | ||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
|  | .SS More complex report intervals | ||||||
| .PP | .PP | ||||||
| The following more complex report intervals are also supported: | Some more complex kinds of interval are also supported in period | ||||||
| \f[C]biweekly\f[R], \f[C]fortnightly\f[R], \f[C]bimonthly\f[R], | expressions: | ||||||
| \f[C]every day|week|month|quarter|year\f[R], | .IP \[bu] 2 | ||||||
| \f[C]every N days|weeks|months|quarters|years\f[R]. | \f[C]biweekly\f[R] | ||||||
| .PP | .IP \[bu] 2 | ||||||
| All of these will start on the first day of the requested period and end | \f[C]fortnightly\f[R] | ||||||
| on the last one, as described above. | .IP \[bu] 2 | ||||||
|  | \f[C]bimonthly\f[R] | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every day|week|month|quarter|year\f[R] | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every N days|weeks|months|quarters|years\f[R] | ||||||
| .PP | .PP | ||||||
|  | These too will cause report start/end dates to be expanded, if needed, | ||||||
|  | to span a whole number of intervals. | ||||||
| Examples: | Examples: | ||||||
| .PP | .PP | ||||||
| .TS | .TS | ||||||
| @ -1076,16 +1116,33 @@ T}@T{ | |||||||
| periods will have boundaries on 2009/03/01, 2009/08/01, ... | periods will have boundaries on 2009/03/01, 2009/08/01, ... | ||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
|  | .SS Intervals with custom start date | ||||||
| .PP | .PP | ||||||
| If you want intervals that start on arbitrary day of your choosing and | All intervals mentioned above are required to start on their natural | ||||||
| span a week, month or year, you need to use any of the following: | calendar boundaries, but the following intervals can start on any date: | ||||||
| .PP | .PP | ||||||
| \f[C]every Nth day of week\f[R], \f[C]every WEEKDAYNAME\f[R] (eg | Weekly on custom day: | ||||||
| \f[C]mon|tue|wed|thu|fri|sat|sun\f[R]), | .IP \[bu] 2 | ||||||
| \f[C]every Nth day [of month]\f[R], | \f[C]every Nth day of week\f[R] (\f[C]th\f[R], \f[C]nd\f[R], | ||||||
| \f[C]every Nth WEEKDAYNAME [of month]\f[R], | \f[C]rd\f[R], or \f[C]st\f[R] are all accepted after the number) | ||||||
| \f[C]every MM/DD [of year]\f[R], \f[C]every Nth MMM [of year]\f[R], | .IP \[bu] 2 | ||||||
| \f[C]every MMM Nth [of year]\f[R]. | \f[C]every WEEKDAYNAME\f[R] (full or three-letter english weekday name, | ||||||
|  | case insensitive) | ||||||
|  | .PP | ||||||
|  | Monthly on custom day: | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every Nth day [of month]\f[R] | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every Nth WEEKDAYNAME [of month]\f[R] | ||||||
|  | .PP | ||||||
|  | Yearly on custom day: | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every MM/DD [of year]\f[R] (month number and day of month number) | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every MONTHNAME DDth [of year]\f[R] (full or three-letter english | ||||||
|  | month name, case insensitive, and day of month number) | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]every DDth MONTHNAME [of year]\f[R] (equivalent to the above) | ||||||
| .PP | .PP | ||||||
| Examples: | Examples: | ||||||
| .PP | .PP | ||||||
| @ -1115,10 +1172,10 @@ T} | |||||||
| T{ | T{ | ||||||
| \f[C]-p \[dq]every 11/05\[dq]\f[R] | \f[C]-p \[dq]every 11/05\[dq]\f[R] | ||||||
| T}@T{ | T}@T{ | ||||||
| yearly periods with boundaries on 5th of Nov | yearly periods with boundaries on 5th of November | ||||||
| T} | T} | ||||||
| T{ | T{ | ||||||
| \f[C]-p \[dq]every 5th Nov\[dq]\f[R] | \f[C]-p \[dq]every 5th November\[dq]\f[R] | ||||||
| T}@T{ | T}@T{ | ||||||
| same | same | ||||||
| T} | T} | ||||||
| @ -1129,23 +1186,79 @@ same | |||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
| .PP | .PP | ||||||
| Show historical balances at end of 15th each month (N is exclusive end | Show historical balances at end of the 15th day of each month (N is an | ||||||
| date): | end date, exclusive as always): | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | $ hledger balance -H -p \[dq]every 16th day\[dq] | ||||||
|  | \f[R] | ||||||
|  | .fi | ||||||
| .PP | .PP | ||||||
| \f[C]hledger balance -H -p \[dq]every 16th day\[dq]\f[R] | Group postings from the start of wednesday to end of the following | ||||||
|  | tuesday (N is both (inclusive) start date and (exclusive) end date): | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | $ hledger register checking -p \[dq]every 3rd day of week\[dq] | ||||||
|  | \f[R] | ||||||
|  | .fi | ||||||
|  | .SS Periods or dates ? | ||||||
| .PP | .PP | ||||||
| Group postings from start of wednesday to end of next tuesday (N is | Report intervals like the above are most often used with | ||||||
| start date and exclusive end date): | \f[C]-p|--period\f[R], to divide reports into multiple subperiods - each | ||||||
|  | generated date marks a subperiod boundary. | ||||||
|  | Here, the periods between the dates are what\[aq]s important. | ||||||
| .PP | .PP | ||||||
| \f[C]hledger register checking -p \[dq]every 3rd day of week\[dq]\f[R] | But report intervals can also be used with \f[C]--forecast\f[R] to | ||||||
|  | generate future transactions, or with \f[C]balance --budget\f[R] to | ||||||
|  | generate budget goal-setting transactions. | ||||||
|  | For these, the dates themselves are what matters. | ||||||
|  | .SS Events on multiple weekdays | ||||||
|  | .PP | ||||||
|  | The \f[C]every WEEKDAYNAME\f[R] form has a special variant with multiple | ||||||
|  | day names, comma-separated. | ||||||
|  | Eg: \f[C]every mon,thu,sat\f[R]. | ||||||
|  | Also, \f[C]weekday\f[R] and \f[C]weekendday\f[R] are shorthand for | ||||||
|  | \f[C]mon,tue,wed,thu,fri\f[R] and \f[C]sat,sun\f[R] respectively. | ||||||
|  | .PP | ||||||
|  | This form is mainly intended for use with \f[C]--forecast\f[R], to | ||||||
|  | generate periodic transactions on arbitrary days of the week. | ||||||
|  | It may be less useful with \f[C]-p\f[R], since it divides each week into | ||||||
|  | subperiods of unequal length. | ||||||
|  | (Because gaps between periods are not allowed; if you\[aq]d like to | ||||||
|  | change this, see #1632.) | ||||||
|  | .PP | ||||||
|  | Examples: | ||||||
|  | .PP | ||||||
|  | .TS | ||||||
|  | tab(@); | ||||||
|  | lw(17.8n) lw(52.2n). | ||||||
|  | T{ | ||||||
|  | \f[C]-p \[dq]every mon,wed,fri\[dq]\f[R] | ||||||
|  | T}@T{ | ||||||
|  | dates will be Mon, Wed, Fri; periods will be Mon-Tue, Wed-Thu, Fri-Sun | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]-p \[dq]every weekday\[dq]\f[R] | ||||||
|  | T}@T{ | ||||||
|  | dates will be Mon, Tue, Wed, Thu, Fri; periods will be Mon, Tue, Wed, | ||||||
|  | Thu, Fri-Sun | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]-p \[dq]every weekendday\[dq]\f[R] | ||||||
|  | T}@T{ | ||||||
|  | dates will be Sat, Sun; periods will be Sat, Sun-Fri | ||||||
|  | T} | ||||||
|  | .TE | ||||||
| .SH DEPTH | .SH DEPTH | ||||||
| .PP | .PP | ||||||
| With the \f[C]--depth N\f[R] option (short form: \f[C]-N\f[R]), commands | With the \f[C]--depth NUM\f[R] option (short form: \f[C]-NUM\f[R]), | ||||||
| like account, balance and register will show only the uppermost accounts | commands like account, balance and register will show only the uppermost | ||||||
| in the account tree, down to level N. | accounts in the account tree, down to level NUM. | ||||||
| Use this when you want a summary with less detail. | Use this when you want a summary with less detail. | ||||||
| This flag has the same effect as a \f[C]depth:\f[R] query argument (so | This flag has the same effect as a \f[C]depth:\f[R] query argument: | ||||||
| \f[C]-2\f[R], \f[C]--depth=2\f[R] or \f[C]depth:2\f[R] are equivalent). | \f[C]depth:2\f[R], \f[C]--depth=2\f[R] or \f[C]-2\f[R] are equivalent. | ||||||
| .SH QUERIES | .SH QUERIES | ||||||
| .PP | .PP | ||||||
| One of hledger\[aq]s strengths is being able to quickly report on a | One of hledger\[aq]s strengths is being able to quickly report on a | ||||||
| @ -2256,6 +2369,24 @@ If you already have tables created via SQL output of hledger, you would | |||||||
| probably want to either clear tables of existing data (via | probably want to either clear tables of existing data (via | ||||||
| \f[C]delete\f[R] or \f[C]truncate\f[R] SQL statements) or drop tables | \f[C]delete\f[R] or \f[C]truncate\f[R] SQL statements) or drop tables | ||||||
| completely as otherwise your postings will be duped. | completely as otherwise your postings will be duped. | ||||||
|  | .SS Commodity styles | ||||||
|  | .PP | ||||||
|  | The display style of a commodity/currence is inferred according to the | ||||||
|  | rules described in Commodity display style. | ||||||
|  | The inferred display style can be overriden by an optional | ||||||
|  | \f[C]-c/--commodity-style\f[R] option. | ||||||
|  | For example, the following will override the display style for dollars. | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | $ hledger print -c \[aq]$1.000,0\[aq] | ||||||
|  | \f[R] | ||||||
|  | .fi | ||||||
|  | .PP | ||||||
|  | The format specification of the style is identical to the commodity | ||||||
|  | display style specification for the commodity directive. | ||||||
|  | The command line option can be supplied repeatedly to override the | ||||||
|  | display style for multiple commodity/currency symbols. | ||||||
| .SH COMMANDS | .SH COMMANDS | ||||||
| .PP | .PP | ||||||
| hledger provides a number of commands for producing reports and managing | hledger provides a number of commands for producing reports and managing | ||||||
| @ -2628,6 +2759,8 @@ or actual and planned balance changes (\f[C]--budget\f[R]) | |||||||
| or value of balance changes (\f[C]-V\f[R]) | or value of balance changes (\f[C]-V\f[R]) | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| or change of balance values (\f[C]--valuechange\f[R]) | or change of balance values (\f[C]--valuechange\f[R]) | ||||||
|  | .IP \[bu] 2 | ||||||
|  | or unrealised capital gain/loss (\f[C]--gain\f[R]) | ||||||
| .PP | .PP | ||||||
| \&..in.. | \&..in.. | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| @ -2686,11 +2819,11 @@ end of the journal period (more on this below). | |||||||
| .PP | .PP | ||||||
| Accounts are sorted by declaration order if any, and then alphabetically | Accounts are sorted by declaration order if any, and then alphabetically | ||||||
| by account name. | by account name. | ||||||
| For instance, using examples/sample.journal: | For instance (using examples/sample.journal): | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger bal | $ hledger -f examples/sample.journal bal | ||||||
|                   $1  assets:bank:saving |                   $1  assets:bank:saving | ||||||
|                  $-2  assets:cash |                  $-2  assets:cash | ||||||
|                   $1  expenses:food |                   $1  expenses:food | ||||||
| @ -2710,7 +2843,7 @@ Use \f[C]-E/--empty\f[R] to show them (revealing | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger -f examples/sample.journal  bal  -E | $ hledger -f examples/sample.journal bal  -E | ||||||
|                    0  assets:bank:checking |                    0  assets:bank:checking | ||||||
|                   $1  assets:bank:saving |                   $1  assets:bank:saving | ||||||
|                  $-2  assets:cash |                  $-2  assets:cash | ||||||
| @ -2735,7 +2868,7 @@ Eg: | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger bal --cleared assets date:200806 | $ hledger -f examples/sample.journal bal --cleared assets date:200806 | ||||||
|                  $-2  assets:cash |                  $-2  assets:cash | ||||||
| -------------------- | -------------------- | ||||||
|                  $-2   |                  $-2   | ||||||
| @ -2751,7 +2884,7 @@ subaccounts\[aq] \[dq]leaf\[dq] names indented below their parent: | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger balance | $ hledger -f examples/sample.journal balance | ||||||
|                  $-1  assets |                  $-1  assets | ||||||
|                   $1    bank:saving |                   $1    bank:saving | ||||||
|                  $-2    cash |                  $-2    cash | ||||||
| @ -2785,31 +2918,35 @@ Each group of sibling accounts (ie, under a common parent) is sorted | |||||||
| separately. | separately. | ||||||
| .SS Depth limiting | .SS Depth limiting | ||||||
| .PP | .PP | ||||||
| With a \f[C]depth:N\f[R] query, or \f[C]--depth N\f[R] option, or just | With a \f[C]depth:NUM\f[R] query, or \f[C]--depth NUM\f[R] option, or | ||||||
| \f[C]-N\f[R], balance reports will show accounts only to the specified | just \f[C]-NUM\f[R] (eg: \f[C]-3\f[R]) balance reports will show | ||||||
| depth, hiding the deeper subaccounts. | accounts only to the specified depth, hiding the deeper subaccounts. | ||||||
|  | This can be useful for getting an overview without too much detail. | ||||||
|  | .PP | ||||||
| Account balances at the depth limit always include the balances from any | Account balances at the depth limit always include the balances from any | ||||||
| hidden subaccounts (even in list mode). | deeper subaccounts (even in list mode). | ||||||
| This can be useful for getting an overview. |  | ||||||
| Eg, limiting to depth 1: | Eg, limiting to depth 1: | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger balance -N -1 | $ hledger -f examples/sample.journal balance -1 | ||||||
|                  $-1  assets |                  $-1  assets | ||||||
|                   $2  expenses |                   $2  expenses | ||||||
|                  $-2  income |                  $-2  income | ||||||
|                   $1  liabilities |                   $1  liabilities | ||||||
|  | -------------------- | ||||||
|  |                    0   | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
|  | .SS Dropping top-level accounts | ||||||
| .PP | .PP | ||||||
| You can also hide top-level account name parts, using | You can also hide one or more top-level account name parts, using | ||||||
| \f[C]--drop N\f[R]. | \f[C]--drop NUM\f[R]. | ||||||
| This can be useful for hiding repetitive top-level account names: | This can be useful for hiding repetitive top-level account names: | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger bal expenses --drop 1 | $ hledger -f examples/sample.journal bal expenses --drop 1 | ||||||
|                   $1  food |                   $1  food | ||||||
|                   $1  supplies |                   $1  supplies | ||||||
| -------------------- | -------------------- | ||||||
| @ -2827,7 +2964,7 @@ periods (and a title): | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger balance --quarterly income expenses -E | $ hledger -f examples/sample.journal bal --quarterly income expenses -E | ||||||
| Balance changes in 2008: | Balance changes in 2008: | ||||||
| 
 | 
 | ||||||
|                    ||  2008q1  2008q2  2008q3  2008q4  |                    ||  2008q1  2008q2  2008q3  2008q4  | ||||||
| @ -2974,7 +3111,7 @@ value expressed as a percentage of the (column) total: | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger bal expenses -Q -% | $ hledger -f examples/sample.journal bal expenses -Q -% | ||||||
| Balance changes in 2008: | Balance changes in 2008: | ||||||
| 
 | 
 | ||||||
|                    || 2008Q1   2008Q2  2008Q3  2008Q4  |                    || 2008Q1   2008Q2  2008Q3  2008Q4  | ||||||
| @ -3070,7 +3207,11 @@ It is one of: | |||||||
| \f[C]--budget\f[R] : like --sum but also show a goal amount | \f[C]--budget\f[R] : like --sum but also show a goal amount | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| \f[C]--valuechange\f[R] : show the change in period-end historical | \f[C]--valuechange\f[R] : show the change in period-end historical | ||||||
| balance values | balance values (caused by deposits, withdrawals, and/or market price | ||||||
|  | fluctuations) | ||||||
|  | .IP \[bu] 2 | ||||||
|  | \f[C]--gain\f[R] : show the unrealised capital gain/loss, (the current | ||||||
|  | valued balance minus each amount\[aq]s original cost) | ||||||
| .PP | .PP | ||||||
| \f[B]Accumulation type:\f[R] | \f[B]Accumulation type:\f[R] | ||||||
| .PD 0 | .PD 0 | ||||||
| @ -3112,7 +3253,7 @@ cost | |||||||
| \f[C]--value=then[,COMM]\f[R] : show value at transaction dates | \f[C]--value=then[,COMM]\f[R] : show value at transaction dates | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| \f[C]--value=end[,COMM]\f[R] : show value at period end date(s) | \f[C]--value=end[,COMM]\f[R] : show value at period end date(s) | ||||||
| (\f[B]default with \f[CB]--valuechange\f[B]\f[R]) | (\f[B]default with \f[CB]--valuechange\f[B], \f[CB]--gain\f[B]\f[R]) | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| \f[C]--value=now[,COMM]\f[R] : show value at today\[aq]s date | \f[C]--value=now[,COMM]\f[R] : show value at today\[aq]s date | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| @ -3570,7 +3711,7 @@ Eg: | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger balance --format \[dq]%20(account) %12(total)\[dq] | $ hledger -f examples/sample.journal balance --format \[dq]%20(account) %12(total)\[dq] | ||||||
|               assets          $-1 |               assets          $-1 | ||||||
|          bank:saving           $1 |          bank:saving           $1 | ||||||
|                 cash          $-2 |                 cash          $-2 | ||||||
| @ -3938,19 +4079,42 @@ whichever is later. | |||||||
| .PP | .PP | ||||||
| Unless you are running \f[C]close\f[R] on exactly the first day of the | Unless you are running \f[C]close\f[R] on exactly the first day of the | ||||||
| new period, you\[aq]ll want to override the closing date. | new period, you\[aq]ll want to override the closing date. | ||||||
| This is done by specifying a report period, where \[dq]last day of the | This is done by specifying a report end date, where \[dq]last day of the | ||||||
| report period\[dq] will be the closing date. | report period\[dq] will be the closing date. | ||||||
| The opening date is always the following day. | The opening date is always the following day. | ||||||
| So to close on 2020-12-31 and open on 2021-01-01, any of these work | So to close on (end of) 2020-12-31 and open on (start of) 2021-01-01, | ||||||
| .IP \[bu] 2 | any of these will work: | ||||||
| \f[C]-p 2020\f[R] | .PP | ||||||
| .IP \[bu] 2 | .TS | ||||||
| \f[C]date:2020\f[R] | tab(@); | ||||||
| .IP \[bu] 2 | l l. | ||||||
| \f[C]-e 2021-01-01\f[R] (remember \f[C]-e\f[R] specifies an exclusive | T{ | ||||||
| end date) | end date argument | ||||||
| .IP \[bu] 2 | T}@T{ | ||||||
|  | explanation | ||||||
|  | T} | ||||||
|  | _ | ||||||
|  | T{ | ||||||
|  | \f[C]-e 2021-01-01\f[R] | ||||||
|  | T}@T{ | ||||||
|  | end dates are exclusive | ||||||
|  | T} | ||||||
|  | T{ | ||||||
| \f[C]-e 2021\f[R] | \f[C]-e 2021\f[R] | ||||||
|  | T}@T{ | ||||||
|  | equivalent, per smart dates | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]-p 2020\f[R] | ||||||
|  | T}@T{ | ||||||
|  | equivalent, the period\[aq]s begin date is ignored | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]date:2020\f[R] | ||||||
|  | T}@T{ | ||||||
|  | equivalent query | ||||||
|  | T} | ||||||
|  | .TE | ||||||
| .SS Example: close asset/liability accounts for file transition | .SS Example: close asset/liability accounts for file transition | ||||||
| .PP | .PP | ||||||
| Carrying asset/liability balances from 2020.journal into a new file for | Carrying asset/liability balances from 2020.journal into a new file for | ||||||
| @ -4010,7 +4174,7 @@ like this: | |||||||
| ; 2019.journal | ; 2019.journal | ||||||
| 2019-01-01 opening balances  ; earliest opening txn, no tag here | 2019-01-01 opening balances  ; earliest opening txn, no tag here | ||||||
| \&... | \&... | ||||||
| 2019-12-31 closing balances  ; close:2019 | 2019-12-31 closing balances  ; clopen:2020 | ||||||
| \&... | \&... | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| @ -4018,9 +4182,9 @@ like this: | |||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| ; 2020.journal | ; 2020.journal | ||||||
| 2020-01-01 opening balances  ; open:2020 | 2020-01-01 opening balances  ; clopen:2020 | ||||||
| \&... | \&... | ||||||
| 2020-12-31 closing balances  ; close:2020 | 2020-12-31 closing balances  ; clopen:2021 | ||||||
| \&... | \&... | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| @ -4028,7 +4192,7 @@ like this: | |||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| ; 2021.journal | ; 2021.journal | ||||||
| 2021-01-01 opening balances  ; open:2021 | 2021-01-01 opening balances  ; clopen:2021 | ||||||
| \&... | \&... | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| @ -4048,14 +4212,11 @@ you could do eg: | |||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger -f all.journal reg -H checking not:tag:\[aq]open|close\[aq] | $ hledger -f all.journal reg -H checking not:tag:clopen | ||||||
|     # all years checking register, hiding non-essential opening/closing txns |     # all years checking register, hiding non-essential opening/closing txns | ||||||
| 
 | 
 | ||||||
| $ hledger -f all.journal bs -p 2020 not:tag:close=2020 | $ hledger -f all.journal bs -p 2020 not:tag:clopen=2020 | ||||||
|     # 2020 year end balances, suppressing 2020 closing txn |     # 2020 year end balances, suppressing 2020 closing txn | ||||||
| 
 |  | ||||||
| $ hledger -f 2020.journal bs not:tag:close |  | ||||||
|     # 2020 year end balances, easier case |  | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .SS close and balance assertions | .SS close and balance assertions | ||||||
| @ -4104,35 +4265,45 @@ single-day transactions): | |||||||
| .fi | .fi | ||||||
| .SS Example: close revenue/expense accounts to retained earnings | .SS Example: close revenue/expense accounts to retained earnings | ||||||
| .PP | .PP | ||||||
| Here, the opening transaction is supressed with \f[C]--close\f[R], as | For this, use \f[C]--close\f[R] to suppress the opening transaction, as | ||||||
| it\[aq]s probably not needed. | it\[aq]s not needed. | ||||||
| Also you\[aq]ll want to use a different equity account name: | Also you\[aq]ll want to change the equity account name to your | ||||||
|  | equivalent of \[dq]equity:retained earnings\[dq]. | ||||||
|  | .PP | ||||||
|  | Closing 2021\[aq]s first quarter revenues/expenses: | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger close -f 2021.journal -p 2021Q1 --close --close-acct=\[aq]equity:retained earnings\[aq] revenues expenses >> 2021.journal | $ hledger close -f 2021.journal --close revenues expenses -p 2021Q1 \[rs] | ||||||
|     # close 2021 first quarter revenues/expenses |     --close-acct=\[aq]equity:retained earnings\[aq] >> 2021.journal | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .PP | .PP | ||||||
| Or, operating on the default journal: | The same, using the default journal and current year: | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger close -p Q1 --close --close-acct=\[aq]equity:retained earnings\[aq] revenues expenses >> $LEDGER_FILE | $ hledger close --close revenues expenses -p Q1 \[rs] | ||||||
|     # close current year\[aq]s first quarter revenues/expenses |     --close-acct=\[aq]equity:retained earnings\[aq] >> $LEDGER_FILE | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .PP | .PP | ||||||
| Now, eg: | Now, the first quarter\[aq]s balance sheet should show a zero (unless | ||||||
|  | you are using \[at]/\[at]\[at] notation without equity postings): | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| $ hledger bse -p Q1 | $ hledger bse -p Q1 | ||||||
|     # Q1 full balance sheet, total should be zero | \f[R] | ||||||
| 
 | .fi | ||||||
| $ hledger is -p Q1 not:\[aq]retained earnings\[aq] | .PP | ||||||
|     # Q1 income statement, must suppress the closing txn | And we must suppress the closing transaction to see the first | ||||||
|  | quarter\[aq]s income statement (using the description; | ||||||
|  | \f[C]not:\[aq]retained earnings\[aq]\f[R] won\[aq]t work here): | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | $ hledger is -p Q1 not:desc:\[aq]closing balances\[aq] | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .SS codes | .SS codes | ||||||
| @ -4275,8 +4446,13 @@ help | |||||||
| .PD | .PD | ||||||
| Show the hledger user manual in one of several formats, optionally | Show the hledger user manual in one of several formats, optionally | ||||||
| positioned at a given TOPIC (if possible). | positioned at a given TOPIC (if possible). | ||||||
| TOPIC is any heading, or heading prefix, in the manual. | .PP | ||||||
| Some examples: commands, print, \[aq]auto postings\[aq], periodic. | TOPIC is any heading in the manual, or the start of any heading (but not | ||||||
|  | the middle). | ||||||
|  | It is case insensitive. | ||||||
|  | .PP | ||||||
|  | Some examples: \f[C]commands\f[R], \f[C]print\f[R], \f[C]forecast\f[R], | ||||||
|  | \f[C]\[dq]auto postings\[dq]\f[R], \f[C]\[dq]commodity column\[dq]\f[R]. | ||||||
| .PP | .PP | ||||||
| This command shows the user manual built in to this hledger version. | This command shows the user manual built in to this hledger version. | ||||||
| It can be useful if the correct version of the hledger manual, or the | It can be useful if the correct version of the hledger manual, or the | ||||||
| @ -6036,6 +6212,9 @@ commodity 1000.00000000 BTC | |||||||
| commodity 1 000. | commodity 1 000. | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
|  | .PP | ||||||
|  | The inferred commodity style can be overridden by supplying a command | ||||||
|  | line option. | ||||||
| .SS Rounding | .SS Rounding | ||||||
| .PP | .PP | ||||||
| Amounts are stored internally as decimal numbers with up to 255 decimal | Amounts are stored internally as decimal numbers with up to 255 decimal | ||||||
| @ -6714,6 +6893,9 @@ commodity 1 000 000. | |||||||
| Note hledger normally uses banker\[aq]s rounding, so 0.5 displayed with | Note hledger normally uses banker\[aq]s rounding, so 0.5 displayed with | ||||||
| zero decimal digits is \[dq]0\[dq]. | zero decimal digits is \[dq]0\[dq]. | ||||||
| (More at Commodity display style.) | (More at Commodity display style.) | ||||||
|  | .PP | ||||||
|  | Even in the presence of commodity directives, the commodity display | ||||||
|  | style can still be overridden by supplying a command line option. | ||||||
| .SS Commodity error checking | .SS Commodity error checking | ||||||
| .PP | .PP | ||||||
| In strict mode, enabled with the \f[C]-s\f[R]/\f[C]--strict\f[R] flag, | In strict mode, enabled with the \f[C]-s\f[R]/\f[C]--strict\f[R] flag, | ||||||
| @ -6910,17 +7092,18 @@ report. | |||||||
| not investments or receivables.) | not investments or receivables.) | ||||||
| .SS Declaring account types | .SS Declaring account types | ||||||
| .PP | .PP | ||||||
| Generally, to make these reports work you should declare your top-level | To make the balancesheet/balancesheetequity/cashflow/incomestatement | ||||||
| accounts and their types, using account directives with \f[C]type:\f[R] | reports work, generally you should declare your top-level accounts, and | ||||||
| tags. | their types. | ||||||
| .PP | For each top-level account, write an account directive, with a | ||||||
| The tag\[aq]s value should be one of: \f[C]Asset\f[R], | \f[C]type:\f[R] tag. | ||||||
| \f[C]Liability\f[R], \f[C]Equity\f[R], \f[C]Revenue\f[R], | The tag\[aq]s value can be any of \f[C]Asset\f[R], \f[C]Liability\f[R], | ||||||
| \f[C]Expense\f[R], \f[C]Cash\f[R], \f[C]A\f[R], \f[C]L\f[R], | \f[C]Equity\f[R], \f[C]Revenue\f[R], \f[C]Expense\f[R], \f[C]Cash\f[R], | ||||||
| \f[C]E\f[R], \f[C]R\f[R], \f[C]X\f[R], \f[C]C\f[R] (all case | or (for short) \f[C]A\f[R], \f[C]L\f[R], \f[C]E\f[R], \f[C]R\f[R], | ||||||
| insensitive). | \f[C]X\f[R], \f[C]C\f[R] (case insensitive). | ||||||
| The type is inherited by all subaccounts except where they override it. | An account\[aq]s type is inherited by its subaccounts, unless they | ||||||
| Here\[aq]s a complete example: | declare a different type. | ||||||
|  | Here\[aq]s an example, declaring all six account types: | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| @ -6933,15 +7116,30 @@ account revenues     ; type: Revenue | |||||||
| account expenses     ; type: Expense | account expenses     ; type: Expense | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .SS Auto-detected account types |  | ||||||
| .PP | .PP | ||||||
| If you happen to use common english top-level account names, you may not | There is also an older syntax, which is deprecated and will be dropped | ||||||
| need to declare account types, as they will be detected automatically | soon (A, L, E, R or X separated from the account name by two or more | ||||||
| using the following rules: | spaces): | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
|  If account\[aq]s name matches this regular expression:                 | its type is: | account assets       A | ||||||
|  | account liabilities  L | ||||||
|  | account equity       E | ||||||
|  | account revenues     R | ||||||
|  | account expenses     X | ||||||
|  | \f[R] | ||||||
|  | .fi | ||||||
|  | .SS Auto-detected account types | ||||||
|  | .PP | ||||||
|  | hledger tries to find at least one top level account in each of the six | ||||||
|  | account types (Asset, Liability, Equity, Revenue, Expense, Cash). | ||||||
|  | When no accounts have been declared for a particular type, hledger tries | ||||||
|  | to auto-detect some accounts by name, using regular expressions: | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  |  If account\[aq]s name matches this case insensitive regular expression:| its type is: | ||||||
| ------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------- | ------------ | ||||||
|  \[ha]assets?(:|$)                                                      |  |  \[ha]assets?(:|$)                                                      |  | ||||||
|    and does not contain regexp (investment|receivable|:A/R|:fixed)  | Cash |    and does not contain regexp (investment|receivable|:A/R|:fixed)  | Cash | ||||||
| @ -6953,17 +7151,27 @@ using the following rules: | |||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .PP | .PP | ||||||
| Even so, explicit declarations may be a good idea, for clarity and | For people using standard english account names, this feature helps | ||||||
| predictability. | hledger\[aq]s high-level reports work out of the box with minimal | ||||||
| .SS Interference from auto-detected account types | configuration. | ||||||
| .PP | .PP | ||||||
| If you assign any account type, it\[aq]s a good idea to assign all of | If you use non-english account names, you should declare account types | ||||||
| them, to prevent any confusion from mixing declared and auto-detected | to make these reports work. | ||||||
| types. | And more generally, declaring accounts and types is usually a good idea, | ||||||
| Although it\[aq]s unlikely to happen in real life, here\[aq]s an | for increased clarity and predictability (and for the other benefits of | ||||||
| example: with the following journal, \f[C]balancesheetequity\f[R] shows | account directives: error checking, display order, etc). | ||||||
| \[dq]liabilities\[dq] in both Liabilities and Equity sections. | .PP | ||||||
| Declaring another account as \f[C]type:Liability\f[R] would fix it: | Notes: | ||||||
|  | .IP \[bu] 2 | ||||||
|  | When any account is declared as some type, this disables auto-detection | ||||||
|  | for that particular type. | ||||||
|  | .IP \[bu] 2 | ||||||
|  | If you declare any account\[aq]s type, it\[aq]s a good idea to declare | ||||||
|  | an account for all six types, since a mix of declared and auto-detected | ||||||
|  | types can cause confusion. | ||||||
|  | For example, here liabilities is declared to be Equity, but would also | ||||||
|  | be auto-detected as Liability, since no Liability account is declared: | ||||||
|  | .RS 2 | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| @ -6975,21 +7183,7 @@ account liabilities  ; type:Equity | |||||||
|   equity       -2 |   equity       -2 | ||||||
| \f[R] | \f[R] | ||||||
| .fi | .fi | ||||||
| .SS Old account type syntax | .RE | ||||||
| .PP |  | ||||||
| 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: |  | ||||||
| .IP |  | ||||||
| .nf |  | ||||||
| \f[C] |  | ||||||
| account assets       A |  | ||||||
| account liabilities  L |  | ||||||
| account equity       E |  | ||||||
| account revenues     R |  | ||||||
| account expenses     X |  | ||||||
| \f[R] |  | ||||||
| .fi |  | ||||||
| .SS Account display order | .SS Account display order | ||||||
| .PP | .PP | ||||||
| Account directives also set the order in which accounts are displayed, | Account directives also set the order in which accounts are displayed, | ||||||
| @ -7356,53 +7550,83 @@ expression. | |||||||
| .PP | .PP | ||||||
| The \f[C]--forecast\f[R] flag activates any periodic transaction rules | The \f[C]--forecast\f[R] flag activates any periodic transaction rules | ||||||
| in the journal. | in the journal. | ||||||
| They will generate temporary recurring transactions, which are not saved | These will generate temporary additional transactions, usually recurring | ||||||
| in the journal, but will appear in all reports (eg print). | and in the future, which will appear in all reports. | ||||||
| This can be useful for estimating balances into the future, or | \f[C]hledger print --forecast\f[R] is a good way to see them. | ||||||
|  | .PP | ||||||
|  | This can be useful for estimating balances into the future, perhaps | ||||||
| experimenting with different scenarios. | experimenting with different scenarios. | ||||||
| Or, it can be used as a data entry aid: describe recurring transactions, |  | ||||||
| and every so often copy the output of \f[C]print --forecast\f[R] into |  | ||||||
| the journal. |  | ||||||
| .PP | .PP | ||||||
| These transactions will have an extra tag indicating which periodic rule | It could also be useful for scripted data entry: you could describe | ||||||
| generated them: \f[C]generated-transaction:\[ti] PERIODICEXPR\f[R]. | recurring transactions, and every so often copy the output of | ||||||
| And a similar, hidden tag (beginning with an underscore) which, because | \f[C]print --forecast\f[R] into the journal. | ||||||
| it\[aq]s never displayed by print, can be used to match transactions |  | ||||||
| generated \[dq]just now\[dq]: |  | ||||||
| \f[C]_generated-transaction:\[ti] PERIODICEXPR\f[R]. |  | ||||||
| .PP | .PP | ||||||
| Periodic transactions are generated within some forecast period. | The generated transactions will have an extra tag, like | ||||||
| By default, this | \f[C]generated-transaction:\[ti] PERIODICEXPR\f[R], indicating which | ||||||
|  | periodic rule generated them. | ||||||
|  | There is also a similar, hidden tag, named | ||||||
|  | \f[C]_generated-transaction:\f[R], which you can use to reliably match | ||||||
|  | transactions generated \[dq]just now\[dq] (rather than \f[C]print\f[R]ed | ||||||
|  | in the past). | ||||||
|  | .PP | ||||||
|  | The forecast transactions are generated within a \f[I]forecast | ||||||
|  | period\f[R], which is independent of the report period. | ||||||
|  | (Forecast period sets the bounds for generated transactions, report | ||||||
|  | period controls which transactions are reported.) The forecast period | ||||||
|  | begins on: | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| begins on the later of | the start date provided within \f[C]--forecast\f[R]\[aq]s argument, if | ||||||
|  | any | ||||||
|  | .IP \[bu] 2 | ||||||
|  | otherwise, the later of | ||||||
| .RS 2 | .RS 2 | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| the report start date if specified with -b/-p/date: | the report start date, if specified (with | ||||||
|  | \f[C]-b\f[R]/\f[C]-p\f[R]/\f[C]date:\f[R]) | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| the day after the latest normal (non-periodic) transaction in the | the day after the latest ordinary transaction in the journal, if any | ||||||
| journal, or today if there are no normal transactions. |  | ||||||
| .RE | .RE | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| ends on the report end date if specified with -e/-p/date:, or 6 months | otherwise today. | ||||||
| (180 days) from today. |  | ||||||
| .PP | .PP | ||||||
| This means that periodic transactions will begin only after the latest | It ends on: | ||||||
| recorded transaction. | .IP \[bu] 2 | ||||||
| And a recorded transaction dated in the future can prevent generation of | the end date provided within \f[C]--forecast\f[R]\[aq]s argument, if any | ||||||
| periodic transactions. | .IP \[bu] 2 | ||||||
| (You can avoid that by writing the future transaction as a one-time | otherwise, the report end date, if specified (with | ||||||
| periodic rule instead - put tilde before the date, eg | \f[C]-e\f[R]/\f[C]-p\f[R]/\f[C]date:\f[R]) | ||||||
| \f[C]\[ti] YYYY-MM-DD ...\f[R]). | .IP \[bu] 2 | ||||||
|  | otherwise 180 days (6 months) from today. | ||||||
|  | .PP | ||||||
|  | Note, this means that ordinary transactions will suppress periodic | ||||||
|  | transactions, by default; the periodic transactions will not start until | ||||||
|  | after the last ordinary transaction. | ||||||
|  | This is usually convenient, but you can get around it in two ways: | ||||||
|  | .IP \[bu] 2 | ||||||
|  | If you need to record some transactions in the future, make them | ||||||
|  | periodic transactions (with a single occurrence, eg: | ||||||
|  | \f[C]\[ti] YYYY-MM-DD\f[R]) rather than ordinary transactions. | ||||||
|  | That way they won\[aq]t suppress other periodic transactions. | ||||||
|  | .IP \[bu] 2 | ||||||
|  | Or give \f[C]--forecast\f[R] a period expression argument. | ||||||
|  | A forecast period specified this way can overlap ordinary transactions, | ||||||
|  | and need not be in the future. | ||||||
|  | Some things to note: | ||||||
|  | .RS 2 | ||||||
|  | .IP \[bu] 2 | ||||||
|  | You must use \f[C]=\f[R] between flag and argument; a space won\[aq]t | ||||||
|  | work. | ||||||
|  | .IP \[bu] 2 | ||||||
|  | The period expression can specify the forecast period\[aq]s start date, | ||||||
|  | end date, or both. | ||||||
|  | See also Report start & end date. | ||||||
|  | .IP \[bu] 2 | ||||||
|  | The period expression should not specify a report interval. | ||||||
|  | (Each periodic transaction rule specifies its own interval.) | ||||||
|  | .RE | ||||||
| .PP | .PP | ||||||
| Or, you can set your own arbitrary \[dq]forecast period\[dq], which can |  | ||||||
| overlap recorded transactions, and need not be in the future, by |  | ||||||
| providing an option argument, like \f[C]--forecast=PERIODEXPR\f[R]. |  | ||||||
| Note the equals sign is required, a space won\[aq]t work. |  | ||||||
| PERIODEXPR is a period expression, which can specify the start date, end |  | ||||||
| date, or both, like in a \f[C]date:\f[R] query. |  | ||||||
| (See also hledger.1 -> Report start & end date). |  | ||||||
| Some examples: \f[C]--forecast=202001-202004\f[R], | Some examples: \f[C]--forecast=202001-202004\f[R], | ||||||
| \f[C]--forecast=jan-\f[R], \f[C]--forecast=2020\f[R]. | \f[C]--forecast=jan-\f[R], \f[C]--forecast=2021\f[R]. | ||||||
| .SS Budgeting with periodic transactions | .SS Budgeting with periodic transactions | ||||||
| .PP | .PP | ||||||
| With the \f[C]--budget\f[R] flag, currently supported by the balance | With the \f[C]--budget\f[R] flag, currently supported by the balance | ||||||
| @ -8088,7 +8312,9 @@ Tips: | |||||||
| Interpolation strips outer whitespace (so a CSV value like | Interpolation strips outer whitespace (so a CSV value like | ||||||
| \f[C]\[dq] 1 \[dq]\f[R] becomes \f[C]1\f[R] when interpolated) (#1051). | \f[C]\[dq] 1 \[dq]\f[R] becomes \f[C]1\f[R] when interpolated) (#1051). | ||||||
| .IP \[bu] 2 | .IP \[bu] 2 | ||||||
| See also Tips below. | Interpolations always refer to a CSV field - you can\[aq]t interpolate a | ||||||
|  | hledger field. | ||||||
|  | (See Referencing other fields below). | ||||||
| .SS Field names | .SS Field names | ||||||
| .PP | .PP | ||||||
| Here are the standard hledger field (and pseudo-field) names, which you | Here are the standard hledger field (and pseudo-field) names, which you | ||||||
|  | |||||||
							
								
								
									
										5481
									
								
								hledger/hledger.info
									
									
									
									
									
								
							
							
						
						
									
										5481
									
								
								hledger/hledger.info
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1471
									
								
								hledger/hledger.txt
									
									
									
									
									
								
							
							
						
						
									
										1471
									
								
								hledger/hledger.txt
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user