;doc: update manuals
This commit is contained in:
		
							parent
							
								
									308c554603
								
							
						
					
					
						commit
						791f4655df
					
				| @ -342,6 +342,8 @@ It lists accounts and their balances, like hledger\[aq]s balance | ||||
| command. | ||||
| By default, it shows all accounts and their latest ending balances | ||||
| (including the balances of subaccounts). | ||||
| Accounts which have been declared with an account directive are also | ||||
| listed, even if not yet used (except for empty parent accounts). | ||||
| If you specify a query on the command line, it shows just the matched | ||||
| accounts and the balances from matched transactions. | ||||
| .PP | ||||
| @ -382,7 +384,7 @@ all three, the filter is removed.) | ||||
| .PP | ||||
| \f[C]R\f[R] toggles real mode, in which virtual postings are ignored. | ||||
| .PP | ||||
| \f[C]Z\f[R] toggles nonzero mode, in which only accounts with nonzero | ||||
| \f[C]z\f[R] toggles nonzero mode, in which only accounts with nonzero | ||||
| balances are shown (hledger-ui shows zero items by default, unlike | ||||
| command-line hledger). | ||||
| .PP | ||||
| @ -428,7 +430,7 @@ activate all three, the filter is removed.) | ||||
| .PP | ||||
| \f[C]R\f[R] toggles real mode, in which virtual postings are ignored. | ||||
| .PP | ||||
| \f[C]Z\f[R] toggles nonzero mode, in which only transactions posting a | ||||
| \f[C]z\f[R] toggles nonzero mode, in which only transactions posting a | ||||
| nonzero change are shown (hledger-ui shows zero items by default, unlike | ||||
| command-line hledger). | ||||
| .PP | ||||
|  | ||||
| @ -368,7 +368,9 @@ File: hledger-ui.info,  Node: Accounts screen,  Next: Register screen,  Up: SCRE | ||||
| This is normally the first screen displayed.  It lists accounts and | ||||
| their balances, like hledger's balance command.  By default, it shows | ||||
| all accounts and their latest ending balances (including the balances of | ||||
| subaccounts).  If you specify a query on the command line, it shows just | ||||
| subaccounts).  Accounts which have been declared with an account | ||||
| directive are also listed, even if not yet used (except for empty parent | ||||
| accounts).  If you specify a query on the command line, it shows just | ||||
| the matched accounts and the balances from matched transactions. | ||||
| 
 | ||||
|    Account names are shown as a flat list by default; press 't' to | ||||
| @ -402,7 +404,7 @@ is removed.) | ||||
| 
 | ||||
|    '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 | ||||
| command-line hledger). | ||||
| 
 | ||||
| @ -448,7 +450,7 @@ is removed.) | ||||
| 
 | ||||
|    '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 | ||||
| command-line hledger). | ||||
| 
 | ||||
| @ -633,24 +635,24 @@ Node: SCREENS11193 | ||||
| Ref: #screens11291 | ||||
| Node: Accounts screen11381 | ||||
| Ref: #accounts-screen11509 | ||||
| Node: Register screen13713 | ||||
| Ref: #register-screen13868 | ||||
| Node: Transaction screen15852 | ||||
| Ref: #transaction-screen16010 | ||||
| Node: Error screen16880 | ||||
| Ref: #error-screen17002 | ||||
| Node: TIPS17246 | ||||
| Ref: #tips17345 | ||||
| Node: Watch mode17397 | ||||
| Ref: #watch-mode17514 | ||||
| Node: Watch mode limitations18264 | ||||
| Ref: #watch-mode-limitations18405 | ||||
| Node: ENVIRONMENT19541 | ||||
| Ref: #environment19652 | ||||
| Node: FILES20459 | ||||
| Ref: #files20558 | ||||
| Node: BUGS20771 | ||||
| Ref: #bugs20848 | ||||
| Node: Register screen13848 | ||||
| Ref: #register-screen14003 | ||||
| Node: Transaction screen15987 | ||||
| Ref: #transaction-screen16145 | ||||
| Node: Error screen17015 | ||||
| Ref: #error-screen17137 | ||||
| Node: TIPS17381 | ||||
| Ref: #tips17480 | ||||
| Node: Watch mode17532 | ||||
| Ref: #watch-mode17649 | ||||
| Node: Watch mode limitations18399 | ||||
| Ref: #watch-mode-limitations18540 | ||||
| Node: ENVIRONMENT19676 | ||||
| Ref: #environment19787 | ||||
| Node: FILES20594 | ||||
| Ref: #files20693 | ||||
| Node: BUGS20906 | ||||
| Ref: #bugs20983 | ||||
|  | ||||
| End Tag Table | ||||
| 
 | ||||
|  | ||||
| @ -312,7 +312,9 @@ SCREENS | ||||
|        This is normally the first screen displayed.   It  lists  accounts  and | ||||
|        their  balances,  like hledger's balance command.  By default, it shows | ||||
|        all accounts and their latest ending balances (including  the  balances | ||||
|        of  subaccounts).  If you specify a query on the command line, it shows | ||||
|        of  subaccounts).   Accounts  which  have been declared with an account | ||||
|        directive are also listed, even if not yet used (except for empty  par- | ||||
|        ent  accounts).   If  you specify a query on the command line, it shows | ||||
|        just the matched accounts and the balances from matched transactions. | ||||
| 
 | ||||
|        Account names are shown as a flat list by default; press  t  to  toggle | ||||
| @ -345,7 +347,7 @@ SCREENS | ||||
| 
 | ||||
|        R toggles real mode, in which virtual postings are ignored. | ||||
| 
 | ||||
|        Z toggles nonzero mode, in which only accounts  with  nonzero  balances | ||||
|        z toggles nonzero mode, in which only accounts  with  nonzero  balances | ||||
|        are  shown (hledger-ui shows zero items by default, unlike command-line | ||||
|        hledger). | ||||
| 
 | ||||
| @ -385,7 +387,7 @@ SCREENS | ||||
| 
 | ||||
|        R toggles real mode, in which virtual postings are ignored. | ||||
| 
 | ||||
|        Z toggles nonzero mode, in which only transactions  posting  a  nonzero | ||||
|        z toggles nonzero mode, in which only transactions  posting  a  nonzero | ||||
|        change  are  shown (hledger-ui shows zero items by default, unlike com- | ||||
|        mand-line hledger). | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| This is hledger-web/hledger-web.info, produced by makeinfo version 4.8 | ||||
| from stdin. | ||||
| This is hledger-web.info, produced by makeinfo version 6.8 from stdin. | ||||
| 
 | ||||
| INFO-DIR-SECTION User Applications | ||||
| START-INFO-DIR-ENTRY | ||||
| @ -7,7 +6,7 @@ START-INFO-DIR-ENTRY | ||||
| END-INFO-DIR-ENTRY | ||||
| 
 | ||||
|  | ||||
| File: hledger-web.info,  Node: Top,  Up: (dir) | ||||
| File: hledger-web.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | ||||
| 
 | ||||
| hledger-web(1) | ||||
| ************** | ||||
| @ -15,31 +14,32 @@ hledger-web(1) | ||||
| hledger-web is a web interface (WUI) for the hledger accounting tool. | ||||
| This manual is for hledger-web 1.23.99. | ||||
| 
 | ||||
|    `hledger-web [OPTIONS]' | ||||
| `hledger web -- [OPTIONS]' | ||||
|    'hledger-web [OPTIONS]' | ||||
| 'hledger web -- [OPTIONS]' | ||||
| 
 | ||||
|    hledger is a reliable, cross-platform set of programs for tracking | ||||
| 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). | ||||
| 
 | ||||
|    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 | ||||
| it in a web browser window if possible. It provides a more user-friendly | ||||
| UI than the hledger CLI or hledger-ui interface, showing more at once | ||||
| (accounts, the current account register, balance charts) and allowing | ||||
| history-aware data entry, interactive searching, and bookmarking. | ||||
| it in a web browser window if possible.  It provides a more | ||||
| user-friendly UI than the hledger CLI or hledger-ui interface, showing | ||||
| more at once (accounts, the current account register, balance charts) | ||||
| and allowing history-aware data entry, interactive searching, and | ||||
| bookmarking. | ||||
| 
 | ||||
|    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 | ||||
| should put it behind a suitable web proxy. As a small protection against | ||||
| data loss when running an unprotected instance, it writes a numbered | ||||
| backup of the main journal file (only ?) on every edit. | ||||
| 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 | ||||
| against data loss when running an unprotected instance, it writes a | ||||
| numbered backup of the main journal file (only ?)  on every edit. | ||||
| 
 | ||||
|    Like hledger, it reads data from one or more files in hledger | ||||
| journal, timeclock, timedot, or CSV format specified with `-f', or | ||||
| `$LEDGER_FILE', or `$HOME/.hledger.journal' (on windows, perhaps | ||||
| `C:/Users/USER/.hledger.journal'). For more about this see hledger(1). | ||||
| journal, timeclock, timedot, or CSV format specified with '-f', or | ||||
| '$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps | ||||
| 'C:/Users/USER/.hledger.journal').  For more about this see hledger(1). | ||||
| 
 | ||||
| * Menu: | ||||
| 
 | ||||
| @ -59,177 +59,180 @@ 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 | ||||
| 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. | ||||
| 
 | ||||
|    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. | ||||
| 
 | ||||
| `--serve' | ||||
|      serve and log requests, don't browse or auto-exit | ||||
| '--serve' | ||||
| 
 | ||||
|      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 | ||||
|      server-side web UI | ||||
| '--host=IPADDR' | ||||
| 
 | ||||
| `--host=IPADDR' | ||||
|      listen on this IP address (default: 127.0.0.1) | ||||
| '--port=PORT' | ||||
| 
 | ||||
| `--port=PORT' | ||||
|      listen on this TCP port (default: 5000) | ||||
| '--socket=SOCKETFILE' | ||||
| 
 | ||||
| `--socket=SOCKETFILE' | ||||
|      use a unix domain socket file to listen for requests instead of a | ||||
|      TCP socket. Implies `--serve'. It can only be used if the operating | ||||
|      system can provide this type of socket. | ||||
|      TCP socket.  Implies '--serve'.  It can only be used if the | ||||
|      operating system can provide this type of socket. | ||||
| '--base-url=URL' | ||||
| 
 | ||||
| `--base-url=URL' | ||||
|      set the base url (default: http://IPADDR:PORT). You would change | ||||
|      this when sharing over the network, or integrating within a larger | ||||
|      website. | ||||
| '--file-url=URL' | ||||
| 
 | ||||
| `--file-url=URL' | ||||
|      set the static files url (default: BASEURL/static). hledger-web | ||||
|      set the static files url (default: BASEURL/static).  hledger-web | ||||
|      normally serves static files itself, but if you wanted to serve | ||||
|      them from another server for efficiency, you would set the url | ||||
|      with this. | ||||
|      them from another server for efficiency, you would set the url with | ||||
|      this. | ||||
| '--capabilities=CAP[,CAP..]' | ||||
| 
 | ||||
| `--capabilities=CAP[,CAP..]' | ||||
|      enable the view, add, and/or manage capabilities (default: | ||||
|      view,add) | ||||
| '--capabilities-header=HTTPHEADER' | ||||
| 
 | ||||
| `--capabilities-header=HTTPHEADER' | ||||
|      read capabilities to enable from a HTTP header, like | ||||
|      X-Sandstorm-Permissions (default: disabled) | ||||
| '--test' | ||||
| 
 | ||||
| `--test' | ||||
|      run hledger-web's tests and exit. hspec test runner args may | ||||
|      run hledger-web's tests and exit.  hspec test runner args may | ||||
|      follow a -, eg: hledger-web -test - -help | ||||
| 
 | ||||
|    hledger input options: | ||||
| 
 | ||||
| `-f FILE --file=FILE' | ||||
|      use a different input file. For stdin, use - (default: | ||||
|      `$LEDGER_FILE' or `$HOME/.hledger.journal') | ||||
| '-f FILE --file=FILE' | ||||
| 
 | ||||
|      use a different input file.  For stdin, use - (default: | ||||
|      '$LEDGER_FILE' or '$HOME/.hledger.journal') | ||||
| '--rules-file=RULESFILE' | ||||
| 
 | ||||
| `--rules-file=RULESFILE' | ||||
|      Conversion rules file to use when reading CSV (default: FILE.rules) | ||||
| '--separator=CHAR' | ||||
| 
 | ||||
| `--separator=CHAR' | ||||
|      Field separator to expect when reading CSV (default: ',') | ||||
| '--alias=OLD=NEW' | ||||
| 
 | ||||
| `--alias=OLD=NEW' | ||||
|      rename accounts named OLD to NEW | ||||
| '--anon' | ||||
| 
 | ||||
| `--anon' | ||||
|      anonymize accounts and payees | ||||
| '--pivot FIELDNAME' | ||||
| 
 | ||||
| `--pivot FIELDNAME' | ||||
|      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 | ||||
|      assignments) | ||||
| '-s --strict' | ||||
| 
 | ||||
| `-s --strict' | ||||
|      do extra error checking (check that all posted accounts are | ||||
|      declared) | ||||
| 
 | ||||
|    hledger reporting options: | ||||
| 
 | ||||
| `-b --begin=DATE' | ||||
| '-b --begin=DATE' | ||||
| 
 | ||||
|      include postings/txns on or after this date (will be adjusted to | ||||
|      preceding subperiod start when using a report interval) | ||||
| '-e --end=DATE' | ||||
| 
 | ||||
| `-e --end=DATE' | ||||
|      include postings/txns before this date (will be adjusted to | ||||
|      following subperiod end when using a report interval) | ||||
| '-D --daily' | ||||
| 
 | ||||
| `-D --daily' | ||||
|      multiperiod/multicolumn report by day | ||||
| '-W --weekly' | ||||
| 
 | ||||
| `-W --weekly' | ||||
|      multiperiod/multicolumn report by week | ||||
| '-M --monthly' | ||||
| 
 | ||||
| `-M --monthly' | ||||
|      multiperiod/multicolumn report by month | ||||
| '-Q --quarterly' | ||||
| 
 | ||||
| `-Q --quarterly' | ||||
|      multiperiod/multicolumn report by quarter | ||||
| '-Y --yearly' | ||||
| 
 | ||||
| `-Y --yearly' | ||||
|      multiperiod/multicolumn report by year | ||||
| '-p --period=PERIODEXP' | ||||
| 
 | ||||
| `-p --period=PERIODEXP' | ||||
|      set start date, end date, and/or reporting interval all at once | ||||
|      using period expressions syntax | ||||
| '--date2' | ||||
| 
 | ||||
| `--date2' | ||||
|      match the secondary date instead (see command help for other | ||||
|      effects) | ||||
| '--today=DATE' | ||||
| 
 | ||||
| `--today=DATE' | ||||
|      override today's date (affects relative smart dates, for | ||||
|      tests/examples) | ||||
| '-U --unmarked' | ||||
| 
 | ||||
| `-U --unmarked' | ||||
|      include only unmarked postings/txns (can combine with -P or -C) | ||||
| '-P --pending' | ||||
| 
 | ||||
| `-P --pending' | ||||
|      include only pending postings/txns | ||||
| '-C --cleared' | ||||
| 
 | ||||
| `-C --cleared' | ||||
|      include only cleared postings/txns | ||||
| '-R --real' | ||||
| 
 | ||||
| `-R --real' | ||||
|      include only non-virtual postings | ||||
| '-NUM --depth=NUM' | ||||
| 
 | ||||
| `-NUM --depth=NUM' | ||||
|      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 | ||||
|      hledger-ui/hledger-web) | ||||
| '-B --cost' | ||||
| 
 | ||||
| `-B --cost' | ||||
|      convert amounts to their cost/selling amount at transaction time | ||||
| '-V --market' | ||||
| 
 | ||||
| `-V --market' | ||||
|      convert amounts to their market value in default valuation | ||||
|      commodities | ||||
| '-X --exchange=COMM' | ||||
| 
 | ||||
| `-X --exchange=COMM' | ||||
|      convert amounts to their market value in commodity COMM | ||||
| '--value' | ||||
| 
 | ||||
| `--value' | ||||
|      convert amounts to cost or market value, more flexibly than | ||||
|      -B/-V/-X | ||||
| '--infer-market-prices' | ||||
| 
 | ||||
| `--infer-market-prices' | ||||
|      use transaction prices (recorded with @ or @@) as additional market | ||||
|      prices, as if they were P directives | ||||
| '--auto' | ||||
| 
 | ||||
| `--auto' | ||||
|      apply automated posting rules to modify transactions. | ||||
| '--forecast' | ||||
| 
 | ||||
| `--forecast' | ||||
|      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. | ||||
| '--commodity-style' | ||||
| 
 | ||||
| `--commodity-style' | ||||
|      Override the commodity style in the output for the specified | ||||
|      commodity.  For example 'EUR1.000,00'. | ||||
| '--color=WHEN (or --colour=WHEN)' | ||||
| 
 | ||||
| `--color=WHEN (or --colour=WHEN)' | ||||
|      Should color-supporting commands use ANSI color codes in text | ||||
|      output.  'auto' (default): whenever stdout seems to be a | ||||
|      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. | ||||
| '--pretty[=WHEN]' | ||||
| 
 | ||||
| `--pretty[=WHEN]' | ||||
|      Show prettier output, e.g. using unicode box-drawing characters. | ||||
|      Show prettier output, e.g.  using unicode box-drawing characters. | ||||
|      Accepts 'yes' (the default) or 'no' ('y', 'n', 'always', 'never' | ||||
|      also work).  If you provide an argument you must use '=', e.g. | ||||
|      '-pretty=yes'. | ||||
| @ -241,62 +244,62 @@ the last one takes precedence. | ||||
| 
 | ||||
|    hledger help options: | ||||
| 
 | ||||
| `-h --help' | ||||
| '-h --help' | ||||
| 
 | ||||
|      show general or COMMAND help | ||||
| '--man' | ||||
| 
 | ||||
| `--man' | ||||
|      show general or COMMAND user manual with man | ||||
| '--info' | ||||
| 
 | ||||
| `--info' | ||||
|      show general or COMMAND user manual with info | ||||
| '--version' | ||||
| 
 | ||||
| `--version' | ||||
|      show general or ADDONCMD version | ||||
| '--debug[=N]' | ||||
| 
 | ||||
| `--debug[=N]' | ||||
|      show debug output (levels 1-9, default: 1) | ||||
| 
 | ||||
|    A @FILE argument will be expanded to the contents of FILE, which | ||||
| should contain one command line option/argument per line. (To prevent | ||||
| this, insert a `--' argument before.) | ||||
| should contain one command line option/argument per line.  (To prevent | ||||
| this, insert a '--' argument before.) | ||||
| 
 | ||||
|    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 | ||||
| window, and will exit after two minutes of inactivity (no requests and | ||||
| no browser windows viewing it). With `--serve', it just runs the web | ||||
| app without exiting, and logs requests to the console. With | ||||
| `--serve-api', only the JSON web api (see below) is served, with the | ||||
| no browser windows viewing it).  With '--serve', it just runs the web | ||||
| app without exiting, and logs requests to the console.  With | ||||
| '--serve-api', only the JSON web api (see below) is served, with the | ||||
| usual HTML server-side web UI disabled. | ||||
| 
 | ||||
|    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. | ||||
| 
 | ||||
|    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. | ||||
| 
 | ||||
|    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 | ||||
| that for communication. This is an alternative way of running multiple | ||||
| hledger-web instances behind a reverse proxy that handles | ||||
| authentication for different users. The path can be derived in a | ||||
| predictable way, eg by using the username within the path. As an | ||||
| example, `nginx' as reverse proxy can use the variable `$remote_user' | ||||
| to derive a path from the username used in a HTTP basic authentication. | ||||
| The following `proxy_pass' directive allows access to all `hledger-web' | ||||
| instances that created a socket in `/tmp/hledger/': | ||||
| 
 | ||||
|    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 | ||||
| that for communication.  This is an alternative way of running multiple | ||||
| hledger-web instances behind a reverse proxy that handles authentication | ||||
| for different users.  The path can be derived in a predictable way, eg | ||||
| by using the username within the path.  As an example, 'nginx' as | ||||
| reverse proxy can use the variable '$remote_user' to derive a path from | ||||
| the username used in a HTTP basic authentication.  The following | ||||
| 'proxy_pass' directive allows access to all 'hledger-web' instances that | ||||
| created a socket in '/tmp/hledger/': | ||||
| 
 | ||||
|   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 | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
| websites. | ||||
| 
 | ||||
| @ -311,32 +314,28 @@ journal and to add new transactions, but not to change existing data. | ||||
| 
 | ||||
|    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 | ||||
|      local machine. | ||||
| 
 | ||||
|    * putting it behind an authenticating proxy, using eg apache or nginx | ||||
| 
 | ||||
|    * custom firewall rules | ||||
| 
 | ||||
|    You can restrict what the users who reach it can do, by | ||||
| 
 | ||||
|    * using the `--capabilities=CAP[,CAP..]' flag when you start it, | ||||
|      enabling one or more of the following capabilities. The default | ||||
|      value is `view,add': | ||||
|         * `view' - allows viewing the journal file and all included | ||||
|    * using the '--capabilities=CAP[,CAP..]' flag when you start it, | ||||
|      enabling one or more of the following capabilities.  The default | ||||
|      value is 'view,add': | ||||
|         * 'view' - allows viewing the journal file and all included | ||||
|           files | ||||
| 
 | ||||
|         * `add' - allows adding new transactions to the main journal | ||||
|         * 'add' - allows adding new transactions to the main journal | ||||
|           file | ||||
| 
 | ||||
|         * `manage' - allows editing, uploading or downloading the main | ||||
|         * 'manage' - allows editing, uploading or downloading the main | ||||
|           or included files | ||||
| 
 | ||||
|    * using the `--capabilities-header=HTTPHEADER' flag to specify a HTTP | ||||
|      header from which it will read capabilities to enable. hledger-web | ||||
|    * using the '--capabilities-header=HTTPHEADER' flag to specify a HTTP | ||||
|      header from which it will read capabilities to enable.  hledger-web | ||||
|      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 | ||||
| @ -344,8 +343,8 @@ File: hledger-web.info,  Node: EDITING UPLOADING DOWNLOADING,  Next: RELOADING, | ||||
| 3 EDITING, UPLOADING, DOWNLOADING | ||||
| ********************************* | ||||
| 
 | ||||
| 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 | ||||
| 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 | ||||
| let you edit, upload, or download the journal file or any files it | ||||
| includes. | ||||
| 
 | ||||
| @ -354,13 +353,13 @@ visitor) can alter or wipe the data files. | ||||
| 
 | ||||
|    Normally whenever a file is changed in this way, hledger-web saves a | ||||
| 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 | ||||
| yourself (eg with a cron job or a file watcher like entr). | ||||
| 
 | ||||
|    Changes which would leave the journal file(s) unparseable or | ||||
| 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 | ||||
| @ -370,7 +369,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 | ||||
| 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 has been fixed. | ||||
| 
 | ||||
| @ -384,16 +383,14 @@ 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 | ||||
| be used to get data or add new transactions. If you want the JSON API | ||||
| only, you can use the `--serve-api' flag. Eg: | ||||
| 
 | ||||
| be used to get data or add new transactions.  If you want the JSON API | ||||
| only, you can use the '--serve-api' flag.  Eg: | ||||
| 
 | ||||
| $ hledger-web -f examples/sample.journal --serve-api | ||||
| ... | ||||
| 
 | ||||
|    You can get JSON data from these routes: | ||||
| 
 | ||||
| 
 | ||||
| /version | ||||
| /accountnames | ||||
| /transactions | ||||
| @ -406,7 +403,6 @@ $ hledger-web -f examples/sample.journal --serve-api | ||||
| command).  (hledger-web's JSON does not include newlines, here we use | ||||
| python to prettify it): | ||||
| 
 | ||||
| 
 | ||||
| $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool | ||||
| [ | ||||
|     "assets", | ||||
| @ -426,7 +422,6 @@ $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool | ||||
| 
 | ||||
|    Or all transactions: | ||||
| 
 | ||||
| 
 | ||||
| $ curl -s http://127.0.0.1:5000/transactions | python -m json.tool | ||||
| [ | ||||
|     { | ||||
| @ -448,25 +443,24 @@ $ 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 | ||||
| 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. | ||||
| 
 | ||||
|    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 at the source for the appropriate handler to see what it returns. | ||||
| Eg for `/accounttransactions' it's getAccounttransactionsR, returning a | ||||
| "`accountTransactionsReport ...'". Looking up the haddock for that we | ||||
| To understand that, go to the Hledger.Web.Handler.MiscR haddock and look | ||||
| at the source for the appropriate handler to see what it returns.  Eg | ||||
| for '/accounttransactions' it's getAccounttransactionsR, returning a | ||||
| "'accountTransactionsReport ...'".  Looking up the haddock for that we | ||||
| can see that /accounttransactions returns an AccountTransactionsReport, | ||||
| which consists of a report title and a list of | ||||
| AccountTransactionsReportItem (etc). | ||||
| 
 | ||||
|    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 default). The payload must be the full, exact JSON representation of | ||||
| a hledger transaction (partial data won't do). You can get sample JSON | ||||
| from hledger-web's `/transactions' or `/accounttransactions', or you | ||||
| can export it with hledger-lib, eg like so: | ||||
| 
 | ||||
| '/add', if hledger-web was started with the 'add' capability (enabled by | ||||
| default).  The payload must be the full, exact JSON representation of a | ||||
| hledger transaction (partial data won't do).  You can get sample JSON | ||||
| from hledger-web's '/transactions' or '/accounttransactions', or you can | ||||
| export it with hledger-lib, eg like so: | ||||
| 
 | ||||
| .../hledger$ stack ghci hledger-lib | ||||
| >>> writeJsonFile "txn.json" (head $ jtxns samplejournal) | ||||
| @ -475,7 +469,6 @@ can export it with hledger-lib, eg like so: | ||||
|    Here's how it looks as of hledger-1.17 (remember, this JSON | ||||
| corresponds to hledger's Transaction and related data types): | ||||
| 
 | ||||
| 
 | ||||
| { | ||||
|     "tcomment": "", | ||||
|     "tpostings": [ | ||||
| @ -562,10 +555,9 @@ corresponds to hledger's Transaction and related data types): | ||||
|     "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: | ||||
| 
 | ||||
| 
 | ||||
| $ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json | ||||
| 
 | ||||
|  | ||||
| @ -574,26 +566,25 @@ File: hledger-web.info,  Node: ENVIRONMENT,  Next: FILES,  Prev: JSON API,  Up: | ||||
| 6 ENVIRONMENT | ||||
| ************* | ||||
| 
 | ||||
| *LEDGER_FILE* The journal file path when not specified with `-f'. | ||||
| Default: `~/.hledger.journal' (on windows, perhaps | ||||
| `C:/Users/USER/.hledger.journal'). | ||||
| *LEDGER_FILE* The journal file path when not specified with '-f'. | ||||
| Default: '~/.hledger.journal' (on windows, perhaps | ||||
| 'C:/Users/USER/.hledger.journal'). | ||||
| 
 | ||||
|    A typical value is `~/DIR/YYYY.journal', where DIR is a | ||||
| version-controlled finance directory and YYYY is the current year. Or | ||||
| `~/DIR/current.journal', where current.journal is a symbolic link to | ||||
|    A typical value is '~/DIR/YYYY.journal', where DIR is a | ||||
| version-controlled finance directory and YYYY is the current year.  Or | ||||
| '~/DIR/current.journal', where current.journal is a symbolic link to | ||||
| YYYY.journal. | ||||
| 
 | ||||
|    On Mac computers, you can set this and other environment variables | ||||
| in a more thorough way that also affects applications started from the | ||||
| GUI (say, an Emacs dock icon). Eg on MacOS Catalina I have a | ||||
| `~/.MacOSX/environment.plist' file containing | ||||
| 
 | ||||
|    On Mac computers, you can set this and other environment variables in | ||||
| a more thorough way that also affects applications started from the GUI | ||||
| (say, an Emacs dock icon).  Eg on MacOS Catalina I have a | ||||
| '~/.MacOSX/environment.plist' file containing | ||||
| 
 | ||||
| { | ||||
|   "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 | ||||
| @ -602,9 +593,9 @@ File: hledger-web.info,  Node: FILES,  Next: BUGS,  Prev: ENVIRONMENT,  Up: Top | ||||
| ******* | ||||
| 
 | ||||
| Reads data from one or more files in hledger journal, timeclock, | ||||
| timedot, or CSV format specified with `-f', or `$LEDGER_FILE', or | ||||
| `$HOME/.hledger.journal' (on windows, perhaps | ||||
| `C:/Users/USER/.hledger.journal'). | ||||
| timedot, or CSV format specified with '-f', or '$LEDGER_FILE', or | ||||
| '$HOME/.hledger.journal' (on windows, perhaps | ||||
| 'C:/Users/USER/.hledger.journal'). | ||||
| 
 | ||||
|  | ||||
| File: hledger-web.info,  Node: BUGS,  Prev: FILES,  Up: Top | ||||
| @ -612,10 +603,10 @@ File: hledger-web.info,  Node: BUGS,  Prev: FILES,  Up: Top | ||||
| 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. | ||||
| 
 | ||||
|    `-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. | ||||
| 
 | ||||
| @ -623,25 +614,29 @@ awkward. | ||||
| 
 | ||||
|    Does not work well on small screens. | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| Tag Table: | ||||
| Node: Top235 | ||||
| Node: OPTIONS1878 | ||||
| Ref: #options1983 | ||||
| Node: PERMISSIONS9873 | ||||
| Ref: #permissions10012 | ||||
| Node: EDITING UPLOADING DOWNLOADING11224 | ||||
| Ref: #editing-uploading-downloading11405 | ||||
| Node: RELOADING12236 | ||||
| Ref: #reloading12370 | ||||
| Node: JSON API12802 | ||||
| Ref: #json-api12916 | ||||
| Node: ENVIRONMENT18405 | ||||
| Ref: #environment18521 | ||||
| Node: FILES19253 | ||||
| Ref: #files19353 | ||||
| Node: BUGS19566 | ||||
| Ref: #bugs19644 | ||||
| Node: Top223 | ||||
| Node: OPTIONS1889 | ||||
| Ref: #options1994 | ||||
| Node: PERMISSIONS9905 | ||||
| Ref: #permissions10044 | ||||
| Node: EDITING UPLOADING DOWNLOADING11256 | ||||
| Ref: #editing-uploading-downloading11437 | ||||
| Node: RELOADING12271 | ||||
| Ref: #reloading12405 | ||||
| Node: JSON API12838 | ||||
| Ref: #json-api12952 | ||||
| Node: ENVIRONMENT18442 | ||||
| Ref: #environment18558 | ||||
| Node: FILES19291 | ||||
| Ref: #files19391 | ||||
| Node: BUGS19604 | ||||
| Ref: #bugs19682 | ||||
|  | ||||
| End Tag Table | ||||
| 
 | ||||
|  | ||||
| Local Variables: | ||||
| coding: utf-8 | ||||
| End: | ||||
|  | ||||
| @ -3101,6 +3101,20 @@ Output as CSV and use a CSV viewer like visidata | ||||
| .IP \[bu] 2 | ||||
| Output as HTML and view with a browser: | ||||
| \f[C]hledger bal -D -o a.html && open a.html\f[R] | ||||
| .SS Showing declared accounts | ||||
| .PP | ||||
| With \f[C]--declared\f[R], accounts which have been declared with an | ||||
| account directive will be included in the balance report, even if they | ||||
| have no transactions. | ||||
| (Since they will have a zero balance, you will also need | ||||
| \f[C]-E/--empty\f[R] to see them.) | ||||
| .PP | ||||
| More precisely, \f[I]leaf\f[R] declared accounts (with no subaccounts) | ||||
| will be included, since those are usually the more useful in reports. | ||||
| .PP | ||||
| The idea of this is to be able to see a useful \[dq]complete\[dq] | ||||
| balance report, even when you don\[aq]t have transactions in all of your | ||||
| declared accounts yet. | ||||
| .SS Commodity layout | ||||
| .PP | ||||
| With \f[C]--layout\f[R], you can control how amounts with more than one | ||||
| @ -6790,7 +6804,7 @@ _ | ||||
| T{ | ||||
| \f[B]\f[CB]account\f[B]\f[R] | ||||
| T}@T{ | ||||
| Declare an account, for checking all entries in all files; and its | ||||
| Declares an account, for checking all entries in all files; and its | ||||
| display order and type, for reports. | ||||
| Subdirectives: any text, ignored. | ||||
| T}@T{ | ||||
| @ -7282,67 +7296,64 @@ account ACCTNAME  [ACCTTYPE] [;COMMENT] | ||||
| .fi | ||||
| .SS Account types | ||||
| .PP | ||||
| hledger recognises five main types of account, corresponding to the | ||||
| account classes in the accounting equation: | ||||
| By adding a \f[C]type\f[R] tag to the account directive, with value | ||||
| \f[C]A\f[R], \f[C]L\f[R], \f[C]E\f[R], \f[C]R\f[R], \f[C]X\f[R], | ||||
| \f[C]C\f[R] (or if you prefer: \f[C]Asset\f[R], \f[C]Liability\f[R], | ||||
| \f[C]Equity\f[R], \f[C]Revenue\f[R], \f[C]Expense\f[R], \f[C]Cash\f[R]), | ||||
| you can declare hledger accounts to be of a certain type: | ||||
| .IP \[bu] 2 | ||||
| \f[B]asset\f[R], \f[B]liability\f[R], \f[B]equity\f[R], | ||||
| \f[B]revenue\f[R], \f[B]expense\f[R] | ||||
| .PD 0 | ||||
| .P | ||||
| .PD | ||||
| the standard types in accounting, or | ||||
| .IP \[bu] 2 | ||||
| \f[B]cash\f[R] | ||||
| .PD 0 | ||||
| .P | ||||
| .PD | ||||
| a subtype of asset, used for liquid assets. | ||||
| .PP | ||||
| \f[C]Asset\f[R], \f[C]Liability\f[R], \f[C]Equity\f[R], | ||||
| \f[C]Revenue\f[R], \f[C]Expense\f[R]. | ||||
| Declaring account types is a good idea, since it helps enable the easy | ||||
| balancesheet, balancesheetequity, incomestatement and cashflow reports, | ||||
| and probably other things in future. | ||||
| As a convenience, when account types are not declared, hledger will try | ||||
| to guess them based on english-language account names. | ||||
| .PP | ||||
| These account types are important for controlling which accounts appear | ||||
| in the balancesheet, balancesheetequity, incomestatement reports (and | ||||
| probably for other things in future). | ||||
| .PP | ||||
| Additionally, we recognise the \f[C]Cash\f[R] type, which is also an | ||||
| \f[C]Asset\f[R], and which causes accounts to appear in the cashflow | ||||
| report. | ||||
| (\[dq]Cash\[dq] here means liquid assets, eg bank balances but typically | ||||
| not investments or receivables.) | ||||
| .SS Declaring account types | ||||
| .PP | ||||
| To make the balancesheet/balancesheetequity/cashflow/incomestatement | ||||
| reports work, generally you should declare your top-level accounts, and | ||||
| their types. | ||||
| For each top-level account, write an account directive, with a | ||||
| \f[C]type:\f[R] tag. | ||||
| The tag\[aq]s value can be any of \f[C]Asset\f[R], \f[C]Liability\f[R], | ||||
| \f[C]Equity\f[R], \f[C]Revenue\f[R], \f[C]Expense\f[R], \f[C]Cash\f[R], | ||||
| or (for short) \f[C]A\f[R], \f[C]L\f[R], \f[C]E\f[R], \f[C]R\f[R], | ||||
| \f[C]X\f[R], \f[C]C\f[R] (case insensitive). | ||||
| An account\[aq]s type is inherited by its subaccounts, unless they | ||||
| declare a different type. | ||||
| Here\[aq]s an example, declaring all six account types: | ||||
| Here is a typical set of top-level account declarations (because of the | ||||
| aforementioned, with these account names the type tags are not strictly | ||||
| needed, but with non-english or non-standard account names, they will | ||||
| be): | ||||
| .IP | ||||
| .nf | ||||
| \f[C] | ||||
| account assets       ; type: Asset | ||||
| account assets:bank  ; type: Cash | ||||
| account assets:cash  ; type: Cash | ||||
| account liabilities  ; type: Liability | ||||
| account equity       ; type: Equity | ||||
| account revenues     ; type: Revenue | ||||
| account expenses     ; type: Expense | ||||
| account assets       ; type: A | ||||
| account liabilities  ; type: L | ||||
| account equity       ; type: E | ||||
| account revenues     ; type: R | ||||
| account expenses     ; type: X | ||||
| 
 | ||||
| account assets:bank  ; type: C | ||||
| account assets:cash  ; type: C | ||||
| \f[R] | ||||
| .fi | ||||
| .PP | ||||
| There is also an older syntax, which is deprecated and will be dropped | ||||
| soon (A, L, E, R or X separated from the account name by two or more | ||||
| spaces): | ||||
| .IP | ||||
| .nf | ||||
| \f[C] | ||||
| account assets       A | ||||
| account liabilities  L | ||||
| account equity       E | ||||
| account revenues     R | ||||
| account expenses     X | ||||
| \f[R] | ||||
| .fi | ||||
| It\[aq]s not necessary to declare the type of subaccounts. | ||||
| (You can, if they are different from the parent, but this is not | ||||
| common.) | ||||
| .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: | ||||
| More about \[dq]guessing\[dq] account types: 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, it tries to | ||||
| auto-detect some accounts by name, using the regular expressions below. | ||||
| Note: if you declare any account\[aq]s type, it\[aq]s a good idea to | ||||
| declare an account for all six types, because a mix of declared and | ||||
| auto-detected types can cause confusing results. | ||||
| .PP | ||||
| The auto-detection rules are: | ||||
| .IP | ||||
| .nf | ||||
| \f[C] | ||||
| @ -7357,40 +7368,6 @@ to auto-detect some accounts by name, using regular expressions: | ||||
|  \[ha]expenses?(:|$)                                                    | Expense | ||||
| \f[R] | ||||
| .fi | ||||
| .PP | ||||
| For people using standard english account names, this feature helps | ||||
| hledger\[aq]s high-level reports work out of the box with minimal | ||||
| configuration. | ||||
| .PP | ||||
| If you use non-english account names, you should declare account types | ||||
| to make these reports work. | ||||
| And more generally, declaring accounts and types is usually a good idea, | ||||
| for increased clarity and predictability (and for the other benefits of | ||||
| account directives: error checking, display order, etc). | ||||
| .PP | ||||
| 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 | ||||
| .nf | ||||
| \f[C] | ||||
| account liabilities  ; type:Equity | ||||
| 
 | ||||
| 2020-01-01 | ||||
|   assets        1 | ||||
|   liabilities   1 | ||||
|   equity       -2 | ||||
| \f[R] | ||||
| .fi | ||||
| .RE | ||||
| .SS Account display order | ||||
| .PP | ||||
| Account directives also set the order in which accounts are displayed, | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -2161,6 +2161,19 @@ COMMANDS | ||||
|        o Output  as  HTML and view with a browser: hledger bal -D -o a.html && | ||||
|          open a.html | ||||
| 
 | ||||
|    Showing declared accounts | ||||
|        With --declared, accounts which have  been  declared  with  an  account | ||||
|        directive  will be included in the balance report, even if they have no | ||||
|        transactions.  (Since they will have a zero balance, you will also need | ||||
|        -E/--empty to see them.) | ||||
| 
 | ||||
|        More  precisely,  leaf  declared accounts (with no subaccounts) will be | ||||
|        included, since those are usually the more useful in reports. | ||||
| 
 | ||||
|        The idea of this is to be able  to  see  a  useful  "complete"  balance | ||||
|        report,  even  when you don't have transactions in all of your declared | ||||
|        accounts yet. | ||||
| 
 | ||||
|    Commodity layout | ||||
|        With --layout, you can control how amounts with more than one commodity | ||||
|        are displayed: | ||||
| @ -2412,6 +2425,7 @@ COMMANDS | ||||
|                   period end         ues  from  report   from     report    report   start | ||||
|                                      start  to  period   start to period    to period end | ||||
|                                      end                 end | ||||
| 
 | ||||
|        --his-     change      from   sum  of  posting-   period-end         DATE-value  of | ||||
|        torical    journal start to   date  market val-   value of change    change    from | ||||
|        /-H        period end (his-   ues from  journal   from    journal    journal  start | ||||
| @ -4902,7 +4916,7 @@ JOURNAL FORMAT | ||||
|                                                                                   file | ||||
|                                                                                   end? | ||||
|        ---------------------------------------------------------------------------------- | ||||
|        account    Declare  an  account,  for checking all entries in all files; | ||||
|        account    Declares  an  account, for checking all entries in all files; | ||||
|                   and its display order and type, for reports.   Subdirectives: | ||||
|                   any text, ignored. | ||||
|        alias      Rewrites  account  names,  in  following entries until end of   Y | ||||
| @ -4910,6 +4924,8 @@ JOURNAL FORMAT | ||||
|        apply      Prepends a common parent account to  all  account  names,  in   Y | ||||
|        account    following  entries  until  end  of  current file or end apply | ||||
|                   account. | ||||
| 
 | ||||
| 
 | ||||
|        comment    Ignores  part  of the journal file, until end of current file   Y | ||||
|                   or end comment. | ||||
|        commod-    Declares  a commodity, for checking all entries in all files;   N, Y | ||||
| @ -4928,8 +4944,6 @@ JOURNAL FORMAT | ||||
|        include    Includes entries and directives from another file, as if they | ||||
|                   were written inline. | ||||
|        payee      Declares a payee name, for checking all entries in all files. | ||||
| 
 | ||||
| 
 | ||||
|        P          Declares  a  market  price  for a commodity on some date, for | ||||
|                   valuation reports. | ||||
|        Y          Declares a year for yearless  dates,  for  following  entries   Y | ||||
| @ -5242,53 +5256,50 @@ JOURNAL FORMAT | ||||
|                 [LEDGER-STYLE SUBDIRECTIVES, IGNORED] | ||||
| 
 | ||||
|    Account types | ||||
|        hledger  recognises  five  main  types of account, corresponding to the | ||||
|        account classes in the accounting equation: | ||||
|        By  adding  a type tag to the account directive, with value A, L, E, R, | ||||
|        X, C (or if you prefer: Asset,  Liability,  Equity,  Revenue,  Expense, | ||||
|        Cash), you can declare hledger accounts to be of a certain type: | ||||
| 
 | ||||
|        Asset, Liability, Equity, Revenue, Expense. | ||||
|        o asset, liability, equity, revenue, expense | ||||
|        the standard types in accounting, or | ||||
| 
 | ||||
|        These account types are important for controlling which accounts appear | ||||
|        in  the  balancesheet, balancesheetequity, incomestatement reports (and | ||||
|        probably for other things in future). | ||||
|        o cash | ||||
|        a subtype of asset, used for liquid assets. | ||||
| 
 | ||||
|        Additionally, we recognise the Cash type, which is also an  Asset,  and | ||||
|        which  causes  accounts to appear in the cashflow report.  ("Cash" here | ||||
|        means liquid assets, eg bank balances but typically not investments  or | ||||
|        receivables.) | ||||
|        Declaring  account types is a good idea, since it helps enable the easy | ||||
|        balancesheet, balancesheetequity, incomestatement and cashflow reports, | ||||
|        and  probably  other  things in future.  As a convenience, when account | ||||
|        types are not declared,  hledger  will  try  to  guess  them  based  on | ||||
|        english-language account names. | ||||
| 
 | ||||
|    Declaring account types | ||||
|        To  make  the  balancesheet/balancesheetequity/cashflow/incomestatement | ||||
|        reports work, generally you should declare your top-level accounts, and | ||||
|        their  types.   For each top-level account, write an account directive, | ||||
|        with a type: tag.  The tag's value can  be  any  of  Asset,  Liability, | ||||
|        Equity,  Revenue,  Expense, Cash, or (for short) A, L, E, R, X, C (case | ||||
|        insensitive).  An account's  type  is  inherited  by  its  subaccounts, | ||||
|        unless they declare a different type.  Here's an example, declaring all | ||||
|        six account types: | ||||
|        Here is a typical set of top-level account declarations (because of the | ||||
|        aforementioned, with these account names the type tags are not strictly | ||||
|        needed,  but  with non-english or non-standard account names, they will | ||||
|        be): | ||||
| 
 | ||||
|               account assets       ; type: Asset | ||||
|               account assets:bank  ; type: Cash | ||||
|               account assets:cash  ; type: Cash | ||||
|               account liabilities  ; type: Liability | ||||
|               account equity       ; type: Equity | ||||
|               account revenues     ; type: Revenue | ||||
|               account expenses     ; type: Expense | ||||
|               account assets       ; type: A | ||||
|               account liabilities  ; type: L | ||||
|               account equity       ; type: E | ||||
|               account revenues     ; type: R | ||||
|               account expenses     ; type: X | ||||
| 
 | ||||
|        There is also an older syntax, which is deprecated and will be  dropped | ||||
|        soon  (A,  L,  E, R or X separated from the account name by two or more | ||||
|        spaces): | ||||
|               account assets:bank  ; type: C | ||||
|               account assets:cash  ; type: C | ||||
| 
 | ||||
|               account assets       A | ||||
|               account liabilities  L | ||||
|               account equity       E | ||||
|               account revenues     R | ||||
|               account expenses     X | ||||
|        It's not necessary to declare the type of subaccounts.   (You  can,  if | ||||
|        they are different from the parent, but this is not common.) | ||||
| 
 | ||||
|    Auto-detected account types | ||||
|        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: | ||||
|        More about "guessing" account types: 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, it tries to auto-detect some accounts  by  name, | ||||
|        using  the  regular  expressions  below.   Note:  if  you  declare  any | ||||
|        account's type, it's a good idea to declare  an  account  for  all  six | ||||
|        types, because a mix of declared and auto-detected types can cause con- | ||||
|        fusing results. | ||||
| 
 | ||||
|        The auto-detection rules are: | ||||
| 
 | ||||
|                If account's name matches this case insensitive regular expression:| its type is: | ||||
|               ------------------------------------------------------------------- | ------------ | ||||
| @ -5300,34 +5311,6 @@ JOURNAL FORMAT | ||||
|                ^(income|revenue)s?(:|$)                                           | Revenue | ||||
|                ^expenses?(:|$)                                                    | Expense | ||||
| 
 | ||||
|        For  people  using  standard  english account names, this feature helps | ||||
|        hledger's high-level reports work out of the box with minimal  configu- | ||||
|        ration. | ||||
| 
 | ||||
|        If  you use non-english account names, you should declare account types | ||||
|        to make these reports work.  And more generally, declaring accounts and | ||||
|        types  is usually a good idea, for increased clarity and predictability | ||||
|        (and for the other benefits of account directives: error checking, dis- | ||||
|        play order, etc). | ||||
| 
 | ||||
|        Notes: | ||||
| 
 | ||||
|        o When  any account is declared as some type, this disables auto-detec- | ||||
|          tion for that particular type. | ||||
| 
 | ||||
|        o If you declare any account's type, it'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: | ||||
| 
 | ||||
|                 account liabilities  ; type:Equity | ||||
| 
 | ||||
|                 2020-01-01 | ||||
|                   assets        1 | ||||
|                   liabilities   1 | ||||
|                   equity       -2 | ||||
| 
 | ||||
|    Account display order | ||||
|        Account directives also set the order in which accounts are  displayed, | ||||
|        eg  in  reports,  the  hledger-ui  accounts screen, and the hledger-web | ||||
| @ -5826,8 +5809,6 @@ CSV FORMAT | ||||
| 
 | ||||
|        skip                         skip one or more header lines or matched CSV | ||||
|                                     records | ||||
| 
 | ||||
| 
 | ||||
|        fields list                  name  CSV  fields,  assign  them  to hledger | ||||
|                                     fields | ||||
|        field assignment             assign a value to one  hledger  field,  with | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user