diff --git a/site/.gitignore b/site/.gitignore
deleted file mode 100644
index 33321dddd..000000000
--- a/site/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-_cache
-_site
-files/downloads
-files/static
-hledger-api.md
-hledger-ui.md
-hledger-web.md
-hledger.md
-csv.md
-journal.md
-timeclock.md
-timedot.md
-manual.md
-cookbook.md
-[0-9].*
-.snapshot
diff --git a/site/CONTRIBUTING.md b/site/CONTRIBUTING.md
deleted file mode 120000
index 44fcc6343..000000000
--- a/site/CONTRIBUTING.md
+++ /dev/null
@@ -1 +0,0 @@
-../CONTRIBUTING.md
\ No newline at end of file
diff --git a/site/README b/site/README
deleted file mode 100644
index 8564cb8fb..000000000
--- a/site/README
+++ /dev/null
@@ -1,10 +0,0 @@
-This is the README for the site/ directory.
-
-(Confusingly, README.md from the parent directory is also symlinked
-here, to get it rendered as part of the website, and it might take
-precedence when viewing this dir on github.)
-
-Source files for the hledger.org website.
-To generate the website, run ./Shake website.
-This will add the web manuals' markdown to this directory,
-render all markdown as html, and copy static files, to site/_site/.
diff --git a/site/README.md b/site/README.md
deleted file mode 120000
index 32d46ee88..000000000
--- a/site/README.md
+++ /dev/null
@@ -1 +0,0 @@
-../README.md
\ No newline at end of file
diff --git a/site/contributors.md b/site/contributors.md
deleted file mode 100644
index 06963912c..000000000
--- a/site/contributors.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# hledger Contributors
-
-hledger is brought to you by:
-
-- Simon Michael - lead developer, project manager, general dogsbody
-- Sergey Astanin - utf8 support
-- Nick Ingolia - parser improvements
-- Roman Cheplyaka - "chart" command, "add" command improvements
-- Michael Snoyman - some additions to the Yesod web interface
-- Marko Kocić - hlint cleanup
-- Samuel May - exact assertions
-
-Developers who have not yet signed the contributor agreement:
-
-- Tim Docker - parser improvements
-- Oliver Braun - GHC 6.12 compatibility
-- Gwern Branwen - cleanups
-
-Also:
-
-- John Wiegley - created the original ledger program
-
-
-
-* * * * *
-
-
-
-# hledger Contributor Agreement
-
-This is the official contributor agreement (v1) and contributor list for
-the hledger project. If you have contributed non-trivial code changes to
-hledger, please sign this, to help ensure:
-
-1. that there is a clear legal status and audit trail for the project
-
-2. that you get proper credit for your work
-
-3. that we are able to remain license-compatible with related software
- by updating to newer versions of our license when appropriate (eg
- GPLv2 -\> GPLv3)
-
-To "sign", read the conditions below and then send a darcs patch to
-\`this file\`\_ adding your name to the Contributor List above. By so
-doing you promise that all of your commits to hledger:
-
-- are free of patent violations or copyright violations, to the best
- of your knowledge
-
-- are released under the hledger project's
- [license](https://github.com/simonmichael/hledger/blob/master/LICENSE); or are released
- under another compatible license (in which case this must be clearly
- noted); or are public domain
-
-- may be relicensed under official future versions of their license at
- the discretion of the project leader
-
-We don't currently gather paper signatures, but this is a good start.
-Feel free to update your entry as your contributions grow!
diff --git a/site/css/style.css b/site/css/style.css
deleted file mode 100644
index 1ab257947..000000000
--- a/site/css/style.css
+++ /dev/null
@@ -1,271 +0,0 @@
-table {
- margin-bottom:1em;
-}
-td {
- border-bottom:thin solid #ddd;
-}
-code {
- background-color:inherit;
- color: inherit;
-}
-pre {
- font-size:small;
- margin-left:2em;
-}
-pre.shell, pre.journal, pre.csv, pre.rules, pre.timeclock, pre.timedot {
- /* clear:both; */
- background-color:inherit;
- border:none;
- /* margin-left:1em; */
- /* margin-right:2em; */
- border-radius:6px;
- /* display:inline-block; */
- display:table;
- /* background-color:#e0e0e0; */
- font-size:small;
- /* white-space:nowrap; */
-}
-pre > code {
- white-space:pre;
-}
-pre.shell::first-line {
- font-weight:bold;
-}
-.clear {
- clear:both;
-}
-/*
-h4, h5, h6 {
- clear:both;
-}
-*/
-.display-table {
- display:table;
-}
-pre.journal {
- background-color:#efe;
- border:thin solid #cec;
- /* border:none; */
-}
-pre.csv {
- background-color:#cce;
- border:thin solid #aad;
- /* border:none; */
-}
-pre.rules {
- background-color:#eef;
- border:thin solid #cce;
- /* border:none; */
-}
-pre.timeclock {
- background-color:#ffe;
- border:thin solid #eec;
- /* border:none; */
-}
-pre.timedot {
- background-color:#ffe;
- border:thin solid #eec;
- /* border:none; */
-}
-pre.shell {
- background-color:white;
- border:none;
- border-left:2px solid black;
- border-top:2px solid black;
- border-top-right-radius:0;
- border-bottom-left-radius:0;
- /* padding-top:0; */
- /* padding-bottom:0; */
-}
-
-.shell.continued {
- background-color:white;
- border-top:none;
- border-top-left-radius:0;
-}
-.shell.continued::first-line, .nobold::first-line {
- font-weight:normal;
-}
-.bold {
- font-weight:bold;
-}
-.right {
- float:right;
-}
-.navbar { font-size:x-large; }
-.navbar-brand { font-weight:bold; font-size:xx-large; }
-.navbar-nav { margin-left:1em; }
-
-/* table of contents */
-/* based on https://github.com/blaenk/blaenk.github.io/blob/source/provider/scss/_article.scss */
-#toc {
- max-width:40%;
- margin-top: 1em;
-}
-/* move it to the right */
-#toc { /* right */
- float: right;
- margin:0 0 2em 2em;
- padding: 0;
-}
-#toc (@media screen and (max-width: 600px)) {
- float: none;
- padding: 0;
- margin-left: 0;
- margin-top: 10px;
-}
-#toc:after {
- clear: both;
-}
-/* margins and fonts */
-#toc p {
- font-weight: bold;
- margin-top: 0;
-}
-#toc > ol {
- margin-left: 0;
- margin-top: 5px;
- /* font-size: 14px; */
-}
-#toc ol {
- padding-left:0;
- /* margin-left:1em; */
-}
-#toc > ol (@media screen and (max-width: 600px)) {
- font-size: 13px;
-}
-#toc li {
- margin-top: 0;
- display: block;
-}
-#toc li (@media screen and (max-width: 600px)) {
- line-height: 1.69;
-}
-/* shrink subitems */
-#toc > ol > li > ol ol {
- font-size:95%;
-}
-/* indent subitems */
-#toc > ol > li > ol li {
- padding-left:1em;
-}
-/* embolden and top-pad top-level items */
-#toc > ol > li {
- padding-top:1em;
- font-weight:bold;
-}
-#toc > ol > li > ol {
- font-weight:normal;
-}
-/* hide top item(s) */
-/* #toc > ol > li > a { display:none; } */
-/* #toc > ol > li > ol > li { padding-left:0; } */
-/* number top items */
-/* #toc > ol { counter-reset: item; } */
-/* #toc > ol > li:before { */
-/* content: counters(item, ".") ". "; */
-/* counter-increment: item; */
-/* } */
-/* #toc > ol > li > ol > li { */
-/* padding-left:2em; */
-/* } */
-
-/* */
-
-/* documentation version selector */
-#versions {
-}
-
-h2 {
- margin-top:1.5em;
-}
-footer {
- padding: 1em;
- color: gray;
- text-align: center;
- /* font-size: 70%; */
-}
-
-
-/* div.container { max-width: 75em; } */
-
-/* /\* ul > li > ul > li { *\/ */
-/* /\* list-style-type:none; *\/ */
-/* /\* } *\/ */
-
-/* div#nav { padding-top: 2em; } */
-/* /\* div#nav ul { margin-top: 0; margin-left: 1em; margin-bottom: 0; } *\/ */
-/* /\* div#nav ul li { list-style: none; padding-bottom: 0.1em; } *\/ */
-/* div#nav ul li.current { */
-/* /\* list-style: square; *\/ */
-/* font-weight:bold; */
-/* } */
-
-/* div#nav ul li.current { */
-/* /\* list-style: square; *\/ */
-/* font-weight:bold; */
-/* } */
-
-/* ul.nav ul { */
-/* padding-left:30px; */
-/* } */
-/* /\* ul.nav ul li { *\/ */
-/* /\* list-style:none; *\/ */
-/* /\* } *\/ */
-
-/* ul.nav li a { */
-/* padding:4px 10px; */
-/* } */
-
-/* code { */
-/* color: #226600; */
-/* font-weight:bold; */
-/* } */
-
-/* pre { */
-/* background: #F8F8F8; /\* The same as the GitHub background color since I'm using their syntax.css *\/ */
-/* padding: 0 2em 0 2em; */
-/* } */
-
-/* .description { */
-/* font-size: 1.2em; */
-/* margin-bottom: 30px; */
-/* margin-top: 30px; */
-/* font-style: italic; */
-/* } */
-
-/* .download { */
-/* float: right; */
-/* } */
-/* .downloadoption { */
-/* background: #eee; */
-/* padding: 10px 0 10px 0; /\* Keep image and text away from top and bottom *\/ */
-/* margin-bottom: 10px; /\* Ensure there is some whitespace between options *\/ */
-/* } */
-/* .downloadoptionimage { */
-/* float: left; */
-/* width: 90px; */
-/* margin-left: 10px; /\* Offset from left border a little *\/ */
-/* } */
-/* .downloadoptiontext { */
-/* padding-left: 110px; /\* Offset from image *\/ */
-/* padding-right: 10px; /\* Offset from right border of the download option *\/ */
-/* } */
-
-/* .screenshotframe { */
-/* text-align: center; /\* The screenshot and it's border should be in the center of the page *\/ */
-/* } */
-/* .screenshot { */
-/* border: 10px solid #F8F8F8; /\* Soft grey border *\/ */
-/* } */
-
-/* .alert { */
-/* width:50%; */
-/* margin:1em; */
-/* padding:1em; */
-/* font-size:smaller; */
-/* border:thin solid hsl(0,100%,50%); */
-/* background-color:hsl(0,100%,95%); */
-/* font-style:italic;" */
-/* } */
-
diff --git a/site/css/syntax.css b/site/css/syntax.css
deleted file mode 100644
index 93f64d0c6..000000000
--- a/site/css/syntax.css
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Generated with pandoc --highlight-style=X */
-
-/* pygments */
-
-/*
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre
- { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
-td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
-td.sourceCode { padding-left: 5px; }
-pre.sourceCode span.kw { color: #007020; font-weight: bold; }
-pre.sourceCode span.dt { color: #902000; }
-pre.sourceCode span.dv { color: #40a070; }
-pre.sourceCode span.bn { color: #40a070; }
-pre.sourceCode span.fl { color: #40a070; }
-pre.sourceCode span.ch { color: #4070a0; }
-pre.sourceCode span.st { color: #4070a0; }
-pre.sourceCode span.co { color: #60a0b0; font-style: italic; }
-pre.sourceCode span.ot { color: #007020; }
-pre.sourceCode span.al { color: red; font-weight: bold; }
-pre.sourceCode span.fu { color: #06287e; }
-pre.sourceCode span.re { }
-pre.sourceCode span.er { color: red; font-weight: bold; }
-*/
-
-/* kate */
-
-/*
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
- margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; background-color: #dddddd; }
-td.sourceCode { padding-left: 5px; }
-code > span.kw { font-weight: bold; }
-code > span.dt { color: #800000; }
-code > span.dv { color: #0000ff; }
-code > span.bn { color: #0000ff; }
-code > span.fl { color: #800080; }
-code > span.ch { color: #ff00ff; }
-code > span.st { color: #dd0000; }
-code > span.co { color: #808080; font-style: italic; }
-code > span.al { color: #00ff00; font-weight: bold; }
-code > span.fu { color: #000080; }
-code > span.er { color: #ff0000; font-weight: bold; }
-*/
-
-/* monochrome */
-/*
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
- margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; }
-td.sourceCode { padding-left: 5px; }
-code > span.kw { font-weight: bold; }
-code > span.dt { text-decoration: underline; }
-code > span.co { font-style: italic; }
-code > span.al { font-weight: bold; }
-code > span.er { font-weight: bold; }
-*/
-
-/* espresso */
-/*
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
- margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; background-color: #2a211c; color: #bdae9d; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; background-color: #2a211c; color: #bdae9d; border-right: 1px solid #bdae9d; }
-td.sourceCode { padding-left: 5px; }
-pre, code { color: #bdae9d; background-color: #2a211c; }
-code > span.kw { color: #43a8ed; font-weight: bold; }
-code > span.dt { text-decoration: underline; }
-code > span.dv { color: #44aa43; }
-code > span.bn { color: #44aa43; }
-code > span.fl { color: #44aa43; }
-code > span.ch { color: #049b0a; }
-code > span.st { color: #049b0a; }
-code > span.co { color: #0066ff; font-style: italic; }
-code > span.al { color: #ffff00; }
-code > span.fu { color: #ff9358; font-weight: bold; }
-code > span.er { font-weight: bold; }
- */
-
-/* zenburn */
-/*
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
- margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; background-color: #303030; color: #cccccc; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; }
-td.sourceCode { padding-left: 5px; }
-pre, code { color: #cccccc; background-color: #303030; }
-code > span.kw { color: #f0dfaf; }
-code > span.dt { color: #dfdfbf; }
-code > span.dv { color: #dcdccc; }
-code > span.bn { color: #dca3a3; }
-code > span.fl { color: #c0bed1; }
-code > span.ch { color: #dca3a3; }
-code > span.st { color: #cc9393; }
-code > span.co { color: #7f9f7f; }
-code > span.ot { color: #efef8f; }
-code > span.al { color: #ffcfaf; }
-code > span.fu { color: #efef8f; }
-code > span.er { color: #c3bf9f; }
- */
-
-/* haddock */
-/*
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
- margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
-td.sourceCode { padding-left: 5px; }
-code > span.kw { color: #0000ff; }
-code > span.ch { color: #008080; }
-code > span.st { color: #008080; }
-code > span.co { color: #008000; }
-code > span.ot { color: #ff4000; }
-code > span.al { color: #ff0000; }
-code > span.er { font-weight: bold; }
- */
-
-/* tango */
-
-table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
- margin: 0; padding: 0; vertical-align: baseline; border: none; }
-table.sourceCode { width: 100%; line-height: 100%; background-color: #f8f8f8; }
-td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
-td.sourceCode { padding-left: 5px; }
-pre, code { background-color: #f8f8f8; }
-code > span.kw { color: #204a87; font-weight: bold; }
-code > span.dt { color: #204a87; }
-code > span.dv { color: #0000cf; }
-code > span.bn { color: #0000cf; }
-code > span.fl { color: #0000cf; }
-code > span.ch { color: #4e9a06; }
-code > span.st { color: #4e9a06; }
-code > span.co { color: #8f5902; font-style: italic; }
-code > span.ot { color: #8f5902; }
-code > span.al { color: #ef2929; }
-code > span.fu { color: #000000; }
-code > span.er { font-weight: bold; }
- */
diff --git a/site/doc/0.27/images/balance-q-inc.png b/site/doc/0.27/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/0.27/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/0.27/images/coins.svg b/site/doc/0.27/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/0.27/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/0.27/images/coins2-248.png b/site/doc/0.27/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/0.27/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/0.27/images/coins2.png b/site/doc/0.27/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/0.27/images/coins2.png and /dev/null differ
diff --git a/site/doc/0.27/images/data-model.png b/site/doc/0.27/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/0.27/images/data-model.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-charts-2.png b/site/doc/0.27/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/0.27/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-lib-api.png b/site/doc/0.27/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/0.27/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-screen-1.png b/site/doc/0.27/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/0.27/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/0.27/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/0.27/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/0.27/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web-journal.png b/site/doc/0.27/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/0.27/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/add.png b/site/doc/0.27/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/help.png b/site/doc/0.27/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/help2.png b/site/doc/0.27/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/journal-sidebar.png b/site/doc/0.27/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/journal.png b/site/doc/0.27/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/journal2.png b/site/doc/0.27/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/normal/register.png b/site/doc/0.27/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/0.27/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/add.png b/site/doc/0.27/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/help.png b/site/doc/0.27/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/help2.png b/site/doc/0.27/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/journal-sidebar.png b/site/doc/0.27/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/journal-sidebar2.png b/site/doc/0.27/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/journal.png b/site/doc/0.27/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/journal2.png b/site/doc/0.27/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/register.png b/site/doc/0.27/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/0.27/images/hledger-web/small/register2.png b/site/doc/0.27/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/0.27/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/0.27/images/linux.png b/site/doc/0.27/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/0.27/images/linux.png and /dev/null differ
diff --git a/site/doc/0.27/images/mac.png b/site/doc/0.27/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/0.27/images/mac.png and /dev/null differ
diff --git a/site/doc/0.27/images/manual.png b/site/doc/0.27/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/0.27/images/manual.png and /dev/null differ
diff --git a/site/doc/0.27/images/sshot.png b/site/doc/0.27/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/0.27/images/sshot.png and /dev/null differ
diff --git a/site/doc/0.27/images/watchhours.png b/site/doc/0.27/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/0.27/images/watchhours.png and /dev/null differ
diff --git a/site/doc/0.27/images/windows.png b/site/doc/0.27/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/0.27/images/windows.png and /dev/null differ
diff --git a/site/doc/0.27/manual.md b/site/doc/0.27/manual.md
deleted file mode 100644
index 2ef1f9565..000000000
--- a/site/doc/0.27/manual.md
+++ /dev/null
@@ -1,4052 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **0.27**.
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. See
-COMMANDS and EXAMPLES below.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-With the journal
-
-``` {.journal}
-2016/02/16 Member Fee Payment John Doe
- assets:bank account 2 EUR
- income:member fees -2 EUR
- ; member: John Doe
-```
-
-the --pivot comand will output the following:
-
-``` {.shells}
-$ hledger bal --pivot member
- 2 EUR assets:bank account
- -2 EUR member:John Doe
-```
-
-### OPTIONS
-
-To see general usage and the command list: `hledger -h` or just
-`hledger`. To see usage for a specific command: `hledger COMMAND -h`.
-
-hledger has several kinds of options:
-
-- General options are always available and can appear anywhere on the
- command line. `hledger -h` shows these. Eg: `hledger --version`.
-
-- Common reporting options are available with most commands. These and
- all other non-general options must be written after COMMAND.
- `hledger COMMAND -h` shows these. Eg: `hledger register --cleared`.
-
-- Command-specific options are also provided by some commands.
- `hledger COMMAND -h` shows these too. Eg:
- `hledger register --average`.
-
-- Some hledger commands come from separate [add-on
- executables](#commands), which have their own options.
- `hledger COMMAND -h` shows these, as usual. Such options, if not
- also supported by hledger, should be written following a double
- hyphen argument (`--`) so that hledger's option parser does
- not complain. Eg: `hledger ui -- --register=checking`. Or, you can
- just run the add-on directly: `hledger-ui --register=checking`.
-
-Command arguments may also follow the command name. In most cases these
-specify a [query](#queries) which filters the data. Command options and
-arguments can be intermixed.
-
-Option and argument values containing problematic characters should be
-escaped with double quotes, backslashes, or (best) single quotes. This
-means spaces, but also characters which are significant to your command
-shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant to the shell and also in [regular
-expressions](#regular-expressions), like parentheses, the pipe symbol
-and the dollar sign, must sometimes be double-escaped. Eg, to match the
-dollar symbol: `hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments being passed by hledger to an
-add-on executable get de-escaped once in the process. In this case you
-might need triple-escaping. Eg: `hledger ui cur:'\\$'` or
-`hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-- run add-on executables directly
-
-If you're really curious, add `--debug=2` for troubleshooting.
-
-#### General options
-
-Always available, can be written before or after COMMAND.
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-#### Reporting options
-
-Common reporting options, must be written after COMMAND.
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-If a reporting option occurs more than once on the command line, the
-last one takes precedence. Eg -p jan -p feb is equivalent to -p feb.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- -----------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ---------- ---------------------------------- -------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock timeclock files (precise time `.timeclock`
- ` logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- -----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. (Directives in one file will not affect the other
-files. If you need that, use the [include
-directive](#including-other-files) instead.)
-
-#### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- To match a regular expression metacharacter like `$` as a literal
- character, prepend a backslash. Eg to search for amounts with the
- dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped a second time, with
- single or double quotes or another backslash. Eg, to match amounts
- with the dollar sign from the command line, write `cur:'\$'` or
- `cur:\\$`.
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere
- in hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-#### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/data/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-#### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### print
-
-Show transactions from the journal.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full transactions from the journal file,
-tidily formatted and showing all amounts explicitly. The output of print
-is always a valid hledger journal, but it does always not preserve all
-original content exactly (eg directives).
-
-hledger's print command also shows all unit prices in effect, or (with
--B/--cost) shows cost amounts.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/data/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-Add-on commands are executables in your PATH whose name starts with
-`hledger-` and ends with any of these file extensions: none,
-`.hs`,`.lhs`,`.pl`,`.py`,`.rb`,`.rkt`,`.sh`,`.bat`,`.com`,`.exe`. Also,
-an add-on's name may not be the same as any built-in command or alias.
-
-hledger will detect these and include them in the command list and let
-you invoke them with `hledger ADDONCMD`. However there are some
-limitations:
-
-- Options appearing before ADDONCMD will be visible only to hledger
- and will not be passed to the add-on. Eg: `hledger -h web` shows
- hledger's usage, `hledger web -h` shows hledger-web's usage.
-- Options understood only by the add-on must go after a `--` argument
- to hide them from hledger, which would otherwise reject them. Eg:
- `hledger web -- --server`.
-
-Sometimes it may be more convenient to just run the add-on directly, eg:
-`hledger-web --server`.
-
-Add-ons which are written in haskell can take advantage of the
-hledger-lib library for journal parsing, reporting, command-line
-options, etc.
-
-Here are some hledger add-ons available from Hackage, the
-[extra](https://github.com/simonmichael/hledger/tree/master/extra)
-directory in the hledger source, or elsewhere:
-
-#### api
-
-Web API server, see [hledger-api](hledger-api.html).
-
-#### autosync
-
-Download OFX bank data and/or convert OFX to hledger journal format.
-
-``` {.shell}
-$ hledger autosync --help
-usage: hledger-autosync [-h] [-m MAX] [-r] [-a ACCOUNT] [-l LEDGER] [-i INDENT]
- [--initial] [--fid FID] [--assertions] [-d] [--hledger]
- [--slow] [--which]
- [PATH]
-
-Synchronize ledger.
-
-positional arguments:
- PATH do not sync; import from OFX file
-
-optional arguments:
- -h, --help show this help message and exit
- -m MAX, --max MAX maximum number of days to process
- -r, --resync do not stop until max days reached
- -a ACCOUNT, --account ACCOUNT
- set account name for import
- -l LEDGER, --ledger LEDGER
- specify ledger file to READ for syncing
- -i INDENT, --indent INDENT
- number of spaces to use for indentation
- --initial create initial balance entries
- --fid FID pass in fid value for OFX files that do not supply it
- --assertions create balance assertion entries
- -d, --debug enable debug logging
- --hledger force use of hledger (on by default if invoked as hledger-
- autosync)
- --slow use slow, but possibly more robust, method of calling ledger
- (no subprocess)
- --which display which version of ledger/hledger/ledger-python will
- be used by ledger-autosync to check for previous
- transactions
-$ head acct1.ofx
-OFXHEADER:100
-DATA:OFXSGML
-VERSION:102
-SECURITY:NONE
-ENCODING:USASCII
-CHARSET:1252
-COMPRESSION:NONE
-OLDFILEUID:NONE
-NEWFILEUIDe:8509488b59d1bb45
-
-$ hledger autosync acct1.ofx
-2013/08/30 MONTHLY SERVICE FEE
- ; ofxid: 3000.4303001832.201308301
- WF:4303001832 -$6.00
- [assets:business:bank:wf:bchecking:banking] $6.00
-```
-
-[ledger-autosync](https://bitbucket.org/egh/ledger-autosync/commits/all),
-which includes a `hledger-autosync` alias, downloads transactions from
-your bank(s) via OFX, and prints just the new ones as journal entries
-which you can add to your journal. It can also operate on .OFX files
-which you've downloaded manually. It can be a nice alternative to
-hledger's built-in CSV reader, especially if your bank supports OFX
-download.
-
-#### diff
-
-Show transactions present in one journal file but not another
-
-``` {.shell}
-$ hledger diff --help
-Usage: hledger-diff account:name left.journal right.journal
-$ cat a.journal
-1/1
- (acct:one) 1
-
-$ cat b.journal
-1/1
- (acct:one) 1
-2/2
- (acct:two) 2
-
-$ hledger diff acct:two a.journal b.journal
-Unmatched transactions in the first journal:
-
-Unmatched transactions in the second journal:
-
-2015/02/02
- (acct:two) $2
-```
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) compares
-two journal files. Given an account name, it prints out the transactions
-affecting that account which are in one journal file but not in the
-other. This can be useful for reconciling existing journals with bank
-statements.
-
-#### equity
-
-Print a journal entry that resets account balances to zero.
-
-``` {.shell}
-$ hledger balance --flat -E assets liabilities
- 0 assets:bank:checking
- $1 assets:bank:saving
- $-2 assets:cash
- $1 liabilities:debts
---------------------
- 0
-$ hledger equity assets liabilities
-2015/05/23
- assets:bank:saving $-1
- assets:cash $2
- liabilities:debts $-1
- equity:closing balances 0
-
-2015/05/23
- assets:bank:saving $1
- assets:cash $-2
- liabilities:debts $1
- equity:opening balances 0
-```
-
-This prints a journal entry which zeroes out the specified accounts (or
-all accounts) with a transfer to/from "equity:closing balances" (like
-Ledger's equity command). Also, it prints an similar entry with opposite
-sign for restoring the balances from "equity:opening balances".
-
-These can be useful for ending one journal file and starting a new one,
-respectively. By zeroing your asset and liability accounts at the end of
-a file and restoring them at the start of the next one, you will see
-correct asset/liability balances whether you run hledger on just one
-file, or on several files concatenated with [include](#include).
-
-#### interest
-
-Generate interest transactions.
-
-``` {.shell}
-$ hledger interest --help
-Usage: hledger-interest [OPTION...] ACCOUNT
- -h --help print this message and exit
- -V --version show version number and exit
- -v --verbose echo input ledger to stdout (default)
- -q --quiet don't echo input ledger to stdout
- --today compute interest up until today
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -s ACCOUNT --source=ACCOUNT interest source account
- -t ACCOUNT --target=ACCOUNT interest target account
- --act use 'act' day counting convention
- --30-360 use '30/360' day counting convention
- --30E-360 use '30E/360' day counting convention
- --30E-360isda use '30E/360isda' day counting convention
- --constant=RATE constant interest rate
- --annual=RATE annual interest rate
- --bgb288 compute interest according to German BGB288
- --ing-diba compute interest according for Ing-Diba Tagesgeld account
-```
-
-``` {.shell}
-$ cat interest.journal
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank
-```
-
-``` {.shell}
-$ hledger interest -- -f interest.journal --source=Expenses:Interest \
- --target=Liabilities:Bank --30-360 --annual=0.05 Liabilities:Bank
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank EUR -10000.00
-
-2008/11/27 0.05% interest for EUR -10000.00 over 61 days
- Liabilities:Bank EUR -84.72
- Expenses:Interest EUR 84.72
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank EUR 3771.12
-
-2008/12/31 0.05% interest for EUR -6313.60 over 34 days
- Liabilities:Bank EUR -29.81
- Expenses:Interest EUR 29.81
-
-2009/05/03 0.05% interest for EUR -6343.42 over 123 days
- Liabilities:Bank EUR -108.37
- Expenses:Interest EUR 108.37
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank EUR 1200.00
-
-2009/12/31 0.05% interest for EUR -5251.78 over 238 days
- Liabilities:Bank EUR -173.60
- Expenses:Interest EUR 173.60
-
-2010/12/10 0.05% interest for EUR -5425.38 over 340 days
- Liabilities:Bank EUR -256.20
- Expenses:Interest EUR 256.20
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank EUR 3700.00
-```
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-computes interests for a given account. Using command line flags, the
-program can be configured to use various schemes for day-counting, such
-as act/act, 30/360, 30E/360, and 30/360isda. Furthermore, it supports a
-(small) number of interest schemes, i.e. annual interest with a fixed
-rate and the scheme mandated by the German BGB288 (Basiszins für
-Verbrauchergeschäfte). See the package page for more.
-
-#### irr
-
-Calculate internal rate of return.
-
-``` {.shell}
-$ hledger irr --help
-Usage: hledger-irr [OPTION...]
- -h --help print this message and exit
- -V --version show version number and exit
- -c --cashflow also show all revant transactions
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -i ACCOUNT --investment-account=ACCOUNT investment account
- -t ACCOUNT --interest-account=ACCOUNT interest/gain/fees/losses account
- -b DATE --begin=DATE calculate interest from this date
- -e DATE --end=DATE calculate interest until this date
- -D --daily calculate interest for each day
- -W --weekly calculate interest for each week
- -M --monthly calculate interest for each month
- -Y --yearly calculate interest for each year
-```
-
-``` {.shell}
-$ cat irr.journal
-2011-01-01 Some wild speculation – I wonder if it pays off
- Speculation €100.00
- Cash
-
-2011-02-01 More speculation (and adjustment of value)
- Cash -€10.00
- Rate Gain -€1.00
- Speculation
-
-2011-03-01 Lets pull out some money (and adjustment of value)
- Cash €30.00
- Rate Gain -€3.00
- Speculation
-
-2011-04-01 More speculation (and it lost some money!)
- Cash -€50.00
- Rate Gain € 5.00
- Speculation
-
-2011-05-01 Getting some money out (and adjustment of value)
- Speculation -€44.00
- Rate Gain -€ 3.00
- Cash
-
-2011-06-01 Emptying the account (after adjusting the value)
- Speculation -€85.00
- Cash €90.00
- Rate Gain -€ 5.00
-```
-
-``` {.shell}
-$ hledger-irr -f irr.journal -t "Rate Gain" -i Speculation --monthly
-2011/01/01 - 2011/02/01: 12.49%
-2011/02/01 - 2011/03/01: 41.55%
-2011/03/01 - 2011/04/01: -51.44%
-2011/04/01 - 2011/05/01: 32.24%
-2011/05/01 - 2011/06/01: 95.92%
-```
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) computes
-the internal rate of return, also known as the effective interest rate,
-of a given investment. After specifying what account holds the
-investment, and what account stores the gains (or losses, or fees, or
-cost), it calculates the hypothetical annual rate of fixed rate
-investment that would have provided the exact same cash flow. See the
-package page for more.
-
-#### print-unique
-
-Print only only journal entries which have a unique description.
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-#### rewrite
-
-Prints all journal entries, adding specified custom postings to matched
-entries.
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-rewrite.hs),
-in hledger's extra directory (compilation optional), adds postings to
-existing transactions, optionally with an amount based on the existing
-transaction's first amount. See the script for more details.
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-```
-
-#### ui
-
-Curses-style interface, see [hledger-ui](hledger-ui.html).
-
-#### web
-
-Web interface, see [hledger-web](hledger-web.html).
-
-### TROUBLESHOOTING
-
-#### Run-time problems
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-#### Known limitations
-
-**Command line interface**
-
-Add-on command options, unless they are also understood by the main
-hledger executable, must be written after `--`, like this:
-`hledger web -- --server`
-
-**Differences from Ledger**
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-hledger is slower than Ledger, and uses more memory, on large data
-files.
-
-**Windows limitations**
-
-In a windows CMD window, non-ascii characters and colours are not
-supported.
-
-In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
-hledger add.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-hledger can't render non-ascii characters when run from a Windows
-command prompt (up to Windows 7 at least).
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-
-## hledger-ui
-
-This doc is for version **0.27**.
-
--
-
-
-
-
-
-
-
-
-
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data (and time) changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-`-V --value`
-: show amounts as their current market value in their default
- valuation commodity (accounts screen only)
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **0.27**.
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-
-
-
-
-
-
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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).
-
-``` {.shell}
-$ hledger web
-Starting web app on port 5000 with base url http://localhost:5000
-Starting web browser if possible
-Web app will auto-exit after a few minutes with no browsers (or press ctrl-c)
-```
-
-With `--serve`, it starts the web app in non-transient mode and logs
-requests to the console.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--server`
-: disable browser-opening and auto-exit-on-idle, and log all requests
- to stdout
-
-`--port=PORT`
-: set the TCP port to listen on (default: 5000)
-
-`--base-url=URL`
-: set the base url (default: http://localhost:PORT). You would change
- this when sharing over the network, or integrating within a
- larger website.
-
-`--file-url=URL`
-: 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.
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **0.27**.
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger-api --swagger`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`-p --port=PORT`
-: use a different TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **0.27**.
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction posting, you can record an amount's price in
-another commodity. This can be used to document the cost (for a
-purchase), or selling price (for a sale), or the exchange rate that was
-used, for this transaction. These transaction prices are fixed, and do
-not change over time.
-
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity, by using the
-[`--cost/-B`](hledger.html#reporting-options) flag supported by most
-hledger commands (mnemonic: "cost Basis").
-
-There are several ways to record a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-Some commands ([balance](hledger.html#market-value), currently) can use
-this information to show the market value of things at a given date.
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced (just the symbol, no quantity).
-UNITPRICE is an ordinary [amount](#amounts) (symbol and quantity) in a
-second commodity, specifying the unit price or conversion rate for the
-first commodity in terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-#### Tags
-
-A *tag* is a word followed by a full colon inside a transaction or
-posting [comment](#comments). You can write multiple tags, comma
-separated. Eg: `; a comment containing sometag:, anothertag:`. You can
-search for tags with the [`tag:` query](manual#queries).
-
-A tag can also have a value, which is any text between the colon and the
-next comma or newline, excluding leading/trailing whitespace. (So
-hledger tag values can not contain commas or newlines).
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (A, TAG2, third-tag)
-and the posting has four (A, TAG2, third-tag, posting-tag):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, this time with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [How to use account aliases](how-to-use-account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- ----------------------------------------------------
- Emacs
-
- Vim <https://github.com/ledger/ledger/wiki/Getting-st
- arte
- d>
-
- Sublime Text <https://github.com/ledger/ledger/wiki/Using-Subl
- ime-
- Text>
-
- Textmate <https://github.com/ledger/ledger/wiki/Using-Text
- Mate
- -2>
-
- Text Wrangler <https://github.com/ledger/ledger/wiki/Editing-Le
- dger
- -files-with-TextWrangler>
- ----------------- ----------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **0.27**.
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-### CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
-
-
-## timeclock format
-
-This doc is for version **0.27**.
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/data/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **0.27**.
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/data/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.0/.snapshot b/site/doc/1.0/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.0/csv.md b/site/doc/1.0/csv.md
deleted file mode 100644
index d10767653..000000000
--- a/site/doc/1.0/csv.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# csv format
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-## CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-## TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
diff --git a/site/doc/1.0/hledger-api.md b/site/doc/1.0/hledger-api.md
deleted file mode 100644
index 200e0d332..000000000
--- a/site/doc/1.0/hledger-api.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# hledger-api
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger-api --swagger`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on port 8001, or another specified with `-p PORT`.
-Note there is no built-in access control, so you will need to hide
-hledger-api behind an authenticating proxy if you want to restrict
-access.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`-p --port=PORT`
-: use a different TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.0/hledger-ui.md b/site/doc/1.0/hledger-ui.md
deleted file mode 100644
index 27ef5a7a9..000000000
--- a/site/doc/1.0/hledger-ui.md
+++ /dev/null
@@ -1,352 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--flat`
-: show full account names, unindented
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`-V --value`
-: show amounts as their current market value in their default
- valuation commodity (accounts screen only)
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. (To set a non-standard period, you can use `/`
-and a `date:` query).
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause. Also there is no visual
-indication that this is in progress.
-
-The register screen's switching between historic balance and running
-total based on query arguments may be confusing, and there is no column
-heading to indicate which is being displayed.
diff --git a/site/doc/1.0/hledger-web.md b/site/doc/1.0/hledger-web.md
deleted file mode 100644
index 5540c9735..000000000
--- a/site/doc/1.0/hledger-web.md
+++ /dev/null
@@ -1,232 +0,0 @@
-# hledger-web
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-
-
-
-
-
-
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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).
-
-``` {.shell}
-$ hledger web
-Starting web app on port 5000 with base url http://localhost:5000
-Starting web browser if possible
-Web app will auto-exit after a few minutes with no browsers (or press ctrl-c)
-```
-
-With `--server`, it starts the web app in non-transient mode and logs
-requests to the console. Typically when running hledger web as part of a
-website you'll want to use `--base-url` to set the
-protocol/hostname/port/path to be used in hyperlinks. The `--file-url`
-option allows static files to be served from a different url, eg for
-better caching or cookie-less serving.
-
-You can use `--port` to listen on a different TCP port, eg if you are
-running multiple hledger-web instances. This need not be the same as the
-PORT in the base url.
-
-Note there is no built-in access control, so you will need to hide
-hledger-web behind an authenticating proxy (such as apache or nginx) if
-you want to restrict who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--server`
-: disable browser-opening and auto-exit-on-idle, and log all requests
- to stdout
-
-`--port=PORT`
-: set the TCP port to listen on (default: 5000)
-
-`--base-url=URL`
-: set the base url (default: http://localhost:PORT). You would change
- this when sharing over the network, or integrating within a
- larger website.
-
-`--file-url=URL`
-: 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.
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.0/hledger.md b/site/doc/1.0/hledger.md
deleted file mode 100644
index d4fc64a61..000000000
--- a/site/doc/1.0/hledger.md
+++ /dev/null
@@ -1,1989 +0,0 @@
-# hledger
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. See
-COMMANDS and EXAMPLES below.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-With the journal
-
-``` {.journal}
-2016/02/16 Member Fee Payment John Doe
- assets:bank account 2 EUR
- income:member fees -2 EUR
- ; member: John Doe
-```
-
-the --pivot comand will output the following:
-
-``` {.shells}
-$ hledger bal --pivot member
- 2 EUR assets:bank account
- -2 EUR member:John Doe
-```
-
-## OPTIONS
-
-To see general usage and the command list: `hledger -h` or just
-`hledger`. To see usage for a specific command: `hledger COMMAND -h`.
-
-hledger has several kinds of options:
-
-- General options are always available and can appear anywhere on the
- command line. `hledger -h` shows these. Eg: `hledger --version`.
-
-- Common reporting options are available with most commands. These and
- all other non-general options must be written after COMMAND.
- `hledger COMMAND -h` shows these. Eg: `hledger register --cleared`.
-
-- Command-specific options are also provided by some commands.
- `hledger COMMAND -h` shows these too. Eg:
- `hledger register --average`.
-
-- Some hledger commands come from separate [add-on
- executables](#commands), which have their own options.
- `hledger COMMAND -h` shows these, as usual. Such options, if not
- also supported by hledger, should be written following a double
- hyphen argument (`--`) so that hledger's option parser does not
- complain. Eg: `hledger ui -- --register=checking`. Or, you can just
- run the add-on directly: `hledger-ui --register=checking`.
-
-Command arguments may also follow the command name. In most cases these
-specify a [query](#queries) which filters the data. Command options and
-arguments can be intermixed.
-
-Option and argument values containing problematic characters should be
-escaped with double quotes, backslashes, or (best) single quotes. This
-means spaces, but also characters which are significant to your command
-shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant to the shell and also in [regular
-expressions](#regular-expressions), like parentheses, the pipe symbol
-and the dollar sign, must sometimes be double-escaped. Eg, to match the
-dollar symbol: `hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments being passed by hledger to an
-add-on executable get de-escaped once in the process. In this case you
-might need triple-escaping. Eg: `hledger ui cur:'\\$'` or
-`hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-- run add-on executables directly
-
-If you're really curious, add `--debug=2` for troubleshooting.
-
-**General options:**
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-**Common reporting options:**
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### Multiple files
-
-You can specify multiple `-f/--file FILE` options. This is like
-combining all the files into one, except they can have different
-formats. Also directives and aliases in one file do not affect
-subsequent files (if you need that, use the [include
-directive](#including-other-files) instead).
-
-### Repeated options
-
-Otherwise, if a reporting option is repeated, the last one takes
-precedence. Eg -p jan -p feb is equivalent to -p feb.
-
-### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a period expression.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- To match a regular expression metacharacter like `$` as a literal
- character, prepend a backslash. Eg to search for amounts with the
- dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped a second time, with
- single or double quotes or another backslash. Eg, to match amounts
- with the dollar sign from the command line, write `cur:'\$'` or
- `cur:\\$`.
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere
- in hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/data/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-V --value`
-: convert amounts to current market value in their default valuation
- commodity
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-#### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-#### Market value
-
-The `-V/--value` flag converts all the reported amounts to their
-"current market value" using their default market price. That is the
-latest [market price](#market-prices) (P directive) found in the journal
-(or an included file), for the amount's commodity, dated on or before
-the report end date.
-
-Unlike Ledger, hledger's -V only uses the market prices recorded with P
-directives, ignoring transaction prices recorded as part of posting
-amounts (which -B/--cost uses). Using -B and -V together is allowed.
-
-#### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-### incomestatement
-
-Show an income statement. Alias: is.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### print
-
-Show transactions from the journal.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full transactions from the journal file,
-tidily formatted and showing all amounts explicitly. The output of print
-is always a valid hledger journal, but it does always not preserve all
-original content exactly (eg directives).
-
-hledger's print command also shows all unit prices in effect, or (with
--B/--cost) shows cost amounts.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/data/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-Add-on commands are executables in your PATH whose name starts with
-`hledger-` and ends with any of these file extensions: none,
-`.hs`,`.lhs`,`.pl`,`.py`,`.rb`,`.rkt`,`.sh`,`.bat`,`.com`,`.exe`. Also,
-an add-on's name may not be the same as any built-in command or alias.
-
-hledger will detect these and include them in the command list and let
-you invoke them with `hledger ADDONCMD`. However there are some
-limitations:
-
-- Options appearing before ADDONCMD will be visible only to hledger
- and will not be passed to the add-on. Eg: `hledger -h web` shows
- hledger's usage, `hledger web -h` shows hledger-web's usage.
-- Options understood only by the add-on must go after a `--` argument
- to hide them from hledger, which would otherwise reject them. Eg:
- `hledger web -- --server`.
-
-Sometimes it may be more convenient to just run the add-on directly, eg:
-`hledger-web --server`.
-
-Add-ons which are written in haskell can take advantage of the
-hledger-lib library for journal parsing, reporting, command-line
-options, etc.
-
-Here are some hledger add-ons available from Hackage, the
-[extra](https://github.com/simonmichael/hledger/tree/master/extra)
-directory in the hledger source, or elsewhere:
-
-### api
-
-Web API server, see [hledger-api](hledger-api.html).
-
-### autosync
-
-Download OFX bank data and/or convert OFX to hledger journal format.
-
-``` {.shell}
-$ hledger autosync --help
-usage: hledger-autosync [-h] [-m MAX] [-r] [-a ACCOUNT] [-l LEDGER] [-i INDENT]
- [--initial] [--fid FID] [--assertions] [-d] [--hledger]
- [--slow] [--which]
- [PATH]
-
-Synchronize ledger.
-
-positional arguments:
- PATH do not sync; import from OFX file
-
-optional arguments:
- -h, --help show this help message and exit
- -m MAX, --max MAX maximum number of days to process
- -r, --resync do not stop until max days reached
- -a ACCOUNT, --account ACCOUNT
- set account name for import
- -l LEDGER, --ledger LEDGER
- specify ledger file to READ for syncing
- -i INDENT, --indent INDENT
- number of spaces to use for indentation
- --initial create initial balance entries
- --fid FID pass in fid value for OFX files that do not supply it
- --assertions create balance assertion entries
- -d, --debug enable debug logging
- --hledger force use of hledger (on by default if invoked as hledger-
- autosync)
- --slow use slow, but possibly more robust, method of calling ledger
- (no subprocess)
- --which display which version of ledger/hledger/ledger-python will
- be used by ledger-autosync to check for previous
- transactions
-$ head acct1.ofx
-OFXHEADER:100
-DATA:OFXSGML
-VERSION:102
-SECURITY:NONE
-ENCODING:USASCII
-CHARSET:1252
-COMPRESSION:NONE
-OLDFILEUID:NONE
-NEWFILEUIDe:8509488b59d1bb45
-
-$ hledger autosync acct1.ofx
-2013/08/30 MONTHLY SERVICE FEE
- ; ofxid: 3000.4303001832.201308301
- WF:4303001832 -$6.00
- [assets:business:bank:wf:bchecking:banking] $6.00
-```
-
-[ledger-autosync](https://bitbucket.org/egh/ledger-autosync/commits/all),
-which includes a `hledger-autosync` alias, downloads transactions from
-your bank(s) via OFX, and prints just the new ones as journal entries
-which you can add to your journal. It can also operate on .OFX files
-which you've downloaded manually. It can be a nice alternative to
-hledger's built-in CSV reader, especially if your bank supports OFX
-download.
-
-### diff
-
-Show transactions present in one journal file but not another
-
-``` {.shell}
-$ hledger diff --help
-Usage: hledger-diff account:name left.journal right.journal
-$ cat a.journal
-1/1
- (acct:one) 1
-
-$ cat b.journal
-1/1
- (acct:one) 1
-2/2
- (acct:two) 2
-
-$ hledger diff acct:two a.journal b.journal
-Unmatched transactions in the first journal:
-
-Unmatched transactions in the second journal:
-
-2015/02/02
- (acct:two) $2
-```
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) compares
-two journal files. Given an account name, it prints out the transactions
-affecting that account which are in one journal file but not in the
-other. This can be useful for reconciling existing journals with bank
-statements.
-
-### equity
-
-Print a journal entry that resets account balances to zero.
-
-``` {.shell}
-$ hledger balance --flat -E assets liabilities
- 0 assets:bank:checking
- $1 assets:bank:saving
- $-2 assets:cash
- $1 liabilities:debts
---------------------
- 0
-$ hledger equity assets liabilities
-2015/05/23
- assets:bank:saving $-1
- assets:cash $2
- liabilities:debts $-1
- equity:closing balances 0
-
-2015/05/23
- assets:bank:saving $1
- assets:cash $-2
- liabilities:debts $1
- equity:opening balances 0
-```
-
-This prints a journal entry which zeroes out the specified accounts (or
-all accounts) with a transfer to/from "equity:closing balances" (like
-Ledger's equity command). Also, it prints an similar entry with opposite
-sign for restoring the balances from "equity:opening balances".
-
-These can be useful for ending one journal file and starting a new one,
-respectively. By zeroing your asset and liability accounts at the end of
-a file and restoring them at the start of the next one, you will see
-correct asset/liability balances whether you run hledger on just one
-file, or on several files concatenated with [include](#include).
-
-### interest
-
-Generate interest transactions.
-
-``` {.shell}
-$ hledger interest --help
-Usage: hledger-interest [OPTION...] ACCOUNT
- -h --help print this message and exit
- -V --version show version number and exit
- -v --verbose echo input ledger to stdout (default)
- -q --quiet don't echo input ledger to stdout
- --today compute interest up until today
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -s ACCOUNT --source=ACCOUNT interest source account
- -t ACCOUNT --target=ACCOUNT interest target account
- --act use 'act' day counting convention
- --30-360 use '30/360' day counting convention
- --30E-360 use '30E/360' day counting convention
- --30E-360isda use '30E/360isda' day counting convention
- --constant=RATE constant interest rate
- --annual=RATE annual interest rate
- --bgb288 compute interest according to German BGB288
- --ing-diba compute interest according for Ing-Diba Tagesgeld account
-```
-
-``` {.shell}
-$ cat interest.journal
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank
-```
-
-``` {.shell}
-$ hledger interest -- -f interest.journal --source=Expenses:Interest \
- --target=Liabilities:Bank --30-360 --annual=0.05 Liabilities:Bank
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank EUR -10000.00
-
-2008/11/27 0.05% interest for EUR -10000.00 over 61 days
- Liabilities:Bank EUR -84.72
- Expenses:Interest EUR 84.72
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank EUR 3771.12
-
-2008/12/31 0.05% interest for EUR -6313.60 over 34 days
- Liabilities:Bank EUR -29.81
- Expenses:Interest EUR 29.81
-
-2009/05/03 0.05% interest for EUR -6343.42 over 123 days
- Liabilities:Bank EUR -108.37
- Expenses:Interest EUR 108.37
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank EUR 1200.00
-
-2009/12/31 0.05% interest for EUR -5251.78 over 238 days
- Liabilities:Bank EUR -173.60
- Expenses:Interest EUR 173.60
-
-2010/12/10 0.05% interest for EUR -5425.38 over 340 days
- Liabilities:Bank EUR -256.20
- Expenses:Interest EUR 256.20
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank EUR 3700.00
-```
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-computes interests for a given account. Using command line flags, the
-program can be configured to use various schemes for day-counting, such
-as act/act, 30/360, 30E/360, and 30/360isda. Furthermore, it supports a
-(small) number of interest schemes, i.e. annual interest with a fixed
-rate and the scheme mandated by the German BGB288 (Basiszins für
-Verbrauchergeschäfte). See the package page for more.
-
-### irr
-
-Calculate internal rate of return.
-
-``` {.shell}
-$ hledger irr --help
-Usage: hledger-irr [OPTION...]
- -h --help print this message and exit
- -V --version show version number and exit
- -c --cashflow also show all revant transactions
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -i ACCOUNT --investment-account=ACCOUNT investment account
- -t ACCOUNT --interest-account=ACCOUNT interest/gain/fees/losses account
- -b DATE --begin=DATE calculate interest from this date
- -e DATE --end=DATE calculate interest until this date
- -D --daily calculate interest for each day
- -W --weekly calculate interest for each week
- -M --monthly calculate interest for each month
- -Y --yearly calculate interest for each year
-```
-
-``` {.shell}
-$ cat irr.journal
-2011-01-01 Some wild speculation – I wonder if it pays off
- Speculation €100.00
- Cash
-
-2011-02-01 More speculation (and adjustment of value)
- Cash -€10.00
- Rate Gain -€1.00
- Speculation
-
-2011-03-01 Lets pull out some money (and adjustment of value)
- Cash €30.00
- Rate Gain -€3.00
- Speculation
-
-2011-04-01 More speculation (and it lost some money!)
- Cash -€50.00
- Rate Gain € 5.00
- Speculation
-
-2011-05-01 Getting some money out (and adjustment of value)
- Speculation -€44.00
- Rate Gain -€ 3.00
- Cash
-
-2011-06-01 Emptying the account (after adjusting the value)
- Speculation -€85.00
- Cash €90.00
- Rate Gain -€ 5.00
-```
-
-``` {.shell}
-$ hledger-irr -f irr.journal -t "Rate Gain" -i Speculation --monthly
-2011/01/01 - 2011/02/01: 12.49%
-2011/02/01 - 2011/03/01: 41.55%
-2011/03/01 - 2011/04/01: -51.44%
-2011/04/01 - 2011/05/01: 32.24%
-2011/05/01 - 2011/06/01: 95.92%
-```
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) computes
-the internal rate of return, also known as the effective interest rate,
-of a given investment. After specifying what account holds the
-investment, and what account stores the gains (or losses, or fees, or
-cost), it calculates the hypothetical annual rate of fixed rate
-investment that would have provided the exact same cash flow. See the
-package page for more.
-
-### print-unique
-
-Print only only journal entries which have a unique description.
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-### rewrite
-
-Prints all journal entries, adding specified custom postings to matched
-entries.
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-rewrite.hs),
-in hledger's extra directory (compilation optional), adds postings to
-existing transactions, optionally with an amount based on the existing
-transaction's first amount. See the script for more details.
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-```
-
-### ui
-
-Curses-style interface, see [hledger-ui](hledger-ui.html).
-
-### web
-
-Web interface, see [hledger-web](hledger-web.html).
-
-## TROUBLESHOOTING
-
-### Run-time problems
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-### Known limitations
-
-**Command line interface**
-
-Add-on command options, unless they are also understood by the main
-hledger executable, must be written after `--`, like this:
-`hledger web -- --server`
-
-**Differences from Ledger**
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-hledger is slower than Ledger, and uses more memory, on large data
-files.
-
-**Windows limitations**
-
-In a windows CMD window, non-ascii characters and colours are not
-supported.
-
-In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
-hledger add.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-hledger can't render non-ascii characters when run from a Windows
-command prompt (up to Windows 7 at least).
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
diff --git a/site/doc/1.0/images/balance-q-inc.png b/site/doc/1.0/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.0/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.0/images/coins.svg b/site/doc/1.0/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.0/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.0/images/coins2-248.png b/site/doc/1.0/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.0/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.0/images/coins2.png b/site/doc/1.0/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.0/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.0/images/data-model.png b/site/doc/1.0/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.0/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-charts-2.png b/site/doc/1.0/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.0/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-lib-api.png b/site/doc/1.0/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/1.0/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-screen-1.png b/site/doc/1.0/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.0/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.0/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.0/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.0/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web-journal.png b/site/doc/1.0/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.0/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/add.png b/site/doc/1.0/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/help.png b/site/doc/1.0/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/help2.png b/site/doc/1.0/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.0/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/journal.png b/site/doc/1.0/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/journal2.png b/site/doc/1.0/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/normal/register.png b/site/doc/1.0/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.0/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/add.png b/site/doc/1.0/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/help.png b/site/doc/1.0/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/help2.png b/site/doc/1.0/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/journal-sidebar.png b/site/doc/1.0/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.0/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/journal.png b/site/doc/1.0/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/journal2.png b/site/doc/1.0/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/register.png b/site/doc/1.0/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.0/images/hledger-web/small/register2.png b/site/doc/1.0/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.0/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.0/images/linux.png b/site/doc/1.0/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.0/images/linux.png and /dev/null differ
diff --git a/site/doc/1.0/images/mac.png b/site/doc/1.0/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.0/images/mac.png and /dev/null differ
diff --git a/site/doc/1.0/images/manual.png b/site/doc/1.0/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.0/images/manual.png and /dev/null differ
diff --git a/site/doc/1.0/images/sshot.png b/site/doc/1.0/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.0/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.0/images/watchhours.png b/site/doc/1.0/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.0/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.0/images/windows.png b/site/doc/1.0/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.0/images/windows.png and /dev/null differ
diff --git a/site/doc/1.0/journal.md b/site/doc/1.0/journal.md
deleted file mode 100644
index 505334672..000000000
--- a/site/doc/1.0/journal.md
+++ /dev/null
@@ -1,793 +0,0 @@
-# journal format
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or double-quoted phrase, on the
- left or right, with or without a separating space
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports ledger-style [balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Prices
-
-#### Transaction prices
-
-When recording a transaction, you can also record an amount's price in
-another commodity. This documents the exchange rate, cost (of a
-purchase), or selling price (of a sale) that was in effect within this
-particular transaction (or more precisely, within the particular
-posting). These transaction prices are fixed, and do not change.
-
-Such priced amounts can be displayed in their transaction price's
-commodity, by using the `--cost/-B` flag (B for "cost Basis"), supported
-by most hledger commands.
-
-There are three ways to specify a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities, usually from some
-public market which publishes such rates.
-
-When market prices are known, the `-V/--value` option will use them to
-convert reported amounts to their market value as of the report end
-date. This option is currently available only with the
-[balance](#balance) command.
-
-You record market prices (Ledger calls them historical prices) with a P
-directive, in the journal or perhaps in a separate
-[included](#including-other-files) file. Market price directives have
-the format:
-
-``` {.journal}
-P DATE COMMODITYSYMBOL UNITPRICE
-```
-
-
-For example, the following directives say that the euro's exchange rate
-was 1.35 US dollars during 2009, and \$1.40 from 2010 onward (and
-unknown before 2009).
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-Example use for market prices: tracking the value of stocks.
-
-
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-### Tags
-
-A *tag* is a word followed by a full colon inside a transaction or
-posting [comment](#comments). You can write multiple tags, comma
-separated. Eg: `; a comment containing sometag:, anothertag:`. You can
-search for tags with the [`tag:` query](manual#queries).
-
-A tag can also have a value, which is any text between the colon and the
-next comma or newline, excluding leading/trailing whitespace. (So
-hledger tag values can not contain commas or newlines).
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (A, TAG2, third-tag)
-and the posting has four (A, TAG2, third-tag, posting-tag):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, this time with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-#### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [How to use account aliases](how-to-use-account-aliases.html).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-#### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-#### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- -----------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text Wrangler
- ----------------- -----------------------------------------------------
-
-
-
diff --git a/site/doc/1.0/manual.md b/site/doc/1.0/manual.md
deleted file mode 100644
index 514ee2097..000000000
--- a/site/doc/1.0/manual.md
+++ /dev/null
@@ -1,3871 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **1.0**.
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. See
-COMMANDS and EXAMPLES below.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-With the journal
-
-``` {.journal}
-2016/02/16 Member Fee Payment John Doe
- assets:bank account 2 EUR
- income:member fees -2 EUR
- ; member: John Doe
-```
-
-the --pivot comand will output the following:
-
-``` {.shells}
-$ hledger bal --pivot member
- 2 EUR assets:bank account
- -2 EUR member:John Doe
-```
-
-### OPTIONS
-
-To see general usage and the command list: `hledger -h` or just
-`hledger`. To see usage for a specific command: `hledger COMMAND -h`.
-
-hledger has several kinds of options:
-
-- General options are always available and can appear anywhere on the
- command line. `hledger -h` shows these. Eg: `hledger --version`.
-
-- Common reporting options are available with most commands. These and
- all other non-general options must be written after COMMAND.
- `hledger COMMAND -h` shows these. Eg: `hledger register --cleared`.
-
-- Command-specific options are also provided by some commands.
- `hledger COMMAND -h` shows these too. Eg:
- `hledger register --average`.
-
-- Some hledger commands come from separate [add-on
- executables](#commands), which have their own options.
- `hledger COMMAND -h` shows these, as usual. Such options, if not
- also supported by hledger, should be written following a double
- hyphen argument (`--`) so that hledger's option parser does
- not complain. Eg: `hledger ui -- --register=checking`. Or, you can
- just run the add-on directly: `hledger-ui --register=checking`.
-
-Command arguments may also follow the command name. In most cases these
-specify a [query](#queries) which filters the data. Command options and
-arguments can be intermixed.
-
-Option and argument values containing problematic characters should be
-escaped with double quotes, backslashes, or (best) single quotes. This
-means spaces, but also characters which are significant to your command
-shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant to the shell and also in [regular
-expressions](#regular-expressions), like parentheses, the pipe symbol
-and the dollar sign, must sometimes be double-escaped. Eg, to match the
-dollar symbol: `hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments being passed by hledger to an
-add-on executable get de-escaped once in the process. In this case you
-might need triple-escaping. Eg: `hledger ui cur:'\\$'` or
-`hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-- run add-on executables directly
-
-If you're really curious, add `--debug=2` for troubleshooting.
-
-**General options:**
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-**Common reporting options:**
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-#### Multiple files
-
-You can specify multiple `-f/--file FILE` options. This is like
-combining all the files into one, except they can have different
-formats. Also directives and aliases in one file do not affect
-subsequent files (if you need that, use the [include
-directive](#including-other-files) instead).
-
-#### Repeated options
-
-Otherwise, if a reporting option is repeated, the last one takes
-precedence. Eg -p jan -p feb is equivalent to -p feb.
-
-#### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a period expression.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- To match a regular expression metacharacter like `$` as a literal
- character, prepend a backslash. Eg to search for amounts with the
- dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped a second time, with
- single or double quotes or another backslash. Eg, to match amounts
- with the dollar sign from the command line, write `cur:'\$'` or
- `cur:\\$`.
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere
- in hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-#### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/data/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-V --value`
-: convert amounts to current market value in their default valuation
- commodity
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Market value
-
-The `-V/--value` flag converts all the reported amounts to their
-"current market value" using their default market price. That is the
-latest [market price](#market-prices) (P directive) found in the journal
-(or an included file), for the amount's commodity, dated on or before
-the report end date.
-
-Unlike Ledger, hledger's -V only uses the market prices recorded with P
-directives, ignoring transaction prices recorded as part of posting
-amounts (which -B/--cost uses). Using -B and -V together is allowed.
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-#### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### print
-
-Show transactions from the journal.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full transactions from the journal file,
-tidily formatted and showing all amounts explicitly. The output of print
-is always a valid hledger journal, but it does always not preserve all
-original content exactly (eg directives).
-
-hledger's print command also shows all unit prices in effect, or (with
--B/--cost) shows cost amounts.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/data/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-Add-on commands are executables in your PATH whose name starts with
-`hledger-` and ends with any of these file extensions: none,
-`.hs`,`.lhs`,`.pl`,`.py`,`.rb`,`.rkt`,`.sh`,`.bat`,`.com`,`.exe`. Also,
-an add-on's name may not be the same as any built-in command or alias.
-
-hledger will detect these and include them in the command list and let
-you invoke them with `hledger ADDONCMD`. However there are some
-limitations:
-
-- Options appearing before ADDONCMD will be visible only to hledger
- and will not be passed to the add-on. Eg: `hledger -h web` shows
- hledger's usage, `hledger web -h` shows hledger-web's usage.
-- Options understood only by the add-on must go after a `--` argument
- to hide them from hledger, which would otherwise reject them. Eg:
- `hledger web -- --server`.
-
-Sometimes it may be more convenient to just run the add-on directly, eg:
-`hledger-web --server`.
-
-Add-ons which are written in haskell can take advantage of the
-hledger-lib library for journal parsing, reporting, command-line
-options, etc.
-
-Here are some hledger add-ons available from Hackage, the
-[extra](https://github.com/simonmichael/hledger/tree/master/extra)
-directory in the hledger source, or elsewhere:
-
-#### api
-
-Web API server, see [hledger-api](hledger-api.html).
-
-#### autosync
-
-Download OFX bank data and/or convert OFX to hledger journal format.
-
-``` {.shell}
-$ hledger autosync --help
-usage: hledger-autosync [-h] [-m MAX] [-r] [-a ACCOUNT] [-l LEDGER] [-i INDENT]
- [--initial] [--fid FID] [--assertions] [-d] [--hledger]
- [--slow] [--which]
- [PATH]
-
-Synchronize ledger.
-
-positional arguments:
- PATH do not sync; import from OFX file
-
-optional arguments:
- -h, --help show this help message and exit
- -m MAX, --max MAX maximum number of days to process
- -r, --resync do not stop until max days reached
- -a ACCOUNT, --account ACCOUNT
- set account name for import
- -l LEDGER, --ledger LEDGER
- specify ledger file to READ for syncing
- -i INDENT, --indent INDENT
- number of spaces to use for indentation
- --initial create initial balance entries
- --fid FID pass in fid value for OFX files that do not supply it
- --assertions create balance assertion entries
- -d, --debug enable debug logging
- --hledger force use of hledger (on by default if invoked as hledger-
- autosync)
- --slow use slow, but possibly more robust, method of calling ledger
- (no subprocess)
- --which display which version of ledger/hledger/ledger-python will
- be used by ledger-autosync to check for previous
- transactions
-$ head acct1.ofx
-OFXHEADER:100
-DATA:OFXSGML
-VERSION:102
-SECURITY:NONE
-ENCODING:USASCII
-CHARSET:1252
-COMPRESSION:NONE
-OLDFILEUID:NONE
-NEWFILEUIDe:8509488b59d1bb45
-
-$ hledger autosync acct1.ofx
-2013/08/30 MONTHLY SERVICE FEE
- ; ofxid: 3000.4303001832.201308301
- WF:4303001832 -$6.00
- [assets:business:bank:wf:bchecking:banking] $6.00
-```
-
-[ledger-autosync](https://bitbucket.org/egh/ledger-autosync/commits/all),
-which includes a `hledger-autosync` alias, downloads transactions from
-your bank(s) via OFX, and prints just the new ones as journal entries
-which you can add to your journal. It can also operate on .OFX files
-which you've downloaded manually. It can be a nice alternative to
-hledger's built-in CSV reader, especially if your bank supports OFX
-download.
-
-#### diff
-
-Show transactions present in one journal file but not another
-
-``` {.shell}
-$ hledger diff --help
-Usage: hledger-diff account:name left.journal right.journal
-$ cat a.journal
-1/1
- (acct:one) 1
-
-$ cat b.journal
-1/1
- (acct:one) 1
-2/2
- (acct:two) 2
-
-$ hledger diff acct:two a.journal b.journal
-Unmatched transactions in the first journal:
-
-Unmatched transactions in the second journal:
-
-2015/02/02
- (acct:two) $2
-```
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) compares
-two journal files. Given an account name, it prints out the transactions
-affecting that account which are in one journal file but not in the
-other. This can be useful for reconciling existing journals with bank
-statements.
-
-#### equity
-
-Print a journal entry that resets account balances to zero.
-
-``` {.shell}
-$ hledger balance --flat -E assets liabilities
- 0 assets:bank:checking
- $1 assets:bank:saving
- $-2 assets:cash
- $1 liabilities:debts
---------------------
- 0
-$ hledger equity assets liabilities
-2015/05/23
- assets:bank:saving $-1
- assets:cash $2
- liabilities:debts $-1
- equity:closing balances 0
-
-2015/05/23
- assets:bank:saving $1
- assets:cash $-2
- liabilities:debts $1
- equity:opening balances 0
-```
-
-This prints a journal entry which zeroes out the specified accounts (or
-all accounts) with a transfer to/from "equity:closing balances" (like
-Ledger's equity command). Also, it prints an similar entry with opposite
-sign for restoring the balances from "equity:opening balances".
-
-These can be useful for ending one journal file and starting a new one,
-respectively. By zeroing your asset and liability accounts at the end of
-a file and restoring them at the start of the next one, you will see
-correct asset/liability balances whether you run hledger on just one
-file, or on several files concatenated with [include](#include).
-
-#### interest
-
-Generate interest transactions.
-
-``` {.shell}
-$ hledger interest --help
-Usage: hledger-interest [OPTION...] ACCOUNT
- -h --help print this message and exit
- -V --version show version number and exit
- -v --verbose echo input ledger to stdout (default)
- -q --quiet don't echo input ledger to stdout
- --today compute interest up until today
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -s ACCOUNT --source=ACCOUNT interest source account
- -t ACCOUNT --target=ACCOUNT interest target account
- --act use 'act' day counting convention
- --30-360 use '30/360' day counting convention
- --30E-360 use '30E/360' day counting convention
- --30E-360isda use '30E/360isda' day counting convention
- --constant=RATE constant interest rate
- --annual=RATE annual interest rate
- --bgb288 compute interest according to German BGB288
- --ing-diba compute interest according for Ing-Diba Tagesgeld account
-```
-
-``` {.shell}
-$ cat interest.journal
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank
-```
-
-``` {.shell}
-$ hledger interest -- -f interest.journal --source=Expenses:Interest \
- --target=Liabilities:Bank --30-360 --annual=0.05 Liabilities:Bank
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank EUR -10000.00
-
-2008/11/27 0.05% interest for EUR -10000.00 over 61 days
- Liabilities:Bank EUR -84.72
- Expenses:Interest EUR 84.72
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank EUR 3771.12
-
-2008/12/31 0.05% interest for EUR -6313.60 over 34 days
- Liabilities:Bank EUR -29.81
- Expenses:Interest EUR 29.81
-
-2009/05/03 0.05% interest for EUR -6343.42 over 123 days
- Liabilities:Bank EUR -108.37
- Expenses:Interest EUR 108.37
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank EUR 1200.00
-
-2009/12/31 0.05% interest for EUR -5251.78 over 238 days
- Liabilities:Bank EUR -173.60
- Expenses:Interest EUR 173.60
-
-2010/12/10 0.05% interest for EUR -5425.38 over 340 days
- Liabilities:Bank EUR -256.20
- Expenses:Interest EUR 256.20
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank EUR 3700.00
-```
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-computes interests for a given account. Using command line flags, the
-program can be configured to use various schemes for day-counting, such
-as act/act, 30/360, 30E/360, and 30/360isda. Furthermore, it supports a
-(small) number of interest schemes, i.e. annual interest with a fixed
-rate and the scheme mandated by the German BGB288 (Basiszins für
-Verbrauchergeschäfte). See the package page for more.
-
-#### irr
-
-Calculate internal rate of return.
-
-``` {.shell}
-$ hledger irr --help
-Usage: hledger-irr [OPTION...]
- -h --help print this message and exit
- -V --version show version number and exit
- -c --cashflow also show all revant transactions
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -i ACCOUNT --investment-account=ACCOUNT investment account
- -t ACCOUNT --interest-account=ACCOUNT interest/gain/fees/losses account
- -b DATE --begin=DATE calculate interest from this date
- -e DATE --end=DATE calculate interest until this date
- -D --daily calculate interest for each day
- -W --weekly calculate interest for each week
- -M --monthly calculate interest for each month
- -Y --yearly calculate interest for each year
-```
-
-``` {.shell}
-$ cat irr.journal
-2011-01-01 Some wild speculation – I wonder if it pays off
- Speculation €100.00
- Cash
-
-2011-02-01 More speculation (and adjustment of value)
- Cash -€10.00
- Rate Gain -€1.00
- Speculation
-
-2011-03-01 Lets pull out some money (and adjustment of value)
- Cash €30.00
- Rate Gain -€3.00
- Speculation
-
-2011-04-01 More speculation (and it lost some money!)
- Cash -€50.00
- Rate Gain € 5.00
- Speculation
-
-2011-05-01 Getting some money out (and adjustment of value)
- Speculation -€44.00
- Rate Gain -€ 3.00
- Cash
-
-2011-06-01 Emptying the account (after adjusting the value)
- Speculation -€85.00
- Cash €90.00
- Rate Gain -€ 5.00
-```
-
-``` {.shell}
-$ hledger-irr -f irr.journal -t "Rate Gain" -i Speculation --monthly
-2011/01/01 - 2011/02/01: 12.49%
-2011/02/01 - 2011/03/01: 41.55%
-2011/03/01 - 2011/04/01: -51.44%
-2011/04/01 - 2011/05/01: 32.24%
-2011/05/01 - 2011/06/01: 95.92%
-```
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) computes
-the internal rate of return, also known as the effective interest rate,
-of a given investment. After specifying what account holds the
-investment, and what account stores the gains (or losses, or fees, or
-cost), it calculates the hypothetical annual rate of fixed rate
-investment that would have provided the exact same cash flow. See the
-package page for more.
-
-#### print-unique
-
-Print only only journal entries which have a unique description.
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-#### rewrite
-
-Prints all journal entries, adding specified custom postings to matched
-entries.
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-rewrite.hs),
-in hledger's extra directory (compilation optional), adds postings to
-existing transactions, optionally with an amount based on the existing
-transaction's first amount. See the script for more details.
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-```
-
-#### ui
-
-Curses-style interface, see [hledger-ui](hledger-ui.html).
-
-#### web
-
-Web interface, see [hledger-web](hledger-web.html).
-
-### TROUBLESHOOTING
-
-#### Run-time problems
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-#### Known limitations
-
-**Command line interface**
-
-Add-on command options, unless they are also understood by the main
-hledger executable, must be written after `--`, like this:
-`hledger web -- --server`
-
-**Differences from Ledger**
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-hledger is slower than Ledger, and uses more memory, on large data
-files.
-
-**Windows limitations**
-
-In a windows CMD window, non-ascii characters and colours are not
-supported.
-
-In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
-hledger add.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-hledger can't render non-ascii characters when run from a Windows
-command prompt (up to Windows 7 at least).
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-
-## hledger-ui
-
-This doc is for version **1.0**.
-
--
-
-
-
-
-
-
-
-
-
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--flat`
-: show full account names, unindented
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`-V --value`
-: show amounts as their current market value in their default
- valuation commodity (accounts screen only)
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. (To set a non-standard period, you can use `/`
-and a `date:` query).
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause. Also there is no visual
-indication that this is in progress.
-
-The register screen's switching between historic balance and running
-total based on query arguments may be confusing, and there is no column
-heading to indicate which is being displayed.
-
-
-## hledger-web
-
-This doc is for version **1.0**.
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-
-
-
-
-
-
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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).
-
-``` {.shell}
-$ hledger web
-Starting web app on port 5000 with base url http://localhost:5000
-Starting web browser if possible
-Web app will auto-exit after a few minutes with no browsers (or press ctrl-c)
-```
-
-With `--server`, it starts the web app in non-transient mode and logs
-requests to the console. Typically when running hledger web as part of a
-website you'll want to use `--base-url` to set the
-protocol/hostname/port/path to be used in hyperlinks. The `--file-url`
-option allows static files to be served from a different url, eg for
-better caching or cookie-less serving.
-
-You can use `--port` to listen on a different TCP port, eg if you are
-running multiple hledger-web instances. This need not be the same as the
-PORT in the base url.
-
-Note there is no built-in access control, so you will need to hide
-hledger-web behind an authenticating proxy (such as apache or nginx) if
-you want to restrict who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--server`
-: disable browser-opening and auto-exit-on-idle, and log all requests
- to stdout
-
-`--port=PORT`
-: set the TCP port to listen on (default: 5000)
-
-`--base-url=URL`
-: set the base url (default: http://localhost:PORT). You would change
- this when sharing over the network, or integrating within a
- larger website.
-
-`--file-url=URL`
-: 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.
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.0**.
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger-api --swagger`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on port 8001, or another specified with `-p PORT`.
-Note there is no built-in access control, so you will need to hide
-hledger-api behind an authenticating proxy if you want to restrict
-access.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`-p --port=PORT`
-: use a different TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.0**.
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or double-quoted phrase, on the
- left or right, with or without a separating space
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports ledger-style [balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Prices
-
-##### Transaction prices
-
-When recording a transaction, you can also record an amount's price in
-another commodity. This documents the exchange rate, cost (of a
-purchase), or selling price (of a sale) that was in effect within this
-particular transaction (or more precisely, within the particular
-posting). These transaction prices are fixed, and do not change.
-
-Such priced amounts can be displayed in their transaction price's
-commodity, by using the `--cost/-B` flag (B for "cost Basis"), supported
-by most hledger commands.
-
-There are three ways to specify a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities, usually from some
-public market which publishes such rates.
-
-When market prices are known, the `-V/--value` option will use them to
-convert reported amounts to their market value as of the report end
-date. This option is currently available only with the
-[balance](#balance) command.
-
-You record market prices (Ledger calls them historical prices) with a P
-directive, in the journal or perhaps in a separate
-[included](#including-other-files) file. Market price directives have
-the format:
-
-``` {.journal}
-P DATE COMMODITYSYMBOL UNITPRICE
-```
-
-
-For example, the following directives say that the euro's exchange rate
-was 1.35 US dollars during 2009, and \$1.40 from 2010 onward (and
-unknown before 2009).
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-Example use for market prices: tracking the value of stocks.
-
-
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-#### Tags
-
-A *tag* is a word followed by a full colon inside a transaction or
-posting [comment](#comments). You can write multiple tags, comma
-separated. Eg: `; a comment containing sometag:, anothertag:`. You can
-search for tags with the [`tag:` query](manual#queries).
-
-A tag can also have a value, which is any text between the colon and the
-next comma or newline, excluding leading/trailing whitespace. (So
-hledger tag values can not contain commas or newlines).
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (A, TAG2, third-tag)
-and the posting has four (A, TAG2, third-tag, posting-tag):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, this time with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [How to use account aliases](how-to-use-account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- ----------------------------------------------------
- Emacs
-
- Vim <https://github.com/ledger/ledger/wiki/Getting-st
- arte
- d>
-
- Sublime Text <https://github.com/ledger/ledger/wiki/Using-Subl
- ime-
- Text>
-
- Textmate <https://github.com/ledger/ledger/wiki/Using-Text
- Mate
- -2>
-
- Text Wrangler <https://github.com/ledger/ledger/wiki/Editing-Le
- dger
- -files-with-TextWrangler>
- ----------------- ----------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **1.0**.
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-### CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
-
-
-## timeclock format
-
-This doc is for version **1.0**.
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/data/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **1.0**.
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/data/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.0/timeclock.md b/site/doc/1.0/timeclock.md
deleted file mode 100644
index a9e79aece..000000000
--- a/site/doc/1.0/timeclock.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# timeclock format
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/data/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
diff --git a/site/doc/1.0/timedot.md b/site/doc/1.0/timedot.md
deleted file mode 100644
index edbb04871..000000000
--- a/site/doc/1.0/timedot.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# timedot format
-
-This doc is for version **1.0**.
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/data/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.1/.snapshot b/site/doc/1.1/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.1/csv.md b/site/doc/1.1/csv.md
deleted file mode 100644
index 8d01307d5..000000000
--- a/site/doc/1.1/csv.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# csv format
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-## CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-## TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
diff --git a/site/doc/1.1/hledger-api.md b/site/doc/1.1/hledger-api.md
deleted file mode 100644
index 4a3452155..000000000
--- a/site/doc/1.1/hledger-api.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# hledger-api
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger-api --swagger`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`-p --port=PORT`
-: use a different TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.1/hledger-ui.md b/site/doc/1.1/hledger-ui.md
deleted file mode 100644
index 6c0073457..000000000
--- a/site/doc/1.1/hledger-ui.md
+++ /dev/null
@@ -1,365 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-`-V --value`
-: show amounts as their current market value in their default
- valuation commodity (accounts screen only)
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.1/hledger-web.md b/site/doc/1.1/hledger-web.md
deleted file mode 100644
index c071e5d96..000000000
--- a/site/doc/1.1/hledger-web.md
+++ /dev/null
@@ -1,242 +0,0 @@
-# hledger-web
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-
-
-
-
-
-
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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).
-
-``` {.shell}
-$ hledger web
-Starting web app on port 5000 with base url http://localhost:5000
-Starting web browser if possible
-Web app will auto-exit after a few minutes with no browsers (or press ctrl-c)
-```
-
-With `--serve`, it starts the web app in non-transient mode and logs
-requests to the console.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.1/hledger.md b/site/doc/1.1/hledger.md
deleted file mode 100644
index 2d4f2ffc8..000000000
--- a/site/doc/1.1/hledger.md
+++ /dev/null
@@ -1,2110 +0,0 @@
-# hledger
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. See
-COMMANDS and EXAMPLES below.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-With the journal
-
-``` {.journal}
-2016/02/16 Member Fee Payment John Doe
- assets:bank account 2 EUR
- income:member fees -2 EUR
- ; member: John Doe
-```
-
-the --pivot comand will output the following:
-
-``` {.shells}
-$ hledger bal --pivot member
- 2 EUR assets:bank account
- -2 EUR member:John Doe
-```
-
-## OPTIONS
-
-To see general usage and the command list: `hledger -h` or just
-`hledger`. To see usage for a specific command: `hledger COMMAND -h`.
-
-hledger has several kinds of options:
-
-- General options are always available and can appear anywhere on the
- command line. `hledger -h` shows these. Eg: `hledger --version`.
-
-- Common reporting options are available with most commands. These and
- all other non-general options must be written after COMMAND.
- `hledger COMMAND -h` shows these. Eg: `hledger register --cleared`.
-
-- Command-specific options are also provided by some commands.
- `hledger COMMAND -h` shows these too. Eg:
- `hledger register --average`.
-
-- Some hledger commands come from separate [add-on
- executables](#commands), which have their own options.
- `hledger COMMAND -h` shows these, as usual. Such options, if not
- also supported by hledger, should be written following a double
- hyphen argument (`--`) so that hledger's option parser does not
- complain. Eg: `hledger ui -- --register=checking`. Or, you can just
- run the add-on directly: `hledger-ui --register=checking`.
-
-Command arguments may also follow the command name. In most cases these
-specify a [query](#queries) which filters the data. Command options and
-arguments can be intermixed.
-
-Option and argument values containing problematic characters should be
-escaped with double quotes, backslashes, or (best) single quotes. This
-means spaces, but also characters which are significant to your command
-shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant to the shell and also in [regular
-expressions](#regular-expressions), like parentheses, the pipe symbol
-and the dollar sign, must sometimes be double-escaped. Eg, to match the
-dollar symbol: `hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments being passed by hledger to an
-add-on executable get de-escaped once in the process. In this case you
-might need triple-escaping. Eg: `hledger ui cur:'\\$'` or
-`hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-- run add-on executables directly
-
-If you're really curious, add `--debug=2` for troubleshooting.
-
-### General options
-
-Always available, can be written before or after COMMAND.
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-### Reporting options
-
-Common reporting options, must be written after COMMAND.
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-If a reporting option occurs more than once on the command line, the
-last one takes precedence. Eg -p jan -p feb is equivalent to -p feb.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ---------- ---------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock timeclock files (precise time `.timeclock`
- ` logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. (Directives in one file will not affect the other
-files. If you need that, use the [include
-directive](#including-other-files) instead.)
-
-### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- To match a regular expression metacharacter like `$` as a literal
- character, prepend a backslash. Eg to search for amounts with the
- dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped a second time, with
- single or double quotes or another backslash. Eg, to match amounts
- with the dollar sign from the command line, write `cur:'\$'` or
- `cur:\\$`.
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere
- in hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/data/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-#### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-#### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-#### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-### incomestatement
-
-Show an income statement. Alias: is.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### print
-
-Show transactions from the journal.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full transactions from the journal file,
-tidily formatted and showing all amounts explicitly. The output of print
-is always a valid hledger journal, but it does always not preserve all
-original content exactly (eg directives).
-
-hledger's print command also shows all unit prices in effect, or (with
--B/--cost) shows cost amounts.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/data/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-Add-on commands are executables in your PATH whose name starts with
-`hledger-` and ends with any of these file extensions: none,
-`.hs`,`.lhs`,`.pl`,`.py`,`.rb`,`.rkt`,`.sh`,`.bat`,`.com`,`.exe`. Also,
-an add-on's name may not be the same as any built-in command or alias.
-
-hledger will detect these and include them in the command list and let
-you invoke them with `hledger ADDONCMD`. However there are some
-limitations:
-
-- Options appearing before ADDONCMD will be visible only to hledger
- and will not be passed to the add-on. Eg: `hledger -h web` shows
- hledger's usage, `hledger web -h` shows hledger-web's usage.
-- Options understood only by the add-on must go after a `--` argument
- to hide them from hledger, which would otherwise reject them. Eg:
- `hledger web -- --server`.
-
-Sometimes it may be more convenient to just run the add-on directly, eg:
-`hledger-web --server`.
-
-Add-ons which are written in haskell can take advantage of the
-hledger-lib library for journal parsing, reporting, command-line
-options, etc.
-
-Here are some hledger add-ons available from Hackage, the
-[extra](https://github.com/simonmichael/hledger/tree/master/extra)
-directory in the hledger source, or elsewhere:
-
-### api
-
-Web API server, see [hledger-api](hledger-api.html).
-
-### autosync
-
-Download OFX bank data and/or convert OFX to hledger journal format.
-
-``` {.shell}
-$ hledger autosync --help
-usage: hledger-autosync [-h] [-m MAX] [-r] [-a ACCOUNT] [-l LEDGER] [-i INDENT]
- [--initial] [--fid FID] [--assertions] [-d] [--hledger]
- [--slow] [--which]
- [PATH]
-
-Synchronize ledger.
-
-positional arguments:
- PATH do not sync; import from OFX file
-
-optional arguments:
- -h, --help show this help message and exit
- -m MAX, --max MAX maximum number of days to process
- -r, --resync do not stop until max days reached
- -a ACCOUNT, --account ACCOUNT
- set account name for import
- -l LEDGER, --ledger LEDGER
- specify ledger file to READ for syncing
- -i INDENT, --indent INDENT
- number of spaces to use for indentation
- --initial create initial balance entries
- --fid FID pass in fid value for OFX files that do not supply it
- --assertions create balance assertion entries
- -d, --debug enable debug logging
- --hledger force use of hledger (on by default if invoked as hledger-
- autosync)
- --slow use slow, but possibly more robust, method of calling ledger
- (no subprocess)
- --which display which version of ledger/hledger/ledger-python will
- be used by ledger-autosync to check for previous
- transactions
-$ head acct1.ofx
-OFXHEADER:100
-DATA:OFXSGML
-VERSION:102
-SECURITY:NONE
-ENCODING:USASCII
-CHARSET:1252
-COMPRESSION:NONE
-OLDFILEUID:NONE
-NEWFILEUIDe:8509488b59d1bb45
-
-$ hledger autosync acct1.ofx
-2013/08/30 MONTHLY SERVICE FEE
- ; ofxid: 3000.4303001832.201308301
- WF:4303001832 -$6.00
- [assets:business:bank:wf:bchecking:banking] $6.00
-```
-
-[ledger-autosync](https://bitbucket.org/egh/ledger-autosync/commits/all),
-which includes a `hledger-autosync` alias, downloads transactions from
-your bank(s) via OFX, and prints just the new ones as journal entries
-which you can add to your journal. It can also operate on .OFX files
-which you've downloaded manually. It can be a nice alternative to
-hledger's built-in CSV reader, especially if your bank supports OFX
-download.
-
-### diff
-
-Show transactions present in one journal file but not another
-
-``` {.shell}
-$ hledger diff --help
-Usage: hledger-diff account:name left.journal right.journal
-$ cat a.journal
-1/1
- (acct:one) 1
-
-$ cat b.journal
-1/1
- (acct:one) 1
-2/2
- (acct:two) 2
-
-$ hledger diff acct:two a.journal b.journal
-Unmatched transactions in the first journal:
-
-Unmatched transactions in the second journal:
-
-2015/02/02
- (acct:two) $2
-```
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) compares
-two journal files. Given an account name, it prints out the transactions
-affecting that account which are in one journal file but not in the
-other. This can be useful for reconciling existing journals with bank
-statements.
-
-### equity
-
-Print a journal entry that resets account balances to zero.
-
-``` {.shell}
-$ hledger balance --flat -E assets liabilities
- 0 assets:bank:checking
- $1 assets:bank:saving
- $-2 assets:cash
- $1 liabilities:debts
---------------------
- 0
-$ hledger equity assets liabilities
-2015/05/23
- assets:bank:saving $-1
- assets:cash $2
- liabilities:debts $-1
- equity:closing balances 0
-
-2015/05/23
- assets:bank:saving $1
- assets:cash $-2
- liabilities:debts $1
- equity:opening balances 0
-```
-
-This prints a journal entry which zeroes out the specified accounts (or
-all accounts) with a transfer to/from "equity:closing balances" (like
-Ledger's equity command). Also, it prints an similar entry with opposite
-sign for restoring the balances from "equity:opening balances".
-
-These can be useful for ending one journal file and starting a new one,
-respectively. By zeroing your asset and liability accounts at the end of
-a file and restoring them at the start of the next one, you will see
-correct asset/liability balances whether you run hledger on just one
-file, or on several files concatenated with [include](#include).
-
-### interest
-
-Generate interest transactions.
-
-``` {.shell}
-$ hledger interest --help
-Usage: hledger-interest [OPTION...] ACCOUNT
- -h --help print this message and exit
- -V --version show version number and exit
- -v --verbose echo input ledger to stdout (default)
- -q --quiet don't echo input ledger to stdout
- --today compute interest up until today
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -s ACCOUNT --source=ACCOUNT interest source account
- -t ACCOUNT --target=ACCOUNT interest target account
- --act use 'act' day counting convention
- --30-360 use '30/360' day counting convention
- --30E-360 use '30E/360' day counting convention
- --30E-360isda use '30E/360isda' day counting convention
- --constant=RATE constant interest rate
- --annual=RATE annual interest rate
- --bgb288 compute interest according to German BGB288
- --ing-diba compute interest according for Ing-Diba Tagesgeld account
-```
-
-``` {.shell}
-$ cat interest.journal
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank
-```
-
-``` {.shell}
-$ hledger interest -- -f interest.journal --source=Expenses:Interest \
- --target=Liabilities:Bank --30-360 --annual=0.05 Liabilities:Bank
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank EUR -10000.00
-
-2008/11/27 0.05% interest for EUR -10000.00 over 61 days
- Liabilities:Bank EUR -84.72
- Expenses:Interest EUR 84.72
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank EUR 3771.12
-
-2008/12/31 0.05% interest for EUR -6313.60 over 34 days
- Liabilities:Bank EUR -29.81
- Expenses:Interest EUR 29.81
-
-2009/05/03 0.05% interest for EUR -6343.42 over 123 days
- Liabilities:Bank EUR -108.37
- Expenses:Interest EUR 108.37
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank EUR 1200.00
-
-2009/12/31 0.05% interest for EUR -5251.78 over 238 days
- Liabilities:Bank EUR -173.60
- Expenses:Interest EUR 173.60
-
-2010/12/10 0.05% interest for EUR -5425.38 over 340 days
- Liabilities:Bank EUR -256.20
- Expenses:Interest EUR 256.20
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank EUR 3700.00
-```
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-computes interests for a given account. Using command line flags, the
-program can be configured to use various schemes for day-counting, such
-as act/act, 30/360, 30E/360, and 30/360isda. Furthermore, it supports a
-(small) number of interest schemes, i.e. annual interest with a fixed
-rate and the scheme mandated by the German BGB288 (Basiszins für
-Verbrauchergeschäfte). See the package page for more.
-
-### irr
-
-Calculate internal rate of return.
-
-``` {.shell}
-$ hledger irr --help
-Usage: hledger-irr [OPTION...]
- -h --help print this message and exit
- -V --version show version number and exit
- -c --cashflow also show all revant transactions
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -i ACCOUNT --investment-account=ACCOUNT investment account
- -t ACCOUNT --interest-account=ACCOUNT interest/gain/fees/losses account
- -b DATE --begin=DATE calculate interest from this date
- -e DATE --end=DATE calculate interest until this date
- -D --daily calculate interest for each day
- -W --weekly calculate interest for each week
- -M --monthly calculate interest for each month
- -Y --yearly calculate interest for each year
-```
-
-``` {.shell}
-$ cat irr.journal
-2011-01-01 Some wild speculation – I wonder if it pays off
- Speculation €100.00
- Cash
-
-2011-02-01 More speculation (and adjustment of value)
- Cash -€10.00
- Rate Gain -€1.00
- Speculation
-
-2011-03-01 Lets pull out some money (and adjustment of value)
- Cash €30.00
- Rate Gain -€3.00
- Speculation
-
-2011-04-01 More speculation (and it lost some money!)
- Cash -€50.00
- Rate Gain € 5.00
- Speculation
-
-2011-05-01 Getting some money out (and adjustment of value)
- Speculation -€44.00
- Rate Gain -€ 3.00
- Cash
-
-2011-06-01 Emptying the account (after adjusting the value)
- Speculation -€85.00
- Cash €90.00
- Rate Gain -€ 5.00
-```
-
-``` {.shell}
-$ hledger-irr -f irr.journal -t "Rate Gain" -i Speculation --monthly
-2011/01/01 - 2011/02/01: 12.49%
-2011/02/01 - 2011/03/01: 41.55%
-2011/03/01 - 2011/04/01: -51.44%
-2011/04/01 - 2011/05/01: 32.24%
-2011/05/01 - 2011/06/01: 95.92%
-```
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) computes
-the internal rate of return, also known as the effective interest rate,
-of a given investment. After specifying what account holds the
-investment, and what account stores the gains (or losses, or fees, or
-cost), it calculates the hypothetical annual rate of fixed rate
-investment that would have provided the exact same cash flow. See the
-package page for more.
-
-### print-unique
-
-Print only only journal entries which have a unique description.
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-### rewrite
-
-Prints all journal entries, adding specified custom postings to matched
-entries.
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-rewrite.hs),
-in hledger's extra directory (compilation optional), adds postings to
-existing transactions, optionally with an amount based on the existing
-transaction's first amount. See the script for more details.
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-```
-
-### ui
-
-Curses-style interface, see [hledger-ui](hledger-ui.html).
-
-### web
-
-Web interface, see [hledger-web](hledger-web.html).
-
-## TROUBLESHOOTING
-
-### Run-time problems
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-### Known limitations
-
-**Command line interface**
-
-Add-on command options, unless they are also understood by the main
-hledger executable, must be written after `--`, like this:
-`hledger web -- --server`
-
-**Differences from Ledger**
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-hledger is slower than Ledger, and uses more memory, on large data
-files.
-
-**Windows limitations**
-
-In a windows CMD window, non-ascii characters and colours are not
-supported.
-
-In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
-hledger add.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-hledger can't render non-ascii characters when run from a Windows
-command prompt (up to Windows 7 at least).
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
diff --git a/site/doc/1.1/images/balance-q-inc.png b/site/doc/1.1/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.1/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.1/images/coins.svg b/site/doc/1.1/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.1/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.1/images/coins2-248.png b/site/doc/1.1/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.1/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.1/images/coins2.png b/site/doc/1.1/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.1/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.1/images/data-model.png b/site/doc/1.1/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.1/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-charts-2.png b/site/doc/1.1/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.1/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-lib-api.png b/site/doc/1.1/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/1.1/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-screen-1.png b/site/doc/1.1/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.1/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.1/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.1/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.1/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web-journal.png b/site/doc/1.1/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.1/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/add.png b/site/doc/1.1/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/help.png b/site/doc/1.1/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/help2.png b/site/doc/1.1/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.1/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/journal.png b/site/doc/1.1/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/journal2.png b/site/doc/1.1/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/normal/register.png b/site/doc/1.1/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.1/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/add.png b/site/doc/1.1/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/help.png b/site/doc/1.1/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/help2.png b/site/doc/1.1/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/journal-sidebar.png b/site/doc/1.1/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.1/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/journal.png b/site/doc/1.1/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/journal2.png b/site/doc/1.1/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/register.png b/site/doc/1.1/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.1/images/hledger-web/small/register2.png b/site/doc/1.1/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.1/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.1/images/linux.png b/site/doc/1.1/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.1/images/linux.png and /dev/null differ
diff --git a/site/doc/1.1/images/mac.png b/site/doc/1.1/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.1/images/mac.png and /dev/null differ
diff --git a/site/doc/1.1/images/manual.png b/site/doc/1.1/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.1/images/manual.png and /dev/null differ
diff --git a/site/doc/1.1/images/sshot.png b/site/doc/1.1/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.1/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.1/images/watchhours.png b/site/doc/1.1/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.1/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.1/images/windows.png b/site/doc/1.1/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.1/images/windows.png and /dev/null differ
diff --git a/site/doc/1.1/journal.md b/site/doc/1.1/journal.md
deleted file mode 100644
index 73813d8d6..000000000
--- a/site/doc/1.1/journal.md
+++ /dev/null
@@ -1,830 +0,0 @@
-# journal format
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Prices
-
-#### Transaction prices
-
-Within a transaction posting, you can record an amount's price in
-another commodity. This can be used to document the cost (for a
-purchase), or selling price (for a sale), or the exchange rate that was
-used, for this transaction. These transaction prices are fixed, and do
-not change over time.
-
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity, by using the
-[`--cost/-B`](hledger.html#reporting-options) flag supported by most
-hledger commands (mnemonic: "cost Basis").
-
-There are several ways to record a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-Some commands ([balance](hledger.html#market-value), currently) can use
-this information to show the market value of things at a given date.
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced (just the symbol, no quantity).
-UNITPRICE is an ordinary [amount](#amounts) (symbol and quantity) in a
-second commodity, specifying the unit price or conversion rate for the
-first commodity in terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-### Tags
-
-A *tag* is a word followed by a full colon inside a transaction or
-posting [comment](#comments). You can write multiple tags, comma
-separated. Eg: `; a comment containing sometag:, anothertag:`. You can
-search for tags with the [`tag:` query](manual#queries).
-
-A tag can also have a value, which is any text between the colon and the
-next comma or newline, excluding leading/trailing whitespace. (So
-hledger tag values can not contain commas or newlines).
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (A, TAG2, third-tag)
-and the posting has four (A, TAG2, third-tag, posting-tag):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, this time with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-#### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [How to use account aliases](how-to-use-account-aliases.html).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-#### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-#### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- -----------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text Wrangler
- ----------------- -----------------------------------------------------
-
-
-
diff --git a/site/doc/1.1/manual.md b/site/doc/1.1/manual.md
deleted file mode 100644
index 0a3b08e00..000000000
--- a/site/doc/1.1/manual.md
+++ /dev/null
@@ -1,4054 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **1.1**.
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. See
-COMMANDS and EXAMPLES below.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-With the journal
-
-``` {.journal}
-2016/02/16 Member Fee Payment John Doe
- assets:bank account 2 EUR
- income:member fees -2 EUR
- ; member: John Doe
-```
-
-the --pivot comand will output the following:
-
-``` {.shells}
-$ hledger bal --pivot member
- 2 EUR assets:bank account
- -2 EUR member:John Doe
-```
-
-### OPTIONS
-
-To see general usage and the command list: `hledger -h` or just
-`hledger`. To see usage for a specific command: `hledger COMMAND -h`.
-
-hledger has several kinds of options:
-
-- General options are always available and can appear anywhere on the
- command line. `hledger -h` shows these. Eg: `hledger --version`.
-
-- Common reporting options are available with most commands. These and
- all other non-general options must be written after COMMAND.
- `hledger COMMAND -h` shows these. Eg: `hledger register --cleared`.
-
-- Command-specific options are also provided by some commands.
- `hledger COMMAND -h` shows these too. Eg:
- `hledger register --average`.
-
-- Some hledger commands come from separate [add-on
- executables](#commands), which have their own options.
- `hledger COMMAND -h` shows these, as usual. Such options, if not
- also supported by hledger, should be written following a double
- hyphen argument (`--`) so that hledger's option parser does
- not complain. Eg: `hledger ui -- --register=checking`. Or, you can
- just run the add-on directly: `hledger-ui --register=checking`.
-
-Command arguments may also follow the command name. In most cases these
-specify a [query](#queries) which filters the data. Command options and
-arguments can be intermixed.
-
-Option and argument values containing problematic characters should be
-escaped with double quotes, backslashes, or (best) single quotes. This
-means spaces, but also characters which are significant to your command
-shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant to the shell and also in [regular
-expressions](#regular-expressions), like parentheses, the pipe symbol
-and the dollar sign, must sometimes be double-escaped. Eg, to match the
-dollar symbol: `hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments being passed by hledger to an
-add-on executable get de-escaped once in the process. In this case you
-might need triple-escaping. Eg: `hledger ui cur:'\\$'` or
-`hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-- run add-on executables directly
-
-If you're really curious, add `--debug=2` for troubleshooting.
-
-#### General options
-
-Always available, can be written before or after COMMAND.
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-#### Reporting options
-
-Common reporting options, must be written after COMMAND.
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-If a reporting option occurs more than once on the command line, the
-last one takes precedence. Eg -p jan -p feb is equivalent to -p feb.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- -----------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ---------- ---------------------------------- -------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock timeclock files (precise time `.timeclock`
- ` logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- -----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. (Directives in one file will not affect the other
-files. If you need that, use the [include
-directive](#including-other-files) instead.)
-
-#### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- To match a regular expression metacharacter like `$` as a literal
- character, prepend a backslash. Eg to search for amounts with the
- dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped a second time, with
- single or double quotes or another backslash. Eg, to match amounts
- with the dollar sign from the command line, write `cur:'\$'` or
- `cur:\\$`.
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere
- in hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-#### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/data/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-#### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### print
-
-Show transactions from the journal.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full transactions from the journal file,
-tidily formatted and showing all amounts explicitly. The output of print
-is always a valid hledger journal, but it does always not preserve all
-original content exactly (eg directives).
-
-hledger's print command also shows all unit prices in effect, or (with
--B/--cost) shows cost amounts.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/data/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-Add-on commands are executables in your PATH whose name starts with
-`hledger-` and ends with any of these file extensions: none,
-`.hs`,`.lhs`,`.pl`,`.py`,`.rb`,`.rkt`,`.sh`,`.bat`,`.com`,`.exe`. Also,
-an add-on's name may not be the same as any built-in command or alias.
-
-hledger will detect these and include them in the command list and let
-you invoke them with `hledger ADDONCMD`. However there are some
-limitations:
-
-- Options appearing before ADDONCMD will be visible only to hledger
- and will not be passed to the add-on. Eg: `hledger -h web` shows
- hledger's usage, `hledger web -h` shows hledger-web's usage.
-- Options understood only by the add-on must go after a `--` argument
- to hide them from hledger, which would otherwise reject them. Eg:
- `hledger web -- --server`.
-
-Sometimes it may be more convenient to just run the add-on directly, eg:
-`hledger-web --server`.
-
-Add-ons which are written in haskell can take advantage of the
-hledger-lib library for journal parsing, reporting, command-line
-options, etc.
-
-Here are some hledger add-ons available from Hackage, the
-[extra](https://github.com/simonmichael/hledger/tree/master/extra)
-directory in the hledger source, or elsewhere:
-
-#### api
-
-Web API server, see [hledger-api](hledger-api.html).
-
-#### autosync
-
-Download OFX bank data and/or convert OFX to hledger journal format.
-
-``` {.shell}
-$ hledger autosync --help
-usage: hledger-autosync [-h] [-m MAX] [-r] [-a ACCOUNT] [-l LEDGER] [-i INDENT]
- [--initial] [--fid FID] [--assertions] [-d] [--hledger]
- [--slow] [--which]
- [PATH]
-
-Synchronize ledger.
-
-positional arguments:
- PATH do not sync; import from OFX file
-
-optional arguments:
- -h, --help show this help message and exit
- -m MAX, --max MAX maximum number of days to process
- -r, --resync do not stop until max days reached
- -a ACCOUNT, --account ACCOUNT
- set account name for import
- -l LEDGER, --ledger LEDGER
- specify ledger file to READ for syncing
- -i INDENT, --indent INDENT
- number of spaces to use for indentation
- --initial create initial balance entries
- --fid FID pass in fid value for OFX files that do not supply it
- --assertions create balance assertion entries
- -d, --debug enable debug logging
- --hledger force use of hledger (on by default if invoked as hledger-
- autosync)
- --slow use slow, but possibly more robust, method of calling ledger
- (no subprocess)
- --which display which version of ledger/hledger/ledger-python will
- be used by ledger-autosync to check for previous
- transactions
-$ head acct1.ofx
-OFXHEADER:100
-DATA:OFXSGML
-VERSION:102
-SECURITY:NONE
-ENCODING:USASCII
-CHARSET:1252
-COMPRESSION:NONE
-OLDFILEUID:NONE
-NEWFILEUIDe:8509488b59d1bb45
-
-$ hledger autosync acct1.ofx
-2013/08/30 MONTHLY SERVICE FEE
- ; ofxid: 3000.4303001832.201308301
- WF:4303001832 -$6.00
- [assets:business:bank:wf:bchecking:banking] $6.00
-```
-
-[ledger-autosync](https://bitbucket.org/egh/ledger-autosync/commits/all),
-which includes a `hledger-autosync` alias, downloads transactions from
-your bank(s) via OFX, and prints just the new ones as journal entries
-which you can add to your journal. It can also operate on .OFX files
-which you've downloaded manually. It can be a nice alternative to
-hledger's built-in CSV reader, especially if your bank supports OFX
-download.
-
-#### diff
-
-Show transactions present in one journal file but not another
-
-``` {.shell}
-$ hledger diff --help
-Usage: hledger-diff account:name left.journal right.journal
-$ cat a.journal
-1/1
- (acct:one) 1
-
-$ cat b.journal
-1/1
- (acct:one) 1
-2/2
- (acct:two) 2
-
-$ hledger diff acct:two a.journal b.journal
-Unmatched transactions in the first journal:
-
-Unmatched transactions in the second journal:
-
-2015/02/02
- (acct:two) $2
-```
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) compares
-two journal files. Given an account name, it prints out the transactions
-affecting that account which are in one journal file but not in the
-other. This can be useful for reconciling existing journals with bank
-statements.
-
-#### equity
-
-Print a journal entry that resets account balances to zero.
-
-``` {.shell}
-$ hledger balance --flat -E assets liabilities
- 0 assets:bank:checking
- $1 assets:bank:saving
- $-2 assets:cash
- $1 liabilities:debts
---------------------
- 0
-$ hledger equity assets liabilities
-2015/05/23
- assets:bank:saving $-1
- assets:cash $2
- liabilities:debts $-1
- equity:closing balances 0
-
-2015/05/23
- assets:bank:saving $1
- assets:cash $-2
- liabilities:debts $1
- equity:opening balances 0
-```
-
-This prints a journal entry which zeroes out the specified accounts (or
-all accounts) with a transfer to/from "equity:closing balances" (like
-Ledger's equity command). Also, it prints an similar entry with opposite
-sign for restoring the balances from "equity:opening balances".
-
-These can be useful for ending one journal file and starting a new one,
-respectively. By zeroing your asset and liability accounts at the end of
-a file and restoring them at the start of the next one, you will see
-correct asset/liability balances whether you run hledger on just one
-file, or on several files concatenated with [include](#include).
-
-#### interest
-
-Generate interest transactions.
-
-``` {.shell}
-$ hledger interest --help
-Usage: hledger-interest [OPTION...] ACCOUNT
- -h --help print this message and exit
- -V --version show version number and exit
- -v --verbose echo input ledger to stdout (default)
- -q --quiet don't echo input ledger to stdout
- --today compute interest up until today
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -s ACCOUNT --source=ACCOUNT interest source account
- -t ACCOUNT --target=ACCOUNT interest target account
- --act use 'act' day counting convention
- --30-360 use '30/360' day counting convention
- --30E-360 use '30E/360' day counting convention
- --30E-360isda use '30E/360isda' day counting convention
- --constant=RATE constant interest rate
- --annual=RATE annual interest rate
- --bgb288 compute interest according to German BGB288
- --ing-diba compute interest according for Ing-Diba Tagesgeld account
-```
-
-``` {.shell}
-$ cat interest.journal
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank
-```
-
-``` {.shell}
-$ hledger interest -- -f interest.journal --source=Expenses:Interest \
- --target=Liabilities:Bank --30-360 --annual=0.05 Liabilities:Bank
-2008/09/26 Loan
- Assets:Bank EUR 10000.00
- Liabilities:Bank EUR -10000.00
-
-2008/11/27 0.05% interest for EUR -10000.00 over 61 days
- Liabilities:Bank EUR -84.72
- Expenses:Interest EUR 84.72
-
-2008/11/27 Payment
- Assets:Bank EUR -3771.12
- Liabilities:Bank EUR 3771.12
-
-2008/12/31 0.05% interest for EUR -6313.60 over 34 days
- Liabilities:Bank EUR -29.81
- Expenses:Interest EUR 29.81
-
-2009/05/03 0.05% interest for EUR -6343.42 over 123 days
- Liabilities:Bank EUR -108.37
- Expenses:Interest EUR 108.37
-
-2009/05/03 Payment
- Assets:Bank EUR -1200.00
- Liabilities:Bank EUR 1200.00
-
-2009/12/31 0.05% interest for EUR -5251.78 over 238 days
- Liabilities:Bank EUR -173.60
- Expenses:Interest EUR 173.60
-
-2010/12/10 0.05% interest for EUR -5425.38 over 340 days
- Liabilities:Bank EUR -256.20
- Expenses:Interest EUR 256.20
-
-2010/12/10 Payment
- Assets:Bank EUR -3700.00
- Liabilities:Bank EUR 3700.00
-```
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-computes interests for a given account. Using command line flags, the
-program can be configured to use various schemes for day-counting, such
-as act/act, 30/360, 30E/360, and 30/360isda. Furthermore, it supports a
-(small) number of interest schemes, i.e. annual interest with a fixed
-rate and the scheme mandated by the German BGB288 (Basiszins für
-Verbrauchergeschäfte). See the package page for more.
-
-#### irr
-
-Calculate internal rate of return.
-
-``` {.shell}
-$ hledger irr --help
-Usage: hledger-irr [OPTION...]
- -h --help print this message and exit
- -V --version show version number and exit
- -c --cashflow also show all revant transactions
- -f FILE --file=FILE input ledger file (pass '-' for stdin)
- -i ACCOUNT --investment-account=ACCOUNT investment account
- -t ACCOUNT --interest-account=ACCOUNT interest/gain/fees/losses account
- -b DATE --begin=DATE calculate interest from this date
- -e DATE --end=DATE calculate interest until this date
- -D --daily calculate interest for each day
- -W --weekly calculate interest for each week
- -M --monthly calculate interest for each month
- -Y --yearly calculate interest for each year
-```
-
-``` {.shell}
-$ cat irr.journal
-2011-01-01 Some wild speculation – I wonder if it pays off
- Speculation €100.00
- Cash
-
-2011-02-01 More speculation (and adjustment of value)
- Cash -€10.00
- Rate Gain -€1.00
- Speculation
-
-2011-03-01 Lets pull out some money (and adjustment of value)
- Cash €30.00
- Rate Gain -€3.00
- Speculation
-
-2011-04-01 More speculation (and it lost some money!)
- Cash -€50.00
- Rate Gain € 5.00
- Speculation
-
-2011-05-01 Getting some money out (and adjustment of value)
- Speculation -€44.00
- Rate Gain -€ 3.00
- Cash
-
-2011-06-01 Emptying the account (after adjusting the value)
- Speculation -€85.00
- Cash €90.00
- Rate Gain -€ 5.00
-```
-
-``` {.shell}
-$ hledger-irr -f irr.journal -t "Rate Gain" -i Speculation --monthly
-2011/01/01 - 2011/02/01: 12.49%
-2011/02/01 - 2011/03/01: 41.55%
-2011/03/01 - 2011/04/01: -51.44%
-2011/04/01 - 2011/05/01: 32.24%
-2011/05/01 - 2011/06/01: 95.92%
-```
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) computes
-the internal rate of return, also known as the effective interest rate,
-of a given investment. After specifying what account holds the
-investment, and what account stores the gains (or losses, or fees, or
-cost), it calculates the hypothetical annual rate of fixed rate
-investment that would have provided the exact same cash flow. See the
-package page for more.
-
-#### print-unique
-
-Print only only journal entries which have a unique description.
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-#### rewrite
-
-Prints all journal entries, adding specified custom postings to matched
-entries.
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-rewrite.hs),
-in hledger's extra directory (compilation optional), adds postings to
-existing transactions, optionally with an amount based on the existing
-transaction's first amount. See the script for more details.
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-```
-
-#### ui
-
-Curses-style interface, see [hledger-ui](hledger-ui.html).
-
-#### web
-
-Web interface, see [hledger-web](hledger-web.html).
-
-### TROUBLESHOOTING
-
-#### Run-time problems
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-#### Known limitations
-
-**Command line interface**
-
-Add-on command options, unless they are also understood by the main
-hledger executable, must be written after `--`, like this:
-`hledger web -- --server`
-
-**Differences from Ledger**
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-hledger is slower than Ledger, and uses more memory, on large data
-files.
-
-**Windows limitations**
-
-In a windows CMD window, non-ascii characters and colours are not
-supported.
-
-In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
-hledger add.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-hledger can't render non-ascii characters when run from a Windows
-command prompt (up to Windows 7 at least).
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-
-## hledger-ui
-
-This doc is for version **dev**.
-
--
-
-
-
-
-
-
-
-
-
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-`-V --value`
-: show amounts as their current market value in their default
- valuation commodity (accounts screen only)
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **dev**.
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-
-
-
-
-
-
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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).
-
-``` {.shell}
-$ hledger web
-Starting web app on port 5000 with base url http://localhost:5000
-Starting web browser if possible
-Web app will auto-exit after a few minutes with no browsers (or press ctrl-c)
-```
-
-With `--serve`, it starts the web app in non-transient mode and logs
-requests to the console.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`--pivot TAG`
-: will transform the journal before any other processing by replacing
- the account name of every posting having the tag TAG with content
- VALUE by the account name "TAG:VALUE". The TAG will only match if it
- is a full-length match. The pivot will only happen if the TAG is on
- a posting, not if it is on the transaction. If the tag value is a
- multi:level:account:name the new account name will
- be "TAG:multi:level:account:name".
-
-`--anon`
-: show anonymized accounts and payees
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **dev**.
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger-api --swagger`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`-p --port=PORT`
-: use a different TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-hledger general options:
-
-`-h`
-: show general usage (or after COMMAND, the command's usage)
-
-`--help`
-: show the current program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show the current program's manual with man
-
-`--info`
-: show the current program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use -
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: display accounts named OLD as NEW
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions in the journal
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **dev**.
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction posting, you can record an amount's price in
-another commodity. This can be used to document the cost (for a
-purchase), or selling price (for a sale), or the exchange rate that was
-used, for this transaction. These transaction prices are fixed, and do
-not change over time.
-
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity, by using the
-[`--cost/-B`](hledger.html#reporting-options) flag supported by most
-hledger commands (mnemonic: "cost Basis").
-
-There are several ways to record a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-Some commands ([balance](hledger.html#market-value), currently) can use
-this information to show the market value of things at a given date.
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced (just the symbol, no quantity).
-UNITPRICE is an ordinary [amount](#amounts) (symbol and quantity) in a
-second commodity, specifying the unit price or conversion rate for the
-first commodity in terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-#### Tags
-
-A *tag* is a word followed by a full colon inside a transaction or
-posting [comment](#comments). You can write multiple tags, comma
-separated. Eg: `; a comment containing sometag:, anothertag:`. You can
-search for tags with the [`tag:` query](manual#queries).
-
-A tag can also have a value, which is any text between the colon and the
-next comma or newline, excluding leading/trailing whitespace. (So
-hledger tag values can not contain commas or newlines).
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (A, TAG2, third-tag)
-and the posting has four (A, TAG2, third-tag, posting-tag):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, this time with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [How to use account aliases](how-to-use-account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- ----------------------------------------------------
- Emacs
-
- Vim <https://github.com/ledger/ledger/wiki/Getting-st
- arte
- d>
-
- Sublime Text <https://github.com/ledger/ledger/wiki/Using-Subl
- ime-
- Text>
-
- Textmate <https://github.com/ledger/ledger/wiki/Using-Text
- Mate
- -2>
-
- Text Wrangler <https://github.com/ledger/ledger/wiki/Editing-Le
- dger
- -files-with-TextWrangler>
- ----------------- ----------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **dev**.
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-### CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
-
-
-## timeclock format
-
-This doc is for version **dev**.
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/data/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **dev**.
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/data/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.1/timeclock.md b/site/doc/1.1/timeclock.md
deleted file mode 100644
index 5d13a3f3a..000000000
--- a/site/doc/1.1/timeclock.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# timeclock format
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/data/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
diff --git a/site/doc/1.1/timedot.md b/site/doc/1.1/timedot.md
deleted file mode 100644
index 616ab1d69..000000000
--- a/site/doc/1.1/timedot.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# timedot format
-
-This doc is for version **1.1**.
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/data/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.10/.snapshot b/site/doc/1.10/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.10/csv.md b/site/doc/1.10/csv.md
deleted file mode 100644
index 9bf36bc4e..000000000
--- a/site/doc/1.10/csv.md
+++ /dev/null
@@ -1,274 +0,0 @@
-# csv format
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.10/hledger-api.md b/site/doc/1.10/hledger-api.md
deleted file mode 100644
index 707a9a7f1..000000000
--- a/site/doc/1.10/hledger-api.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# hledger-api
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.10/hledger-ui.md b/site/doc/1.10/hledger-ui.md
deleted file mode 100644
index 65a88b05b..000000000
--- a/site/doc/1.10/hledger-ui.md
+++ /dev/null
@@ -1,409 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.10/hledger-web.md b/site/doc/1.10/hledger-web.md
deleted file mode 100644
index 2169c0cb0..000000000
--- a/site/doc/1.10/hledger-web.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# hledger-web
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.10/hledger.md b/site/doc/1.10/hledger.md
deleted file mode 100644
index 96f6cff77..000000000
--- a/site/doc/1.10/hledger.md
+++ /dev/null
@@ -1,2409 +0,0 @@
-# hledger
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- --------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- --------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- --------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-#### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-#### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-#### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-#### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### prices
-
-Print all [market prices](/manual#market-prices) from the journal.
-
-### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.10/images/.DS_Store b/site/doc/1.10/images/.DS_Store
deleted file mode 100644
index 98ecda7b9..000000000
Binary files a/site/doc/1.10/images/.DS_Store and /dev/null differ
diff --git a/site/doc/1.10/images/balance-q-inc.png b/site/doc/1.10/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.10/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.10/images/coins.svg b/site/doc/1.10/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.10/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.10/images/coins2-248.png b/site/doc/1.10/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.10/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.10/images/coins2.png b/site/doc/1.10/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.10/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.10/images/data-model.png b/site/doc/1.10/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.10/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-charts-2.png b/site/doc/1.10/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.10/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-lib-api.png b/site/doc/1.10/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/doc/1.10/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-screen-1.png b/site/doc/1.10/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.10/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.10/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.10/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.10/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web-journal.png b/site/doc/1.10/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.10/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/.DS_Store b/site/doc/1.10/images/hledger-web/.DS_Store
deleted file mode 100644
index 830538401..000000000
Binary files a/site/doc/1.10/images/hledger-web/.DS_Store and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/add.png b/site/doc/1.10/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/help.png b/site/doc/1.10/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/help2.png b/site/doc/1.10/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.10/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/journal.png b/site/doc/1.10/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/journal2.png b/site/doc/1.10/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/normal/register.png b/site/doc/1.10/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.10/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/add.png b/site/doc/1.10/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/help.png b/site/doc/1.10/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/help2.png b/site/doc/1.10/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/journal-sidebar.png b/site/doc/1.10/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.10/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/journal.png b/site/doc/1.10/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/journal2.png b/site/doc/1.10/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/register.png b/site/doc/1.10/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.10/images/hledger-web/small/register2.png b/site/doc/1.10/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.10/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.10/images/linux.png b/site/doc/1.10/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.10/images/linux.png and /dev/null differ
diff --git a/site/doc/1.10/images/mac.png b/site/doc/1.10/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.10/images/mac.png and /dev/null differ
diff --git a/site/doc/1.10/images/manual.png b/site/doc/1.10/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.10/images/manual.png and /dev/null differ
diff --git a/site/doc/1.10/images/sshot.png b/site/doc/1.10/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.10/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.10/images/watchhours.png b/site/doc/1.10/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.10/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.10/images/windows.png b/site/doc/1.10/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.10/images/windows.png and /dev/null differ
diff --git a/site/doc/1.10/journal.md b/site/doc/1.10/journal.md
deleted file mode 100644
index d3d7ded4c..000000000
--- a/site/doc/1.10/journal.md
+++ /dev/null
@@ -1,1275 +0,0 @@
-# journal format
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- -------------------------------------------------------------------------
- status meaning
- ----------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- -------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- ---------------------------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of 2018/06)
- -------------------------------------------- --------------------- --------------- ---------------------------- -----------------------------------
- [`account`](#declaring-accounts) any text declare an account name & account code: balance reports
- optional account code (except `balance` single-column
- mode)
-
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account names following inline/included entries
- until end of current file or end
- directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common parent to following inline/included entries
- account names until end of current file or end
- directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of journal following inline/included entries
- until end of current file or end
- directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity and its number notation: following entries
- number notation & display in that commodity in all files;
- style display style: amounts of that
- commodity in reports
-
- [`D`](#default-commodity) declare a commodity, number commodity: all commodityless
- notation & display style for entries in all files; number
- commodityless amounts notation: following commodityless
- entries and entries in that
- commodity in all files; display
- style: amounts of that commodity in
- reports
-
- [`include`](#including-other-files) include entries/directives what the included directives affect
- from another file
-
- [`P`](#market-prices) declare a market price for a amounts of that commodity in
- commodity reports, when -V is used
-
- [`Y`](#default-year) declare a year for yearless following inline/included entries
- dates until end of current file
- ---------------------------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------------
- subdirective optional indented directive or unparsed text lines
- immediately following a parent directive
-
- account code numeric code influencing account display order in most
- balance reports
-
- number how to interpret numbers when parsing journal entries (the
- notation identity of the decimal separator character). (Currently each
- commodity can have its own notation, even in the same file.)
-
- display style how to display amounts of a commodity in reports (symbol side
- and spacing, digit groups, decimal separator, decimal places)
-
- directive which entries and (when there are multiple files) which files
- scope are affected by a directive
- -------------- -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-#### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-#### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-#### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-#### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-#### Declaring accounts
-
-The `account` directive predeclares account names. The simplest form is
-`account ACCTNAME`, eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-Currently this mainly helps with account name autocompletion in eg
-hledger add, hledger-iadd, hledger-web, and ledger-mode.\
-In future it will also help detect misspelled accounts.
-
-Account names can be followed by a numeric account code:
-
-``` {.journal}
-account assets 1000
-account assets:bank:checking 1110
-account liabilities 2000
-account revenues 4000
-account expenses 6000
-```
-
-This affects how accounts are sorted in account and balance reports:
-accounts with codes are listed before accounts without codes, and in
-increasing code order (instead of listing all accounts alphabetically).
-Warning, this feature is incomplete; account codes do not yet affect
-sort order in
-
-- the `accounts` command
-- the `balance` command's single-column mode
-- flat mode balance reports (to work around this, declare account
- codes on the subaccounts as well).
-- hledger-web's sidebar
-
-Account codes should be all numeric digits, unique, and separated from
-the account name by at least two spaces (since account names may contain
-single spaces). By convention, often the first digit indicates the type
-of account, as in [this numbering
-scheme](http://www.dwmbeancounter.com/BCTutorSite/Courses/ChartAccounts/lesson02-6.html)
-and the example above. In future, we might use this to recognize account
-types.
-
-An account directive can also have indented subdirectives following it,
-which are currently ignored. Here is the full syntax:
-
-``` {.journal}
-; account ACCTNAME [OPTIONALCODE]
-; [OPTIONALSUBDIRECTIVES]
-
-account assets:bank:checking 1110
- a comment
- some-tag:12345
-```
-
-#### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-repeating sine wave):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-If you write a transaction description or same-line comment, it must be
-separated from the period expression by **two or more spaces**. Eg:
-
- ; 2 or more spaces
- ; ||
- ; vv
- ~ every 2 weeks from 2018/6 to 2018/9 paycheck
- assets:bank:checking $1500
- income:acme inc
-
-#### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-#### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-### Automated postings
-
-Automated posting rules describe extra postings that should be added to
-certain transactions at report time, when the `--auto` flag is used.
-
-An automated posting rule looks like a normal journal entry, except the
-first line is an equal sign (`=`) followed by a
-[query](manual.html#queries) (mnemonic: `=` looks like posting lines):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-The posting amounts can be of the form `*N`, which means "the amount of
-the matched transaction's first posting, multiplied by N". They can also
-be ordinary fixed amounts. Fixed amounts with no commodity symbol will
-be given the same commodity as the matched transaction's first posting.
-
-This example adds a corresponding ([unbalanced](#virtual-postings))
-budget posting to every transaction involving the `expenses:gifts`
-account:
-
-``` {.journal}
-= expenses:gifts
- (budget:gifts) *-1
-
-2017-12-14
- expenses:gifts $20
- assets
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/14
- expenses:gifts $20
- (budget:gifts) $-20
- assets
-```
-
-Like postings recorded by hand, automated postings participate in
-[transaction balancing, missing amount inference](#postings) and
-[balance assertions](#balance-assertions).
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ---------------------------------------------------------------------------------------------------------
- Editor
- ------------ --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio Code
- ---------------------------------------------------------------------------------------------------------
-
-
diff --git a/site/doc/1.10/manual.md b/site/doc/1.10/manual.md
deleted file mode 100644
index ed2031d93..000000000
--- a/site/doc/1.10/manual.md
+++ /dev/null
@@ -1,4919 +0,0 @@
-\$toc\$
-
-## hledger
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- ------------------------------- ------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-#### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-#### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-##### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-##### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-##### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-##### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-#### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### prices
-
-Print all [market prices](/manual#market-prices) from the journal.
-
-#### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-#### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-#### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ---------------------------------------------------------------------
- status meaning
- ----------- ---------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ---------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -------------------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of 2018/06)
- -------------------------------------------- --------------------- --------------- -------------------- -----------------------------------
- [`account`](#declaring-accounts) any text declare an account account code: balance reports
- name & optional (except `balance` single-column
- account code mode)
-
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account following inline/included entries
- names until end of current file or end
- directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common following inline/included entries
- parent to account until end of current file or end
- names directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of following inline/included entries
- journal until end of current file or end
- directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity number notation: following entries
- and its number in that commodity in all files;
- notation & display display style: amounts of that
- style commodity in reports
-
- [`D`](#default-commodity) declare a commodity, commodity: all commodityless
- number notation & entries in all files; number
- display style for notation: following commodityless
- commodityless entries and entries in that
- amounts commodity in all files; display
- style: amounts of that commodity in
- reports
-
- [`include`](#including-other-files) include what the included directives affect
- entries/directives
- from another file
-
- [`P`](#market-prices) declare a market amounts of that commodity in
- price for a reports, when -V is used
- commodity
-
- [`Y`](#default-year) declare a year for following inline/included entries
- yearless dates until end of current file
- -------------------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------
- subdirective optional indented directive or unparsed text lines
- immediately following a parent directive
-
- account code numeric code influencing account display order in most
- balance reports
-
- number how to interpret numbers when parsing journal entries
- notation (the identity of the decimal separator character).
- (Currently each commodity can have its own notation,
- even in the same file.)
-
- display style how to display amounts of a commodity in reports
- (symbol side and spacing, digit groups, decimal
- separator, decimal places)
-
- directive which entries and (when there are multiple files) which
- scope files are affected by a directive
- -------------- -------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-##### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-##### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-##### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-##### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-##### Declaring accounts
-
-The `account` directive predeclares account names. The simplest form is
-`account ACCTNAME`, eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-Currently this mainly helps with account name autocompletion in eg
-hledger add, hledger-iadd, hledger-web, and ledger-mode.\
-In future it will also help detect misspelled accounts.
-
-Account names can be followed by a numeric account code:
-
-``` {.journal}
-account assets 1000
-account assets:bank:checking 1110
-account liabilities 2000
-account revenues 4000
-account expenses 6000
-```
-
-This affects how accounts are sorted in account and balance reports:
-accounts with codes are listed before accounts without codes, and in
-increasing code order (instead of listing all accounts alphabetically).
-Warning, this feature is incomplete; account codes do not yet affect
-sort order in
-
-- the `accounts` command
-- the `balance` command's single-column mode
-- flat mode balance reports (to work around this, declare account
- codes on the subaccounts as well).
-- hledger-web's sidebar
-
-Account codes should be all numeric digits, unique, and separated from
-the account name by at least two spaces (since account names may contain
-single spaces). By convention, often the first digit indicates the type
-of account, as in [this numbering
-scheme](http://www.dwmbeancounter.com/BCTutorSite/Courses/ChartAccounts/lesson02-6.html)
-and the example above. In future, we might use this to recognize account
-types.
-
-An account directive can also have indented subdirectives following it,
-which are currently ignored. Here is the full syntax:
-
-``` {.journal}
-; account ACCTNAME [OPTIONALCODE]
-; [OPTIONALSUBDIRECTIVES]
-
-account assets:bank:checking 1110
- a comment
- some-tag:12345
-```
-
-##### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-#### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-repeating sine wave):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-If you write a transaction description or same-line comment, it must be
-separated from the period expression by **two or more spaces**. Eg:
-
- ; 2 or more spaces
- ; ||
- ; vv
- ~ every 2 weeks from 2018/6 to 2018/9 paycheck
- assets:bank:checking $1500
- income:acme inc
-
-##### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-##### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-#### Automated postings
-
-Automated posting rules describe extra postings that should be added to
-certain transactions at report time, when the `--auto` flag is used.
-
-An automated posting rule looks like a normal journal entry, except the
-first line is an equal sign (`=`) followed by a
-[query](manual.html#queries) (mnemonic: `=` looks like posting lines):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-The posting amounts can be of the form `*N`, which means "the amount of
-the matched transaction's first posting, multiplied by N". They can also
-be ordinary fixed amounts. Fixed amounts with no commodity symbol will
-be given the same commodity as the matched transaction's first posting.
-
-This example adds a corresponding ([unbalanced](#virtual-postings))
-budget posting to every transaction involving the `expenses:gifts`
-account:
-
-``` {.journal}
-= expenses:gifts
- (budget:gifts) *-1
-
-2017-12-14
- expenses:gifts $20
- assets
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/14
- expenses:gifts $20
- (budget:gifts) $-20
- assets
-```
-
-Like postings recorded by hand, automated postings participate in
-[transaction balancing, missing amount inference](#postings) and
-[balance assertions](#balance-assertions).
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------------------------------
- Editor
- ---------- --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime
- Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio
- Code
- -------------------------------------------------------------------------------------------------------
-
-
-
-
-## csv format
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-## timedot format
-
-This doc is for version **1.10**. []{.docversions}
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.10/timeclock.md b/site/doc/1.10/timeclock.md
deleted file mode 100644
index e325d68e3..000000000
--- a/site/doc/1.10/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.10/timedot.md b/site/doc/1.10/timedot.md
deleted file mode 100644
index 682056ab6..000000000
--- a/site/doc/1.10/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.10**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.11/.snapshot b/site/doc/1.11/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.11/csv.md b/site/doc/1.11/csv.md
deleted file mode 100644
index 358b20158..000000000
--- a/site/doc/1.11/csv.md
+++ /dev/null
@@ -1,274 +0,0 @@
-# csv format
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.11/hledger-api.md b/site/doc/1.11/hledger-api.md
deleted file mode 100644
index c8351c7cf..000000000
--- a/site/doc/1.11/hledger-api.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# hledger-api
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.11/hledger-ui.md b/site/doc/1.11/hledger-ui.md
deleted file mode 100644
index ff4cec61a..000000000
--- a/site/doc/1.11/hledger-ui.md
+++ /dev/null
@@ -1,412 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.11/hledger-web.md b/site/doc/1.11/hledger-web.md
deleted file mode 100644
index 87f45124a..000000000
--- a/site/doc/1.11/hledger-web.md
+++ /dev/null
@@ -1,253 +0,0 @@
-# hledger-web
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.11/hledger.md b/site/doc/1.11/hledger.md
deleted file mode 100644
index c6ce76bef..000000000
--- a/site/doc/1.11/hledger.md
+++ /dev/null
@@ -1,2432 +0,0 @@
-# hledger
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- --------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- --------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- --------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-#### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-#### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-#### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-#### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-### files
-
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### prices
-
-Print [market price directives](/manual#market-prices) from the journal.
-With --costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With --inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-### roi
-
-Shows time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments. See `roi --help` for more.
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-### test
-
-Run built-in unit tests.
-
-Prints test names and their results on stdout. If any test fails or
-gives an error, the exit code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it's nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.11/images/balance-q-inc.png b/site/doc/1.11/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.11/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.11/images/coins.svg b/site/doc/1.11/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.11/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.11/images/coins2-248.png b/site/doc/1.11/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.11/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.11/images/coins2.png b/site/doc/1.11/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.11/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.11/images/data-model.png b/site/doc/1.11/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.11/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-charts-2.png b/site/doc/1.11/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.11/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-lib-api.png b/site/doc/1.11/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/doc/1.11/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-screen-1.png b/site/doc/1.11/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.11/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.11/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.11/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.11/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web-journal.png b/site/doc/1.11/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.11/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/add.png b/site/doc/1.11/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/help.png b/site/doc/1.11/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/help2.png b/site/doc/1.11/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.11/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/journal.png b/site/doc/1.11/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/journal2.png b/site/doc/1.11/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/normal/register.png b/site/doc/1.11/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.11/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/add.png b/site/doc/1.11/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/help.png b/site/doc/1.11/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/help2.png b/site/doc/1.11/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/journal-sidebar.png b/site/doc/1.11/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.11/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/journal.png b/site/doc/1.11/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/journal2.png b/site/doc/1.11/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/register.png b/site/doc/1.11/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.11/images/hledger-web/small/register2.png b/site/doc/1.11/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.11/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.11/images/linux.png b/site/doc/1.11/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.11/images/linux.png and /dev/null differ
diff --git a/site/doc/1.11/images/mac.png b/site/doc/1.11/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.11/images/mac.png and /dev/null differ
diff --git a/site/doc/1.11/images/manual.png b/site/doc/1.11/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.11/images/manual.png and /dev/null differ
diff --git a/site/doc/1.11/images/sshot.png b/site/doc/1.11/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.11/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.11/images/watchhours.png b/site/doc/1.11/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.11/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.11/images/windows.png b/site/doc/1.11/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.11/images/windows.png and /dev/null differ
diff --git a/site/doc/1.11/journal.md b/site/doc/1.11/journal.md
deleted file mode 100644
index 16960a2b7..000000000
--- a/site/doc/1.11/journal.md
+++ /dev/null
@@ -1,1315 +0,0 @@
-# journal format
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ------------------------------------------------------------------------
- status meaning
- ----------- ------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash == $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-Note that, just as with [exact balance assertions](#exact-assertions),
-an assignment may be performed over all commodities by using a doubled
-equals sign; any unlisted commodities are set to 0. In other words, the
-second example above not only says that no dollars remain in pocket, but
-also no Euros, no rupees, etc.
-
-### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- ---------------------------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of 2018/06)
- -------------------------------------------- --------------------- --------------- ---------------------------- -----------------------------------
- [`account`](#declaring-accounts) any text declare an account name & account code: balance reports
- optional account code (except `balance` single-column
- mode)
-
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account names following inline/included entries
- until end of current file or end
- directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common parent to following inline/included entries
- account names until end of current file or end
- directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of journal following inline/included entries
- until end of current file or end
- directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity and its number notation: following entries
- number notation & display in that commodity in all files;
- style display style: amounts of that
- commodity in reports
-
- [`D`](#default-commodity) declare a commodity, number commodity: all commodityless
- notation & display style for entries in all files; number
- commodityless amounts notation: following commodityless
- entries and entries in that
- commodity in all files; display
- style: amounts of that commodity in
- reports
-
- [`include`](#including-other-files) include entries/directives what the included directives affect
- from another file
-
- [`P`](#market-prices) declare a market price for a amounts of that commodity in
- commodity reports, when -V is used
-
- [`Y`](#default-year) declare a year for yearless following inline/included entries
- dates until end of current file
- ---------------------------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------------
- subdirective optional indented directive or unparsed text lines
- immediately following a parent directive
-
- account code numeric code influencing account display order in most
- balance reports
-
- number how to interpret numbers when parsing journal entries (the
- notation identity of the decimal separator character). (Currently each
- commodity can have its own notation, even in the same file.)
-
- display style how to display amounts of a commodity in reports (symbol side
- and spacing, digit groups, decimal separator, decimal places)
-
- directive which entries and (when there are multiple files) which files
- scope are affected by a directive
- -------------- -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-#### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-#### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-#### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-#### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-#### Declaring accounts
-
-The `account` directive predeclares account names. The simplest form is
-`account ACCTNAME`, eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-Currently this mainly helps with account name autocompletion in eg
-hledger add, hledger-iadd, hledger-web, and ledger-mode.\
-In future it will also help detect misspelled accounts.
-
-An account directive can also have indented subdirectives following it,
-which are currently ignored. Here is the full syntax:
-
-``` {.journal}
-; account ACCTNAME
-; [OPTIONALSUBDIRECTIVES]
-
-account assets:bank:checking
- a comment
- some-tag:12345
-```
-
-#### Account display order
-
-Account directives have another purpose: they set the order in which
-accounts are displayed, in hledger reports, hledger-ui accounts screen,
-hledger-web sidebar etc. For example, say you have these top-level
-accounts:
-
-``` {.shell}
-$ accounts -1
-assets
-equity
-expenses
-liabilities
-misc
-other
-revenues
-```
-
-By default, they are displayed in alphabetical order. But if you add the
-following account directives to the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-the display order changes to:
-
-``` {.shell}
-$ accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-misc
-other
-```
-
-Ie, declared accounts first, in the order they were declared, followed
-by any undeclared accounts in alphabetic order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). This directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`'s subaccounts, but
-not the position of `other` among the top-level accounts.
-
-#### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-If you write a transaction description or same-line comment, it must be
-separated from the period expression by **two or more spaces**. Eg:
-
- ; 2 or more spaces
- ; ||
- ; vv
- ~ every 2 weeks from 2018/6 to 2018/9 paycheck
- assets:bank:checking $1500
- income:acme inc
-
-#### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-#### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-### Transaction Modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. Currently, this means adding
-extra postings (also known as "automated postings"). Transaction
-modifiers are enabled by the `--auto` flag.
-
-A transaction modifier rule looks a bit like a normal journal entry,
-except the first line is an equal sign (`=`) followed by a
-[query](manual.html#queries) (mnemonic: `=` suggests matching
-something.):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-The posting amounts can be of the form `*N`, which means "the amount of
-the matched transaction's first posting, multiplied by N". They can also
-be ordinary fixed amounts. Fixed amounts with no commodity symbol will
-be given the same commodity as the matched transaction's first posting.
-
-This example adds a corresponding ([unbalanced](#virtual-postings))
-budget posting to every transaction involving the `expenses:gifts`
-account:
-
-``` {.journal}
-= expenses:gifts
- (budget:gifts) *-1
-
-2017-12-14
- expenses:gifts $20
- assets
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/14
- expenses:gifts $20
- (budget:gifts) $-20
- assets
-```
-
-Like postings recorded by hand, automated postings participate in
-[transaction balancing, missing amount inference](#postings) and
-[balance assertions](#balance-assertions).
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ---------------------------------------------------------------------------------------------------------
- Editor
- ------------ --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio Code
- ---------------------------------------------------------------------------------------------------------
-
-
diff --git a/site/doc/1.11/manual.md b/site/doc/1.11/manual.md
deleted file mode 100644
index ca9218aff..000000000
--- a/site/doc/1.11/manual.md
+++ /dev/null
@@ -1,4980 +0,0 @@
-\$toc\$
-
-## hledger
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- ------------------------------- ------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-#### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-#### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-##### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-##### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-##### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-##### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-#### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-#### files
-
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### prices
-
-Print [market price directives](/manual#market-prices) from the journal.
-With --costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With --inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-#### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-#### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-#### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-#### roi
-
-Shows time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments. See `roi --help` for more.
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-#### test
-
-Run built-in unit tests.
-
-Prints test names and their results on stdout. If any test fails or
-gives an error, the exit code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it's nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ---------------------------------------------------------------------
- status meaning
- ----------- ---------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ---------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -------------------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of 2018/06)
- -------------------------------------------- --------------------- --------------- -------------------- -----------------------------------
- [`account`](#declaring-accounts) any text declare an account account code: balance reports
- name & optional (except `balance` single-column
- account code mode)
-
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account following inline/included entries
- names until end of current file or end
- directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common following inline/included entries
- parent to account until end of current file or end
- names directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of following inline/included entries
- journal until end of current file or end
- directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity number notation: following entries
- and its number in that commodity in all files;
- notation & display display style: amounts of that
- style commodity in reports
-
- [`D`](#default-commodity) declare a commodity, commodity: all commodityless
- number notation & entries in all files; number
- display style for notation: following commodityless
- commodityless entries and entries in that
- amounts commodity in all files; display
- style: amounts of that commodity in
- reports
-
- [`include`](#including-other-files) include what the included directives affect
- entries/directives
- from another file
-
- [`P`](#market-prices) declare a market amounts of that commodity in
- price for a reports, when -V is used
- commodity
-
- [`Y`](#default-year) declare a year for following inline/included entries
- yearless dates until end of current file
- -------------------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------
- subdirective optional indented directive or unparsed text lines
- immediately following a parent directive
-
- account code numeric code influencing account display order in most
- balance reports
-
- number how to interpret numbers when parsing journal entries
- notation (the identity of the decimal separator character).
- (Currently each commodity can have its own notation,
- even in the same file.)
-
- display style how to display amounts of a commodity in reports
- (symbol side and spacing, digit groups, decimal
- separator, decimal places)
-
- directive which entries and (when there are multiple files) which
- scope files are affected by a directive
- -------------- -------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-##### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-##### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-##### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-##### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-##### Declaring accounts
-
-The `account` directive predeclares account names. The simplest form is
-`account ACCTNAME`, eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-Currently this mainly helps with account name autocompletion in eg
-hledger add, hledger-iadd, hledger-web, and ledger-mode.\
-In future it will also help detect misspelled accounts.
-
-An account directive can also have indented subdirectives following it,
-which are currently ignored. Here is the full syntax:
-
-``` {.journal}
-; account ACCTNAME
-; [OPTIONALSUBDIRECTIVES]
-
-account assets:bank:checking
- a comment
- some-tag:12345
-```
-
-##### Account display order
-
-Account directives have another purpose: they set the order in which
-accounts are displayed, in hledger reports, hledger-ui accounts screen,
-hledger-web sidebar etc. For example, say you have these top-level
-accounts:
-
-``` {.shell}
-$ accounts -1
-assets
-equity
-expenses
-liabilities
-misc
-other
-revenues
-```
-
-By default, they are displayed in alphabetical order. But if you add the
-following account directives to the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-the display order changes to:
-
-``` {.shell}
-$ accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-misc
-other
-```
-
-Ie, declared accounts first, in the order they were declared, followed
-by any undeclared accounts in alphabetic order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). This directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`'s subaccounts, but
-not the position of `other` among the top-level accounts.
-
-##### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-#### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-If you write a transaction description or same-line comment, it must be
-separated from the period expression by **two or more spaces**. Eg:
-
- ; 2 or more spaces
- ; ||
- ; vv
- ~ every 2 weeks from 2018/6 to 2018/9 paycheck
- assets:bank:checking $1500
- income:acme inc
-
-##### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-##### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-#### Transaction Modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. Currently, this means adding
-extra postings (also known as "automated postings"). Transaction
-modifiers are enabled by the `--auto` flag.
-
-A transaction modifier rule looks a bit like a normal journal entry,
-except the first line is an equal sign (`=`) followed by a
-[query](manual.html#queries) (mnemonic: `=` suggests matching
-something.):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-The posting amounts can be of the form `*N`, which means "the amount of
-the matched transaction's first posting, multiplied by N". They can also
-be ordinary fixed amounts. Fixed amounts with no commodity symbol will
-be given the same commodity as the matched transaction's first posting.
-
-This example adds a corresponding ([unbalanced](#virtual-postings))
-budget posting to every transaction involving the `expenses:gifts`
-account:
-
-``` {.journal}
-= expenses:gifts
- (budget:gifts) *-1
-
-2017-12-14
- expenses:gifts $20
- assets
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/14
- expenses:gifts $20
- (budget:gifts) $-20
- assets
-```
-
-Like postings recorded by hand, automated postings participate in
-[transaction balancing, missing amount inference](#postings) and
-[balance assertions](#balance-assertions).
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------------------------------
- Editor
- ---------- --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime
- Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio
- Code
- -------------------------------------------------------------------------------------------------------
-
-
-
-
-## csv format
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-## timedot format
-
-This doc is for version **1.11**. []{.docversions}
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.11/timeclock.md b/site/doc/1.11/timeclock.md
deleted file mode 100644
index dae1671ce..000000000
--- a/site/doc/1.11/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.11/timedot.md b/site/doc/1.11/timedot.md
deleted file mode 100644
index c8cdc5659..000000000
--- a/site/doc/1.11/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.11**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.12/.snapshot b/site/doc/1.12/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.12/csv.md b/site/doc/1.12/csv.md
deleted file mode 100644
index a6bc2fc01..000000000
--- a/site/doc/1.12/csv.md
+++ /dev/null
@@ -1,274 +0,0 @@
-# csv format
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.12/hledger-api.md b/site/doc/1.12/hledger-api.md
deleted file mode 100644
index bc14eca20..000000000
--- a/site/doc/1.12/hledger-api.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# hledger-api
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.12/hledger-ui.md b/site/doc/1.12/hledger-ui.md
deleted file mode 100644
index 8b70d008c..000000000
--- a/site/doc/1.12/hledger-ui.md
+++ /dev/null
@@ -1,427 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-Note hledger-ui has some different defaults: - it generates rule-based
-transactions and postings by default (--forecast and --auto are always
-on). - it hides transactions dated in the future by default (change this
-with --future or the F key). Experimental.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`-F --flat`
-: show accounts as a list (default)
-
-`-T --tree`
-: show accounts as a tree
-
-`--future`
-: show transactions dated later than today (normally hidden)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-As mentioned above, hledger-ui shows auto-generated periodic
-transactions, and hides future transactions (auto-generated or not) by
-default. `F` toggles showing and hiding these future transactions. This
-is similar to using a query like `date:-tomorrow`, but more convenient.
-(experimental)
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are shown as a flat list by default. Press `T` to toggle
-tree mode. In flat mode, account balances are exclusive of subaccounts,
-except where subaccounts are hidden by a depth limit (see below). In
-tree mode, all account balances are inclusive of subaccounts.
-
-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.
-`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,
-or press `ESCAPE`.
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-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 flat
-mode but this account has subaccounts which are not shown due to a depth
-limit. In other words, the register always shows the transactions
-contributing to the balance shown on the accounts screen.\
-Tree mode/flat mode can be toggled with `T` here also.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.12/hledger-web.md b/site/doc/1.12/hledger-web.md
deleted file mode 100644
index 84c8878b4..000000000
--- a/site/doc/1.12/hledger-web.md
+++ /dev/null
@@ -1,253 +0,0 @@
-# hledger-web
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.12/hledger.md b/site/doc/1.12/hledger.md
deleted file mode 100644
index 24963b066..000000000
--- a/site/doc/1.12/hledger.md
+++ /dev/null
@@ -1,2495 +0,0 @@
-# hledger
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-### Special characters in arguments and queries
-
-In shell command lines, option and argument values which contain
-"problematic" characters, ie spaces, and also characters significant to
-your shell such as `<`, `>`, `(`, `)`, `|` and `$`, should be escaped by
-enclosing them in quotes or by writing backslashes before the
-characters. Eg:
-
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-#### More escaping
-
-Characters significant both to the shell and in [regular
-expressions](#regular-expressions) may need one extra level of escaping.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-
-`hledger balance cur:'\$'`
-
-or:
-
-`hledger balance cur:\\$`
-
-#### Even more escaping
-
-When hledger runs an addon executable (eg you type `hledger ui`, hledger
-runs `hledger-ui`), it de-escapes command-line options and arguments
-once, so you might need to *triple*-escape. Eg in bash, running the ui
-command and matching the dollar sign, it's:
-
-`hledger ui cur:'\\$'`
-
-or:
-
-`hledger ui cur:\\\\$`
-
-If you asked why *four* slashes above, this may help:
-
- ----------------- ---------
- unescaped: `$`
- escaped: `\$`
- double-escaped: `\\$`
- triple-escaped: `\\\\$`
- ----------------- ---------
-
-(The number of backslashes in fish shell is left as an exercise for the
-reader.)
-
-You can always avoid the extra escaping for addons by running the addon
-directly:
-
-`hledger-ui cur:\\$`
-
-#### Less escaping
-
-Inside an [argument file](#argument-expansion), or in the search field
-of hledger-ui or hledger-web, or at a GHCI prompt, you need one less
-level of escaping than at the command line. And backslashes may work
-better than quotes. Eg:
-
-`ghci> :main balance cur:\$`
-
-### Command line tips
-
-If in doubt, keep things simple:
-
-- write options after the command (`hledger CMD -OPTIONS ARGS`)
-- run add-on executables directly (`hledger-ui -OPTIONS ARGS`)
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-To find out exactly how a command line is being parsed, add `--debug=2`
-to troubleshoot.
-
-### Unicode characters
-
-hledger is expected to handle unicode (non-ascii) characters, but this
-requires a well-configured environment.
-
-To handle unicode characters in the command line or input data, a system
-locale that can decode them must be configured (POSIX's default `C`
-locale will not work). Eg in bash, you could do:
-
- export LANG=en_US.UTF-8
-
-See [Troubleshooting](#troubleshooting) for more about this.
-
-Unicode characters should appear correctly in hledger's output. For the
-hledger and hledger-ui tools, this requires that
-
-- your terminal supports unicode
-- the terminal's font includes the required unicode glyphs
-- the terminal is configured to display "wide" characters as double
- width (otherwise report alignment will be off)
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- --------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- --------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- --------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-#### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-#### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-#### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-#### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-### files
-
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### prices
-
-Print [market price directives](/manual#market-prices) from the journal.
-With --costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With --inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-### roi
-
-Shows time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments. See `roi --help` for more.
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-### test
-
-Run built-in unit tests.
-
-Prints test names and their results on stdout. If any test fails or
-gives an error, the exit code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it's nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account, but it's
-superseded now by the built-in [roi](#roi) command.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.12/images/balance-q-inc.png b/site/doc/1.12/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.12/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.12/images/coins.svg b/site/doc/1.12/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.12/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.12/images/coins2-248.png b/site/doc/1.12/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.12/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.12/images/coins2.png b/site/doc/1.12/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.12/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.12/images/data-model.png b/site/doc/1.12/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.12/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-charts-2.png b/site/doc/1.12/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.12/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-lib-api.png b/site/doc/1.12/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/doc/1.12/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-screen-1.png b/site/doc/1.12/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.12/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.12/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.12/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.12/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web-journal.png b/site/doc/1.12/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.12/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/add.png b/site/doc/1.12/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/help.png b/site/doc/1.12/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/help2.png b/site/doc/1.12/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.12/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/journal.png b/site/doc/1.12/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/journal2.png b/site/doc/1.12/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/normal/register.png b/site/doc/1.12/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.12/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/add.png b/site/doc/1.12/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/help.png b/site/doc/1.12/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/help2.png b/site/doc/1.12/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/journal-sidebar.png b/site/doc/1.12/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.12/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/journal.png b/site/doc/1.12/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/journal2.png b/site/doc/1.12/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/register.png b/site/doc/1.12/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.12/images/hledger-web/small/register2.png b/site/doc/1.12/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.12/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.12/images/linux.png b/site/doc/1.12/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.12/images/linux.png and /dev/null differ
diff --git a/site/doc/1.12/images/mac.png b/site/doc/1.12/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.12/images/mac.png and /dev/null differ
diff --git a/site/doc/1.12/images/manual.png b/site/doc/1.12/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.12/images/manual.png and /dev/null differ
diff --git a/site/doc/1.12/images/sshot.png b/site/doc/1.12/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.12/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.12/images/watchhours.png b/site/doc/1.12/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.12/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.12/images/windows.png b/site/doc/1.12/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.12/images/windows.png and /dev/null differ
diff --git a/site/doc/1.12/journal.md b/site/doc/1.12/journal.md
deleted file mode 100644
index 982a9abef..000000000
--- a/site/doc/1.12/journal.md
+++ /dev/null
@@ -1,1440 +0,0 @@
-# journal format
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- -------------------------------------------------------------------------
- status meaning
- ----------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- -------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance.\
-This is how assertions work in Ledger also. We could call this a
-"partial" balance assertion.
-
-To assert the balance of more than one commodity in an account, you can
-write multiple postings, each asserting one commodity's balance.
-
-You can make a stronger kind of balance assertion, by writing a double
-equals sign (`==EXPECTEDBALANCE`). This "complete" balance assertion
-asserts the absence of other commodities (or, that their balance is 0,
-which to hledger is equivalent.)
-
-``` {.journal}
-2013/1/1
- a $1
- a 1€
- b $-1
- c -1€
-
-2013/1/2 ; These assertions succeed
- a 0 = $1
- a 0 = 1€
- b 0 == $-1
- c 0 == -1€
-
-2013/1/3 ; This assertion fails as 'a' also contains 1€
- a 0 == $1
-```
-
-It's not yet possible to make a complete assertion about a balance that
-has multiple commodities. One workaround is to isolate each commodity
-into its own subaccount:
-
-``` {.journal}
-2013/1/1
- a:usd $1
- a:euro 1€
- b
-
-2013/1/2
- a 0 == 0
- a:usd 0 == $1
- a:euro 0 == 1€
-```
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -----------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of
- 2018/06)
- -------------------------------------------- --------------------- --------------- ---------------------------- -------------------
- [`account`](#declaring-accounts) any text document account names, all entries in all
- declare account types & files, before or
- display order after
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account names following
- inline/included
- entries until end
- of current file or
- end directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common parent to following
- account names inline/included
- entries until end
- of current file or
- end directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of journal following
- inline/included
- entries until end
- of current file or
- end directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity and its number notation:
- number notation & display following entries
- style in that commodity
- in all files;
- display style:
- amounts of that
- commodity in
- reports
-
- [`D`](#default-commodity) declare a commodity, number commodity: all
- notation & display style for commodityless
- commodityless amounts entries in all
- files; number
- notation: following
- commodityless
- entries and entries
- in that commodity
- in all files;
- display style:
- amounts of that
- commodity in
- reports
-
- [`include`](#including-other-files) include entries/directives what the included
- from another file directives affect
-
- [`P`](#market-prices) declare a market price for a amounts of that
- commodity commodity in
- reports, when -V is
- used
-
- [`Y`](#default-year) declare a year for yearless following
- dates inline/included
- entries until end
- of current file
- -----------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------------
- subdirective optional indented directive line immediately following a
- parent directive
-
- number how to interpret numbers when parsing journal entries (the
- notation identity of the decimal separator character). (Currently each
- commodity can have its own notation, even in the same file.)
-
- display style how to display amounts of a commodity in reports (symbol side
- and spacing, digit groups, decimal separator, decimal places)
-
- directive which entries and (when there are multiple files) which files
- scope are affected by a directive
- -------------- -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-#### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-#### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-#### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-#### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-#### Declaring accounts
-
-`account` directives can be used to pre-declare some or all accounts.
-Though not required, they can provide several benefits:
-
-- They can document your intended chart of accounts, providing a
- reference.
-- They can store extra information about accounts (account numbers,
- notes, etc.)
-- They can help hledger know your accounts' types (asset, liability,
- equity, revenue, expense), useful for reports like balancesheet and
- incomestatement.
-- They control account display order in reports, allowing
- non-alphabetic sorting (eg Revenues to appear above Expenses).
-- They help with account name completion in the add command,
- hledger-iadd, hledger-web, ledger-mode etc.
-
-Here is the full syntax:
-
-``` {.journal}
-account ACCTNAME [ACCTTYPE]
- [COMMENTS]
-```
-
-The simplest form just declares a hledger-style [account
-name](manual.html#account-names), eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-##### Account types
-
-hledger recognises five types of account: asset, liability, equity,
-revenue, expense. This is useful for certain accounting-aware reports,
-in particular [balancesheet](),
-[incomestatement](manual.html#incomestatement) and
-[cashflow](manual.html#cashflow).
-
-If you name your top-level accounts with some variation of `assets`,
-`liabilities`/`debts`, `equity`, `revenues`/`income`, or `expenses`,
-their types are detected automatically.
-
-More generally, you can declare an account's type by adding one of the
-letters `ALERX` to its account directive, separated from the account
-name by two or more spaces. Eg:
-
-``` {.journal}
-account assets A
-account liabilities L
-account equity E
-account revenues R
-account expenses X
-```
-
-Note: if you ever override the types of those auto-detected english
-account names mentioned above, you might need to help the reports a bit:
-
- ; make "liabilities" not have the liability type, who knows why
- account liabilities E
-
- ; better ensure some other account has the liability type,
- ; otherwise balancesheet would still show "liabilities" under Liabilities
- account - L
-
-)
-
-##### Account comments
-
-An account directive can also have indented comments on following lines,
-eg:
-
-``` {.journal}
-account assets:bank:checking
- ; acctno:12345
- ; a comment
-```
-
-We also allow (and ignore) Ledger-style subdirectives, with no leading
-semicolon, for compatibility.
-
-Tags in account comments, like `acctno` above, currently have no effect.
-
-##### Account display order
-
-Account directives also set the order in which accounts are displayed in
-reports, the hledger-ui accounts screen, the hledger-web sidebar, etc.
-Normally accounts are listed in alphabetical order, but if you have eg
-these account directives in the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-you'll see those accounts listed in declaration order, not
-alphabetically:
-
-``` {.shell}
-$ hledger accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-```
-
-Undeclared accounts, if any, are displayed last, in alphabetical order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). And currently, this
-directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`'s subaccounts, but
-not the position of `other` among the top-level accounts. This means: -
-you will sometimes declare parent accounts (eg `account other` above)
-that you don't intend to post to, just to customize their display order
-- sibling accounts stay together (you couldn't display `x:y` in between
-`a:b` and `a:c`).
-
-#### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-Partial or relative dates (M/D, D, tomorrow, last week) in the period
-expression can work (useful or not). They will be relative to today's
-date, unless a Y default year directive is in effect, in which case they
-will be relative to Y/1/1.
-
-Period expressions must be terminated by **two or more spaces** if
-followed by additional fields. For example, the periodic transaction
-given below includes a transaction description "paycheck", which is
-separated from the period expression by a double space. If not for the
-second space, hledger would attempt (and fail) to parse "paycheck" as a
-part of the period expression.
-
- ; 2 or more spaces
- ; ||
- ; vv
- ~ every 2 weeks from 2018/6/4 to 2018/9 paycheck
- assets:bank:checking $1500
- income:acme inc
-
-#### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-#### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-### Transaction Modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. Currently, this means adding
-extra postings (also known as "automated postings"). Transaction
-modifiers are enabled by the `--auto` flag.
-
-A transaction modifier rule looks quite like a normal transaction,
-except the first line is an equals sign followed by a
-[query](manual.html#queries) that matches certain postings (mnemonic:
-`=` suggests matching). And each "posting" is actually a
-posting-generating rule:
-
-``` {.journal}
-= QUERY
- ACCT AMT
- ACCT [AMT]
- ...
-```
-
-The posting rules look just like normal postings, except the amount can
-be:
-
-- a normal amount with a commodity symbol, eg `$2`. This will be used
- as-is.
-- a number, eg `2`. The commodity symbol (if any) from the matched
- posting will be added to this.
-- a numeric multiplier, eg `*2` (a star followed by a number N). The
- matched posting's amount (and total price, if any) will be
- multiplied by N.
-- a multiplier with a commodity symbol, eg `*$2` (a star, number N,
- and symbol S). The matched posting's amount will be multiplied by N,
- and its commodity symbol will be replaced with S.
-
-Some examples:
-
-``` {.journal}
-; every time I buy food, schedule a dollar donation
-= expenses:food
- (liabilities:charity) $-1
-
-; when I buy a gift, also deduct that amount from a budget envelope subaccount
-= expenses:gifts
- assets:checking:gifts *-1
- assets:checking *1
-
-2017/12/1
- expenses:food $10
- assets:checking
-
-2017/12/14
- expenses:gifts $20
- assets:checking
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/01
- expenses:food $10
- assets:checking
- (liabilities:charity) $-1
-
-2017/12/14
- expenses:gifts $20
- assets:checking
- assets:checking:gifts -$20
- assets:checking $20
-```
-
-Postings added by transaction modifiers participate in [transaction
-balancing, missing amount inference](#postings) and [balance
-assertions](#balance-assertions), like regular postings.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ---------------------------------------------------------------------------------------------------------
- Editor
- ------------ --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio Code
- ---------------------------------------------------------------------------------------------------------
-
-
diff --git a/site/doc/1.12/manual.md b/site/doc/1.12/manual.md
deleted file mode 100644
index 6f87361c8..000000000
--- a/site/doc/1.12/manual.md
+++ /dev/null
@@ -1,5193 +0,0 @@
-\$toc\$
-
-## hledger
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-#### Special characters in arguments and queries
-
-In shell command lines, option and argument values which contain
-"problematic" characters, ie spaces, and also characters significant to
-your shell such as `<`, `>`, `(`, `)`, `|` and `$`, should be escaped by
-enclosing them in quotes or by writing backslashes before the
-characters. Eg:
-
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-##### More escaping
-
-Characters significant both to the shell and in [regular
-expressions](#regular-expressions) may need one extra level of escaping.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-
-`hledger balance cur:'\$'`
-
-or:
-
-`hledger balance cur:\\$`
-
-##### Even more escaping
-
-When hledger runs an addon executable (eg you type `hledger ui`, hledger
-runs `hledger-ui`), it de-escapes command-line options and arguments
-once, so you might need to *triple*-escape. Eg in bash, running the ui
-command and matching the dollar sign, it's:
-
-`hledger ui cur:'\\$'`
-
-or:
-
-`hledger ui cur:\\\\$`
-
-If you asked why *four* slashes above, this may help:
-
- ----------------- ---------
- unescaped: `$`
- escaped: `\$`
- double-escaped: `\\$`
- triple-escaped: `\\\\$`
- ----------------- ---------
-
-(The number of backslashes in fish shell is left as an exercise for the
-reader.)
-
-You can always avoid the extra escaping for addons by running the addon
-directly:
-
-`hledger-ui cur:\\$`
-
-##### Less escaping
-
-Inside an [argument file](#argument-expansion), or in the search field
-of hledger-ui or hledger-web, or at a GHCI prompt, you need one less
-level of escaping than at the command line. And backslashes may work
-better than quotes. Eg:
-
-`ghci> :main balance cur:\$`
-
-#### Command line tips
-
-If in doubt, keep things simple:
-
-- write options after the command (`hledger CMD -OPTIONS ARGS`)
-- run add-on executables directly (`hledger-ui -OPTIONS ARGS`)
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-To find out exactly how a command line is being parsed, add `--debug=2`
-to troubleshoot.
-
-#### Unicode characters
-
-hledger is expected to handle unicode (non-ascii) characters, but this
-requires a well-configured environment.
-
-To handle unicode characters in the command line or input data, a system
-locale that can decode them must be configured (POSIX's default `C`
-locale will not work). Eg in bash, you could do:
-
- export LANG=en_US.UTF-8
-
-See [Troubleshooting](#troubleshooting) for more about this.
-
-Unicode characters should appear correctly in hledger's output. For the
-hledger and hledger-ui tools, this requires that
-
-- your terminal supports unicode
-- the terminal's font includes the required unicode glyphs
-- the terminal is configured to display "wide" characters as double
- width (otherwise report alignment will be off)
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- ------------------------------- ------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-#### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-#### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-##### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-##### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-##### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-##### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-#### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-#### files
-
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### prices
-
-Print [market price directives](/manual#market-prices) from the journal.
-With --costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With --inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-#### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-#### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-#### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-#### roi
-
-Shows time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments. See `roi --help` for more.
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-#### test
-
-Run built-in unit tests.
-
-Prints test names and their results on stdout. If any test fails or
-gives an error, the exit code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it's nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account, but it's
-superseded now by the built-in [roi](#roi) command.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-Note hledger-ui has some different defaults: - it generates rule-based
-transactions and postings by default (--forecast and --auto are always
-on). - it hides transactions dated in the future by default (change this
-with --future or the F key). Experimental.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`-F --flat`
-: show accounts as a list (default)
-
-`-T --tree`
-: show accounts as a tree
-
-`--future`
-: show transactions dated later than today (normally hidden)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-As mentioned above, hledger-ui shows auto-generated periodic
-transactions, and hides future transactions (auto-generated or not) by
-default. `F` toggles showing and hiding these future transactions. This
-is similar to using a query like `date:-tomorrow`, but more convenient.
-(experimental)
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are shown as a flat list by default. Press `T` to toggle
-tree mode. In flat mode, account balances are exclusive of subaccounts,
-except where subaccounts are hidden by a depth limit (see below). In
-tree mode, all account balances are inclusive of subaccounts.
-
-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.
-`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,
-or press `ESCAPE`.
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-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 flat
-mode but this account has subaccounts which are not shown due to a depth
-limit. In other words, the register always shows the transactions
-contributing to the balance shown on the accounts screen.\
-Tree mode/flat mode can be toggled with `T` here also.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ---------------------------------------------------------------------
- status meaning
- ----------- ---------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ---------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance.\
-This is how assertions work in Ledger also. We could call this a
-"partial" balance assertion.
-
-To assert the balance of more than one commodity in an account, you can
-write multiple postings, each asserting one commodity's balance.
-
-You can make a stronger kind of balance assertion, by writing a double
-equals sign (`==EXPECTEDBALANCE`). This "complete" balance assertion
-asserts the absence of other commodities (or, that their balance is 0,
-which to hledger is equivalent.)
-
-``` {.journal}
-2013/1/1
- a $1
- a 1€
- b $-1
- c -1€
-
-2013/1/2 ; These assertions succeed
- a 0 = $1
- a 0 = 1€
- b 0 == $-1
- c 0 == -1€
-
-2013/1/3 ; This assertion fails as 'a' also contains 1€
- a 0 == $1
-```
-
-It's not yet possible to make a complete assertion about a balance that
-has multiple commodities. One workaround is to isolate each commodity
-into its own subaccount:
-
-``` {.journal}
-2013/1/1
- a:usd $1
- a:euro 1€
- b
-
-2013/1/2
- a 0 == 0
- a:usd 0 == $1
- a:euro 0 == 1€
-```
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of
- 2018/06)
- -------------------------------------------- --------------------- --------------- -------------------- -----------------
- [`account`](#declaring-accounts) any text document account all entries in
- names, declare all files, before
- account types & or after
- display order
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account following
- names inline/included
- entries until end
- of current file
- or end directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common following
- parent to account inline/included
- names entries until end
- of current file
- or end directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of following
- journal inline/included
- entries until end
- of current file
- or end directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity number notation:
- and its number following entries
- notation & display in that commodity
- style in all files;
- display
- style: amounts of
- that commodity in
- reports
-
- [`D`](#default-commodity) declare a commodity, commodity: all
- number notation & commodityless
- display style for entries in all
- commodityless files; number
- amounts notation:
- following
- commodityless
- entries and
- entries in that
- commodity in all
- files;
- display
- style: amounts of
- that commodity in
- reports
-
- [`include`](#including-other-files) include what the included
- entries/directives directives affect
- from another file
-
- [`P`](#market-prices) declare a market amounts of that
- price for a commodity in
- commodity reports, when -V
- is used
-
- [`Y`](#default-year) declare a year for following
- yearless dates inline/included
- entries until end
- of current file
- -------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------
- subdirective optional indented directive line immediately following
- a parent directive
-
- number how to interpret numbers when parsing journal entries
- notation (the identity of the decimal separator character).
- (Currently each commodity can have its own notation,
- even in the same file.)
-
- display style how to display amounts of a commodity in reports
- (symbol side and spacing, digit groups, decimal
- separator, decimal places)
-
- directive which entries and (when there are multiple files) which
- scope files are affected by a directive
- -------------- -------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-##### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-##### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-##### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-##### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-##### Declaring accounts
-
-`account` directives can be used to pre-declare some or all accounts.
-Though not required, they can provide several benefits:
-
-- They can document your intended chart of accounts, providing a
- reference.
-- They can store extra information about accounts (account numbers,
- notes, etc.)
-- They can help hledger know your accounts' types (asset, liability,
- equity, revenue, expense), useful for reports like balancesheet and
- incomestatement.
-- They control account display order in reports, allowing
- non-alphabetic sorting (eg Revenues to appear above Expenses).
-- They help with account name completion in the add command,
- hledger-iadd, hledger-web, ledger-mode etc.
-
-Here is the full syntax:
-
-``` {.journal}
-account ACCTNAME [ACCTTYPE]
- [COMMENTS]
-```
-
-The simplest form just declares a hledger-style [account
-name](manual.html#account-names), eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-###### Account types
-
-hledger recognises five types of account: asset, liability, equity,
-revenue, expense. This is useful for certain accounting-aware reports,
-in particular [balancesheet](),
-[incomestatement](manual.html#incomestatement) and
-[cashflow](manual.html#cashflow).
-
-If you name your top-level accounts with some variation of `assets`,
-`liabilities`/`debts`, `equity`, `revenues`/`income`, or `expenses`,
-their types are detected automatically.
-
-More generally, you can declare an account's type by adding one of the
-letters `ALERX` to its account directive, separated from the account
-name by two or more spaces. Eg:
-
-``` {.journal}
-account assets A
-account liabilities L
-account equity E
-account revenues R
-account expenses X
-```
-
-Note: if you ever override the types of those auto-detected english
-account names mentioned above, you might need to help the reports a bit:
-
- ; make "liabilities" not have the liability type, who knows why
- account liabilities E
-
- ; better ensure some other account has the liability type,
- ; otherwise balancesheet would still show "liabilities" under Liabilities
- account - L
-
-)
-
-###### Account comments
-
-An account directive can also have indented comments on following lines,
-eg:
-
-``` {.journal}
-account assets:bank:checking
- ; acctno:12345
- ; a comment
-```
-
-We also allow (and ignore) Ledger-style subdirectives, with no leading
-semicolon, for compatibility.
-
-Tags in account comments, like `acctno` above, currently have no effect.
-
-###### Account display order
-
-Account directives also set the order in which accounts are displayed in
-reports, the hledger-ui accounts screen, the hledger-web sidebar, etc.
-Normally accounts are listed in alphabetical order, but if you have eg
-these account directives in the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-you'll see those accounts listed in declaration order, not
-alphabetically:
-
-``` {.shell}
-$ hledger accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-```
-
-Undeclared accounts, if any, are displayed last, in alphabetical order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). And currently, this
-directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`'s subaccounts, but
-not the position of `other` among the top-level accounts. This means: -
-you will sometimes declare parent accounts (eg `account other` above)
-that you don't intend to post to, just to customize their display order
-- sibling accounts stay together (you couldn't display `x:y` in between
-`a:b` and `a:c`).
-
-##### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-#### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-Partial or relative dates (M/D, D, tomorrow, last week) in the period
-expression can work (useful or not). They will be relative to today's
-date, unless a Y default year directive is in effect, in which case they
-will be relative to Y/1/1.
-
-Period expressions must be terminated by **two or more spaces** if
-followed by additional fields. For example, the periodic transaction
-given below includes a transaction description "paycheck", which is
-separated from the period expression by a double space. If not for the
-second space, hledger would attempt (and fail) to parse "paycheck" as a
-part of the period expression.
-
- ; 2 or more spaces
- ; ||
- ; vv
- ~ every 2 weeks from 2018/6/4 to 2018/9 paycheck
- assets:bank:checking $1500
- income:acme inc
-
-##### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-##### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-#### Transaction Modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. Currently, this means adding
-extra postings (also known as "automated postings"). Transaction
-modifiers are enabled by the `--auto` flag.
-
-A transaction modifier rule looks quite like a normal transaction,
-except the first line is an equals sign followed by a
-[query](manual.html#queries) that matches certain postings (mnemonic:
-`=` suggests matching). And each "posting" is actually a
-posting-generating rule:
-
-``` {.journal}
-= QUERY
- ACCT AMT
- ACCT [AMT]
- ...
-```
-
-The posting rules look just like normal postings, except the amount can
-be:
-
-- a normal amount with a commodity symbol, eg `$2`. This will be used
- as-is.
-- a number, eg `2`. The commodity symbol (if any) from the matched
- posting will be added to this.
-- a numeric multiplier, eg `*2` (a star followed by a number N). The
- matched posting's amount (and total price, if any) will be
- multiplied by N.
-- a multiplier with a commodity symbol, eg `*$2` (a star, number N,
- and symbol S). The matched posting's amount will be multiplied by N,
- and its commodity symbol will be replaced with S.
-
-Some examples:
-
-``` {.journal}
-; every time I buy food, schedule a dollar donation
-= expenses:food
- (liabilities:charity) $-1
-
-; when I buy a gift, also deduct that amount from a budget envelope subaccount
-= expenses:gifts
- assets:checking:gifts *-1
- assets:checking *1
-
-2017/12/1
- expenses:food $10
- assets:checking
-
-2017/12/14
- expenses:gifts $20
- assets:checking
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/01
- expenses:food $10
- assets:checking
- (liabilities:charity) $-1
-
-2017/12/14
- expenses:gifts $20
- assets:checking
- assets:checking:gifts -$20
- assets:checking $20
-```
-
-Postings added by transaction modifiers participate in [transaction
-balancing, missing amount inference](#postings) and [balance
-assertions](#balance-assertions), like regular postings.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------------------------------
- Editor
- ---------- --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime
- Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio
- Code
- -------------------------------------------------------------------------------------------------------
-
-
-
-
-## csv format
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-## timedot format
-
-This doc is for version **1.12**. []{.docversions}
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.12/timeclock.md b/site/doc/1.12/timeclock.md
deleted file mode 100644
index 9ac337705..000000000
--- a/site/doc/1.12/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.12/timedot.md b/site/doc/1.12/timedot.md
deleted file mode 100644
index 63b39b62e..000000000
--- a/site/doc/1.12/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.12**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.13/.snapshot b/site/doc/1.13/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.13/csv.md b/site/doc/1.13/csv.md
deleted file mode 100644
index 940ce9f9f..000000000
--- a/site/doc/1.13/csv.md
+++ /dev/null
@@ -1,274 +0,0 @@
-# csv format
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "6/11/2013" (note the - to make leading zeros optional):
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.13/hledger-api.md b/site/doc/1.13/hledger-api.md
deleted file mode 100644
index 00db8545d..000000000
--- a/site/doc/1.13/hledger-api.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# hledger-api
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.13/hledger-ui.md b/site/doc/1.13/hledger-ui.md
deleted file mode 100644
index e6175f51d..000000000
--- a/site/doc/1.13/hledger-ui.md
+++ /dev/null
@@ -1,429 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-Note hledger-ui has some different defaults (experimental):
-
-- it generates rule-based transactions and postings by default
- (--forecast and --auto are always on).
-- it hides transactions dated in the future by default (change this
- with --future or the F key).
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`-F --flat`
-: show accounts as a list (default)
-
-`-T --tree`
-: show accounts as a tree
-
-`--future`
-: show transactions dated later than today (normally hidden)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-As mentioned above, hledger-ui shows auto-generated periodic
-transactions, and hides future transactions (auto-generated or not) by
-default. `F` toggles showing and hiding these future transactions. This
-is similar to using a query like `date:-tomorrow`, but more convenient.
-(experimental)
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are shown as a flat list by default. Press `T` to toggle
-tree mode. In flat mode, account balances are exclusive of subaccounts,
-except where subaccounts are hidden by a depth limit (see below). In
-tree mode, all account balances are inclusive of subaccounts.
-
-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.
-`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,
-or press `ESCAPE`.
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-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 flat
-mode but this account has subaccounts which are not shown due to a depth
-limit. In other words, the register always shows the transactions
-contributing to the balance shown on the accounts screen.\
-Tree mode/flat mode can be toggled with `T` here also.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.13/hledger-web.md b/site/doc/1.13/hledger-web.md
deleted file mode 100644
index 0eff74c48..000000000
--- a/site/doc/1.13/hledger-web.md
+++ /dev/null
@@ -1,253 +0,0 @@
-# hledger-web
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.13/hledger.md b/site/doc/1.13/hledger.md
deleted file mode 100644
index e0d408655..000000000
--- a/site/doc/1.13/hledger.md
+++ /dev/null
@@ -1,2593 +0,0 @@
-# hledger
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-### Special characters in arguments and queries
-
-In shell command lines, option and argument values which contain
-"problematic" characters, ie spaces, and also characters significant to
-your shell such as `<`, `>`, `(`, `)`, `|` and `$`, should be escaped by
-enclosing them in quotes or by writing backslashes before the
-characters. Eg:
-
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-#### More escaping
-
-Characters significant both to the shell and in [regular
-expressions](#regular-expressions) may need one extra level of escaping.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-
-`hledger balance cur:'\$'`
-
-or:
-
-`hledger balance cur:\\$`
-
-#### Even more escaping
-
-When hledger runs an addon executable (eg you type `hledger ui`, hledger
-runs `hledger-ui`), it de-escapes command-line options and arguments
-once, so you might need to *triple*-escape. Eg in bash, running the ui
-command and matching the dollar sign, it's:
-
-`hledger ui cur:'\\$'`
-
-or:
-
-`hledger ui cur:\\\\$`
-
-If you asked why *four* slashes above, this may help:
-
- ----------------- ---------
- unescaped: `$`
- escaped: `\$`
- double-escaped: `\\$`
- triple-escaped: `\\\\$`
- ----------------- ---------
-
-(The number of backslashes in fish shell is left as an exercise for the
-reader.)
-
-You can always avoid the extra escaping for addons by running the addon
-directly:
-
-`hledger-ui cur:\\$`
-
-#### Less escaping
-
-Inside an [argument file](#argument-expansion), or in the search field
-of hledger-ui or hledger-web, or at a GHCI prompt, you need one less
-level of escaping than at the command line. And backslashes may work
-better than quotes. Eg:
-
-`ghci> :main balance cur:\$`
-
-### Command line tips
-
-If in doubt, keep things simple:
-
-- write options after the command (`hledger CMD -OPTIONS ARGS`)
-- run add-on executables directly (`hledger-ui -OPTIONS ARGS`)
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-To find out exactly how a command line is being parsed, add `--debug=2`
-to troubleshoot.
-
-### Unicode characters
-
-hledger is expected to handle unicode (non-ascii) characters, but this
-requires a well-configured environment.
-
-To handle unicode characters in the command line or input data, a system
-locale that can decode them must be configured (POSIX's default `C`
-locale will not work). Eg in bash, you could do:
-
- export LANG=en_US.UTF-8
-
-See [Troubleshooting](#troubleshooting) for more about this.
-
-Unicode characters should appear correctly in hledger's output. For the
-hledger and hledger-ui tools, this requires that
-
-- your terminal supports unicode
-- the terminal's font includes the required unicode glyphs
-- the terminal is configured to display "wide" characters as double
- width (otherwise report alignment will be off)
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- --------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- --------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- --------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-### accounts
-
-accounts, a\
-Show account names.
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (the default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `depth:N` or
-`--depth N` or `-N`.
-
-Examples:
-
-``` {.shell}
-$ hledger accounts
-assets:bank:checking
-assets:bank:saving
-assets:cash
-expenses:food
-expenses:supplies
-income:gifts
-income:salary
-liabilities:debts
-```
-
-### activity
-
-activity\
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-Examples:
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-add\
-Prompt for transactions and add them to the journal.
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar (by
- description) recent transaction (filtered by the query, if any) as a
- template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-balance, bal, b\
-Show accounts and their balances.
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-#### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-#### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted). With `--budget`, `--empty` also shows unbudgeted accounts.
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-#### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-By default, only accounts with budget goals during the report period are
-shown. In the example above, transactions in `expenses:gifts` and
-`expenses:supplies` are counted towards `expenses` budget, but accounts
-`expenses:gifts` and `expenses:supplies` are not shown, as they don't
-have any budgets.
-
-You can use `--empty` shows unbudgeted accounts as well:
-
-``` {.shell}
-$ hledger balance -M --budget --empty
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:gifts || 0 $100
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- expenses:supplies || $20 0
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- expenses || $495 [ 103% of $480] $1060 [ 110% of $960]
- expenses:bus || $49 [ 98% of $50] $102 [ 102% of $100]
- expenses:food || $396 [ 99% of $400] $808 [ 101% of $800]
- expenses:movies || $30 [ 100% of $30] $30 [ 50% of $60]
- income || $1950 [ 98% of $2000] $4050 [ 101% of $4000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-##### Nested budgets
-
-You can add budgets to any account in your account hierarchy. If you
-have budgets on both parent account and some of its children, then
-budget(s) of the child account(s) would be added to the budget of their
-parent, much like account balances behave.
-
-In the most simple case this means that once you add a budget to any
-account, all its parents would have budget as well.
-
-To illustrate this, consider the following budget:
-
- ~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-With this, monthly budget for electronics is defined to be \$100 and
-budget for personal expenses is an additional \$1000, which implicity
-means that budget for both `expenses:personal` and `expenses` is \$1100.
-
-Transactions in `expenses:personal:electronics` will be counted both
-towards its \$100 budget and \$1100 of `expenses:personal` , and
-transactions in any other subaccount of `expenses:personal` would be
-counted towards only towards the budget of `expenses:personal`.
-
-For example, let's consider these transactions:
-
-``` {.journal}
-~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-2019/01/01 Google home hub
- expenses:personal:electronics $90.00
- liabilities $-90.00
-
-2019/01/02 Phone screen protector
- expenses:personal:electronics:upgrades $10.00
- liabilities
-
-2019/01/02 Weekly train ticket
- expenses:personal:train tickets $153.00
- liabilities
-
-2019/01/03 Flowers
- expenses:personal $30.00
- liabilities
-```
-
-As you can see, we have transactions in
-`expenses:personal:electronics:upgrades` and
-`expenses:personal:train tickets`, and since both of these accounts are
-without explicitly defined budget, these transactions would be counted
-towards budgets of `expenses:personal:electronics` and
-`expenses:personal` accordingly:
-
-``` {.shell}
-$ hledger balance --budget -M
-Budget performance in 2019/01:
-
- || Jan
-===============================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- liabilities || $-283.00 [ 26% of $-1100.00]
--------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-And with `--empty`, we can get a better picture of budget allocation and
-consumption:
-
-``` {.shell}
-$ hledger balance --budget -M --empty
-Budget performance in 2019/01:
-
- || Jan
-========================================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- expenses:personal:electronics:upgrades || $10.00
- expenses:personal:train tickets || $153.00
- liabilities || $-283.00 [ 26% of $-1100.00]
-----------------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-#### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheet
-
-balancesheet, bs\
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed).
-
-Note this report shows all account balances with normal positive sign
-(like conventional financial statements, unlike balance/print/register)
-(experimental).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheetequity
-
-balancesheetequity, bse\
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-cashflow, cf\
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental).
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### check-dates
-
-check-dates\
-Check that transactions are sorted by increasing date. With --date2,
-checks secondary dates instead. With --strict, dates must also be
-unique. With a query, only matched transactions' dates are checked.
-Reads the default journal file, or another specified with -f.
-
-### check-dupes
-
-check-dupes\
-Reports account names having the same leaf but different prefixes. In
-other words, two or more leaves that are categorized differently. Reads
-the default journal file, or another specified as an argument.
-
-An example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### close
-
-close, equity\
-Prints a "closing balances" transaction and an "opening balances"
-transaction that bring account balances to and from zero, respectively.
-Useful for bringing asset/liability balances forward into a new journal
-file, or for closing out revenues/expenses to retained earnings at the
-end of a period.
-
-The closing transaction transfers balances to "equity:closing balances".
-The opening transaction transfers balances from "equity:opening
-balances". You can chose to print just one of the transactions by using
-the `--opening` or `--closing` flag.
-
-If you split your journal files by time (eg yearly), you will typically
-run this command at the end of the year, and save the closing
-transaction as last entry of the old file, and the opening transaction
-as the first entry of the new file. This makes the files self contained,
-so that correct balances are reported no matter which of them are
-loaded. Ie, if you load just one file, the balances are initialised
-correctly; or if you load several files, the redundant closing/opening
-transactions cancel each other out. (They will show up in print or
-register reports; you can exclude them with a query like
-`not:desc:'(opening|closing) balances'`.)
-
-If you're running a business, you might also use this command to "close
-the books" at the end of an accounting period, transferring income
-statement account balances to retained earnings. (You may want to change
-the equity account name to something like "equity:retained earnings".)
-
-By default, the closing transaction is dated yesterday, the balances are
-calculated as of end of yesterday, and the opening transaction is dated
-today. To close on some other date, use: `hledger close -e OPENINGDATE`.
-Eg, to close/open on the 2018/2019 boundary, use `-e 2019`. You can also
-use -p or `date:PERIOD` (any starting date is ignored).
-
-Both transactions will include balance assertions for the
-closed/reopened accounts. You probably shouldn't use status or realness
-filters (like -C or -R or `status:`) with this command, or the generated
-balance assertions will depend on these flags. Likewise, if you run this
-command with --auto, the balance assertions will probably always require
---auto.
-
-Examples:
-
-Carrying asset/liability balances into a new file for 2019, all from
-command line:
-
-*Warning: we use `>>` here to append; be careful not to type a single
-`>` which would wipe your journal!*
-
- $ hledger close -f 2018.journal -e 2019 assets liabilities --opening >>2019.journal
- $ hledger close -f 2018.journal -e 2019 assets liabilities --closing >>2018.journal
-
-Now:
-
- $ hledger bs -f 2019.journal # one file - balances are correct
- $ hledger bs -f 2018.journal -f 2019.journal # two files - balances still correct
- $ hledger bs -f 2018.journal not:desc:closing # to see year-end balances, must exclude closing txn
-
-Transactions spanning the closing date can complicate matters, breaking
-balance assertions:
-
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- assets:bank:checking -5 ; [2019/1/2]
-
-Here's one way to resolve that:
-
- ; in 2018.journal:
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- liabilities:pending
-
- ; in 2019.journal:
- 2019/1/2 clearance of last year's pending transactions
- liabilities:pending 5 = 0
- assets:checking
-
-### files
-
-files\
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-### help
-
-help\
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-Examples:
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-import\
-Read new transactions added to each FILE since last run, and add them to
-the main journal file. Or with --dry-run, just print the transactions
-that would be added.
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-incomestatement, is\
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental).
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### prices
-
-prices\
-Print [market price directives](/manual#market-prices) from the journal.
-With --costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With --inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-### print
-
-print, txns, p\
-Show transaction journal entries, sorted by date.
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. With --date2, transactions
-are sorted by secondary date instead.
-
-print's output is always a valid [hledger journal](/journal.html).\
-It preserves all transaction information, but it does not preserve
-directives or inter-transaction comments
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-print-unique\
-Print transactions which do not reuse an already-seen description.
-
-Example:
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-### register
-
-register, reg, r\
-Show postings and their running total.
-
-The register command displays postings in date order, one per line, and
-their running total. This is typically used with a [query](#queries)
-selecting a particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-With --date2, it shows and sorts by secondary date instead.
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram (won't display correctly in --help):
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, & description width 40
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### register-match
-
-register-match\
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. If there are multiple equally good
-matches, it shows the most recent. Query options (options, not
-arguments) can be used to restrict the search space. Helps
-ledger-autosync detect already-seen transactions when importing.
-
-### rewrite
-
-rewrite\
-Print all transactions, rewriting the postings of matched transactions.
-For now the only rewrite available is adding new postings, like print
---auto.
-
-This is a start at a generic rewriter of transaction entries. It reads
-the default journal and prints the transactions, like print, but adds
-one or more specified postings to any transactions matching QUERY. The
-posting amounts can be fixed, or a multiplier of the existing
-transaction's first posting amount.
-
-Examples:
-
- hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
- hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
- hledger-rewrite.hs -f rewrites.hledger
-
-rewrites.hledger may consist of entries like:
-
- = ^income amt:<0 date:2017
- (liabilities:tax) *0.33 ; tax on income
- (reserve:grocery) *0.25 ; reserve 25% for grocery
- (reserve:) *0.25 ; reserve 25% for grocery
-
-Note the single quotes to protect the dollar sign from bash, and the two
-spaces between account and amount.
-
-More:
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-$ hledger rewrite -- ^income --add-posting '(budget:foreign currency) *0.25 JPY; diversify'
-```
-
-Argument for `--add-posting` option is a usual posting of transaction
-with an exception for amount specification. More precisely, you can use
-`'*'` (star symbol) before the amount to indicate that that this is a
-factor for an amount of original matched posting. If the amount includes
-a commodity name, the new posting amount will be in the new commodity;
-otherwise, it will be in the matched posting amount's commodity.
-
-##### Re-write rules in a file
-
-During the run this tool will execute so called ["Automated
-Transactions"](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
-found in any journal it process. I.e instead of specifying this
-operations in command line you can put them in a journal file.
-
-``` {.shell}
-$ rewrite-rules.journal
-```
-
-Make contents look like this:
-
-``` {.journal}
-= ^income
- (liabilities:tax) *.33
-
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-Note that `'='` (equality symbol) that is used instead of date in
-transactions you usually write. It indicates the query by which you want
-to match the posting to add new ones.
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal
-```
-
-This is something similar to the commands pipeline:
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
- | hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
- --add-posting 'assets:budget *1' \
- > rewritten-tidy-output.journal
-```
-
-It is important to understand that relative order of such entries in
-journal is important. You can re-use result of previously added
-postings.
-
-##### Diff output format
-
-To use this tool for batch modification of your journal files you may
-find useful output in form of unified diff.
-
-``` {.shell}
-$ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax) *.33'
-```
-
-Output might look like:
-
-``` {.diff}
---- /tmp/examples/sample.journal
-+++ /tmp/examples/sample.journal
-@@ -18,3 +18,4 @@
- 2008/01/01 income
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:salary
-+ (liabilities:tax) 0
-@@ -22,3 +23,4 @@
- 2008/06/01 gift
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:gifts
-+ (liabilities:tax) 0
-```
-
-If you'll pass this through `patch` tool you'll get transactions
-containing the posting that matches your query be updated. Note that
-multiple files might be update according to list of input files
-specified via `--file` options and `include` directives inside of these
-files.
-
-Be careful. Whole transaction being re-formatted in a style of output
-from `hledger print`.
-
-See also:
-
-https://github.com/simonmichael/hledger/issues/99
-
-##### rewrite vs. print --auto
-
-This command predates print --auto, and currently does much the same
-thing, but with these differences:
-
-- with multiple files, rewrite lets rules in any file affect all other
- files. print --auto uses standard directive scoping; rules affect
- only child files.
-
-- rewrite's query limits which transactions can be rewritten; all are
- printed. print --auto's query limits which transactions are printed.
-
-- rewrite applies rules specified on command line or in the journal.
- print --auto applies rules specified in the journal.
-
-### roi
-
-roi\
-Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments.
-
-This command assumes that you have account(s) that hold nothing but your
-investments and whenever you record current appraisal/valuation of these
-investments you offset unrealized profit and loss into account(s) that,
-again, hold nothing but unrealized profit and loss.
-
-Any transactions affecting balance of investment account(s) and not
-originating from unrealized profit and loss account(s) are assumed to be
-your investments or withdrawals.
-
-At a minimum, you need to supply a query (which could be just an account
-name) to select your investments with `--inv`, and another query to
-identify your profit and loss transactions with `--pnl`.
-
-It will compute and display the internalized rate of return (IRR) and
-time-weighted rate of return (TWR) for your investments for the time
-period requested. Both rates of return are annualized before display,
-regardless of the length of reporting interval.
-
-### stats
-
-stats\
-Show some journal statistics.
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-Example:
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### tags
-
-tags\
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With QUERY arguments, only transactions matching the query are
-considered.
-
-### test
-
-test\
-Run built-in unit tests.
-
-This command runs the unit tests built in to hledger-lib and hledger,
-printing test names and results on stdout. If any test fails, the exit
-code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it's nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account, but it's
-superseded now by the built-in [roi](#roi) command.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.13/images/.DS_Store b/site/doc/1.13/images/.DS_Store
deleted file mode 100644
index 98ecda7b9..000000000
Binary files a/site/doc/1.13/images/.DS_Store and /dev/null differ
diff --git a/site/doc/1.13/images/balance-q-inc.png b/site/doc/1.13/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.13/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.13/images/coins.svg b/site/doc/1.13/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.13/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.13/images/coins2-248.png b/site/doc/1.13/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.13/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.13/images/coins2.png b/site/doc/1.13/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.13/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.13/images/data-model.png b/site/doc/1.13/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.13/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-charts-2.png b/site/doc/1.13/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.13/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-lib-api.png b/site/doc/1.13/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/doc/1.13/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-screen-1.png b/site/doc/1.13/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.13/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.13/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.13/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.13/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web-journal.png b/site/doc/1.13/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.13/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/.DS_Store b/site/doc/1.13/images/hledger-web/.DS_Store
deleted file mode 100644
index 830538401..000000000
Binary files a/site/doc/1.13/images/hledger-web/.DS_Store and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/add.png b/site/doc/1.13/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/help.png b/site/doc/1.13/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/help2.png b/site/doc/1.13/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.13/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/journal.png b/site/doc/1.13/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/journal2.png b/site/doc/1.13/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/normal/register.png b/site/doc/1.13/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.13/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/add.png b/site/doc/1.13/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/help.png b/site/doc/1.13/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/help2.png b/site/doc/1.13/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/journal-sidebar.png b/site/doc/1.13/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.13/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/journal.png b/site/doc/1.13/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/journal2.png b/site/doc/1.13/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/register.png b/site/doc/1.13/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.13/images/hledger-web/small/register2.png b/site/doc/1.13/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.13/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.13/images/linux.png b/site/doc/1.13/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.13/images/linux.png and /dev/null differ
diff --git a/site/doc/1.13/images/mac.png b/site/doc/1.13/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.13/images/mac.png and /dev/null differ
diff --git a/site/doc/1.13/images/manual.png b/site/doc/1.13/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.13/images/manual.png and /dev/null differ
diff --git a/site/doc/1.13/images/sshot.png b/site/doc/1.13/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.13/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.13/images/watchhours.png b/site/doc/1.13/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.13/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.13/images/windows.png b/site/doc/1.13/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.13/images/windows.png and /dev/null differ
diff --git a/site/doc/1.13/journal.md b/site/doc/1.13/journal.md
deleted file mode 100644
index bb6c0a3c7..000000000
--- a/site/doc/1.13/journal.md
+++ /dev/null
@@ -1,1520 +0,0 @@
-# journal format
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- -------------------------------------------------------------------------
- status meaning
- ----------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- -------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance.\
-This is how assertions work in Ledger also. We could call this a
-"partial" balance assertion.
-
-To assert the balance of more than one commodity in an account, you can
-write multiple postings, each asserting one commodity's balance.
-
-You can make a stronger kind of balance assertion, by writing a double
-equals sign (`==EXPECTEDBALANCE`). This "complete" balance assertion
-asserts the absence of other commodities (or, that their balance is 0,
-which to hledger is equivalent.)
-
-``` {.journal}
-2013/1/1
- a $1
- a 1€
- b $-1
- c -1€
-
-2013/1/2 ; These assertions succeed
- a 0 = $1
- a 0 = 1€
- b 0 == $-1
- c 0 == -1€
-
-2013/1/3 ; This assertion fails as 'a' also contains 1€
- a 0 == $1
-```
-
-It's not yet possible to make a complete assertion about a balance that
-has multiple commodities. One workaround is to isolate each commodity
-into its own subaccount:
-
-``` {.journal}
-2013/1/1
- a:usd $1
- a:euro 1€
- b
-
-2013/1/2
- a 0 == 0
- a:usd 0 == $1
- a:euro 0 == 1€
-```
-
-#### Assertions and prices
-
-Balance assertions ignore [transaction prices](#transaction-prices), and
-should normally be written without one:
-
-``` {.journal}
-2019/1/1
- (a) $1 @ €1 = $1
-```
-
-We do allow prices to be written there, however, and
-[print](/manual.html#print) shows them, even though they don't affect
-whether the assertion passes or fails. This is for backward
-compatibility (hledger's [close](/manual.html#close) command used to
-generate balance assertions with prices), and because [balance
-*assignments*](#balance-assignments) do use them (see below).
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Assertions and precision
-
-Balance assertions compare the exactly calculated amounts, which are not
-always what is shown by reports. Eg a [commodity
-directive](http://hledger.org/journal.html#declaring-commodities) may
-limit the display precision, but this will not affect balance
-assertions. Balance assertion failure messages show exact amounts.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Balance assignments and prices
-
-A [transaction price](#transaction-prices) in a balance assignment will
-cause the calculated amount to have that price attached:
-
-``` {.journal}
-2019/1/1
- (a) = $1 @ €2
-```
-
- $ hledger print --explicit
- 2019/01/01
- (a) $1 @ €2 = $1 @ €2
-
-### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -----------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of
- 2018/06)
- -------------------------------------------- --------------------- --------------- ---------------------------- -------------------
- [`account`](#declaring-accounts) any text document account names, all entries in all
- declare account types & files, before or
- display order after
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account names following
- inline/included
- entries until end
- of current file or
- end directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common parent to following
- account names inline/included
- entries until end
- of current file or
- end directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of journal following
- inline/included
- entries until end
- of current file or
- end directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity and its number notation:
- number notation & display following entries
- style in that commodity
- in all files;
- display style:
- amounts of that
- commodity in
- reports
-
- [`D`](#default-commodity) declare a commodity, number commodity: all
- notation & display style for commodityless
- commodityless amounts entries in all
- files; number
- notation: following
- commodityless
- entries and entries
- in that commodity
- in all files;
- display style:
- amounts of that
- commodity in
- reports
-
- [`include`](#including-other-files) include entries/directives what the included
- from another file directives affect
-
- [`P`](#market-prices) declare a market price for a amounts of that
- commodity commodity in
- reports, when -V is
- used
-
- [`Y`](#default-year) declare a year for yearless following
- dates inline/included
- entries until end
- of current file
- -----------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------------
- subdirective optional indented directive line immediately following a
- parent directive
-
- number how to interpret numbers when parsing journal entries (the
- notation identity of the decimal separator character). (Currently each
- commodity can have its own notation, even in the same file.)
-
- display style how to display amounts of a commodity in reports (symbol side
- and spacing, digit groups, decimal separator, decimal places)
-
- directive which entries and (when there are multiple files) which files
- scope are affected by a directive
- -------------- -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-#### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-#### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-#### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-#### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-#### Declaring accounts
-
-`account` directives can be used to pre-declare accounts. Though not
-required, they can provide several benefits:
-
-- They can document your intended chart of accounts, providing a
- reference.
-- They can store extra information about accounts (account numbers,
- notes, etc.)
-- They can help hledger know your accounts' types (asset, liability,
- equity, revenue, expense), useful for reports like balancesheet and
- incomestatement.
-- They control account display order in reports, allowing
- non-alphabetic sorting (eg Revenues to appear above Expenses).
-- They help with account name completion in the add command,
- hledger-iadd, hledger-web, ledger-mode etc.
-
-The simplest form is just the word `account` followed by a hledger-style
-[account name](manual.html#account-names), eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-##### Account comments
-
-[Comments](#comments), beginning with a semicolon, optionally including
-[tags](journal.html#tags), can be written after the account name, and/or
-on following lines. Eg:
-
-``` {.journal}
-account assets:bank:checking ; a comment
- ; another comment
- ; acctno:12345, a tag
-```
-
-Tip: comments on the same line require hledger 1.12+. If you need your
-journal to be compatible with older hledger versions, write comments on
-the next line instead.
-
-##### Account subdirectives
-
-We also allow (and ignore) Ledger-style indented subdirectives, just for
-compatibility.:
-
-``` {.journal}
-account assets:bank:checking
- format blah blah ; <- subdirective, ignored
-```
-
-Here is the full syntax of account directives:
-
-``` {.journal}
-account ACCTNAME [ACCTTYPE] [;COMMENT]
- [;COMMENTS]
- [LEDGER-STYLE SUBDIRECTIVES, IGNORED]
-```
-
-##### Account types
-
-hledger recognises five types (or classes) of account: Asset, Liability,
-Equity, Revenue, Expense. This is used by a few accounting-aware reports
-such as [balancesheet](manual.html#balancesheet),
-[incomestatement](manual.html#incomestatement) and
-[cashflow](manual.html#cashflow).
-
-###### Auto-detected account types
-
-If you name your top-level accounts with some variation of `assets`,
-`liabilities`/`debts`, `equity`, `revenues`/`income`, or `expenses`,
-their types are detected automatically.
-
-###### Account types declared with tags
-
-More generally, you can declare an account's type with an account
-directive, by writing a `type:` [tag](journal.html#tags) in a comment,
-followed by one of the words `Asset`, `Liability`, `Equity`, `Revenue`,
-`Expense`, or one of the letters `ALERX` (case insensitive):
-
-``` {.journal}
-account assets ; type:Asset
-account liabilities ; type:Liability
-account equity ; type:Equity
-account revenues ; type:Revenue
-account expenses ; type:Expenses
-```
-
-###### Account types declared with account type codes
-
-Or, you can write one of those letters separated from the account name
-by two or more spaces, but this should probably be considered deprecated
-as of hledger 1.13:
-
-``` {.journal}
-account assets A
-account liabilities L
-account equity E
-account revenues R
-account expenses X
-```
-
-###### Overriding auto-detected types
-
-If you ever override the types of those auto-detected english account
-names mentioned above, you might need to help the reports a bit. Eg:
-
-``` {.journal}
-; make "liabilities" not have the liability type - who knows why
-account liabilities ; type:E
-
-; we need to ensure some other account has the liability type,
-; otherwise balancesheet would still show "liabilities" under Liabilities
-account - ; type:L
-```
-
-##### Account display order
-
-Account directives also set the order in which accounts are displayed,
-eg in reports, the hledger-ui accounts screen, and the hledger-web
-sidebar. By default accounts are listed in alphabetical order. But if
-you have these account directives in the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-you'll see those accounts displayed in declaration order, not
-alphabetically:
-
-``` {.shell}
-$ hledger accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-```
-
-Undeclared accounts, if any, are displayed last, in alphabetical order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). And currently, this
-directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`'s subaccounts, but
-not the position of `other` among the top-level accounts. This means: -
-you will sometimes declare parent accounts (eg `account other` above)
-that you don't intend to post to, just to customize their display order
-- sibling accounts stay together (you couldn't display `x:y` in between
-`a:b` and `a:c`).
-
-#### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-Partial or relative dates (M/D, D, tomorrow, last week) in the period
-expression can work (useful or not). They will be relative to today's
-date, unless a Y default year directive is in effect, in which case they
-will be relative to Y/1/1.
-
-#### Two spaces after the period expression
-
-If the period expression is followed by a transaction description, these
-must be separated by **two or more spaces**. This helps hledger know
-where the period expression ends, so that descriptions can not
-accidentally alter their meaning, as in this example:
-
- ; 2 or more spaces needed here, so the period is not understood as "every 2 months in 2020"
- ; ||
- ; vv
- ~ every 2 months in 2020, we will review
- assets:bank:checking $1500
- income:acme inc
-
-#### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-#### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-### Transaction modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. They can be enabled by using the
-`--auto` flag. Currently, just one kind of change is possible: adding
-extra postings. These rule-generated postings are known as "automated
-postings" or "auto postings".
-
-A transaction modifier rule looks quite like a normal transaction,
-except the first line is an equals sign followed by a
-[query](manual.html#queries) that matches certain postings (mnemonic:
-`=` suggests matching). And each "posting" is actually a
-posting-generating rule:
-
-``` {.journal}
-= QUERY
- ACCT AMT
- ACCT [AMT]
- ...
-```
-
-These posting rules look like normal postings, except the amount can be:
-
-- a normal amount with a commodity symbol, eg `$2`. This will be used
- as-is.
-- a number, eg `2`. The commodity symbol (if any) from the matched
- posting will be added to this.
-- a numeric multiplier, eg `*2` (a star followed by a number N). The
- matched posting's amount (and total price, if any) will be
- multiplied by N.
-- a multiplier with a commodity symbol, eg `*$2` (a star, number N,
- and symbol S). The matched posting's amount will be multiplied by N,
- and its commodity symbol will be replaced with S.
-
-Some examples:
-
-``` {.journal}
-; every time I buy food, schedule a dollar donation
-= expenses:food
- (liabilities:charity) $-1
-
-; when I buy a gift, also deduct that amount from a budget envelope subaccount
-= expenses:gifts
- assets:checking:gifts *-1
- assets:checking *1
-
-2017/12/1
- expenses:food $10
- assets:checking
-
-2017/12/14
- expenses:gifts $20
- assets:checking
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/01
- expenses:food $10
- assets:checking
- (liabilities:charity) $-1
-
-2017/12/14
- expenses:gifts $20
- assets:checking
- assets:checking:gifts -$20
- assets:checking $20
-```
-
-#### Auto postings and transaction balancing / inferred amounts / balance assertions
-
-Currently, transaction modifiers are applied / auto postings are added:
-
-- after [missing amounts are inferred, and transactions are checked
- for balancedness](#postings),
-- but before [balance assertions](#balance-assertions) are checked.
-
-Note this means that journal entries must be balanced both before and
-after auto postings are added. This changed in hledger 1.12+; see
-[\#893](https://github.com/simonmichael/hledger/issues/893) for
-background.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ---------------------------------------------------------------------------------------------------------
- Editor
- ------------ --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio Code
- ---------------------------------------------------------------------------------------------------------
-
-
diff --git a/site/doc/1.13/manual.md b/site/doc/1.13/manual.md
deleted file mode 100644
index afd1635e3..000000000
--- a/site/doc/1.13/manual.md
+++ /dev/null
@@ -1,5373 +0,0 @@
-\$toc\$
-
-## hledger
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ‘,’)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-#### Special characters in arguments and queries
-
-In shell command lines, option and argument values which contain
-“problematic” characters, ie spaces, and also characters significant to
-your shell such as `<`, `>`, `(`, `)`, `|` and `$`, should be escaped by
-enclosing them in quotes or by writing backslashes before the
-characters. Eg:
-
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-##### More escaping
-
-Characters significant both to the shell and in [regular
-expressions](#regular-expressions) may need one extra level of escaping.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-
-`hledger balance cur:'\$'`
-
-or:
-
-`hledger balance cur:\\$`
-
-##### Even more escaping
-
-When hledger runs an addon executable (eg you type `hledger ui`, hledger
-runs `hledger-ui`), it de-escapes command-line options and arguments
-once, so you might need to *triple*-escape. Eg in bash, running the ui
-command and matching the dollar sign, it’s:
-
-`hledger ui cur:'\\$'`
-
-or:
-
-`hledger ui cur:\\\\$`
-
-If you asked why *four* slashes above, this may help:
-
- ----------------- ---------
- unescaped: `$`
- escaped: `\$`
- double-escaped: `\\$`
- triple-escaped: `\\\\$`
- ----------------- ---------
-
-(The number of backslashes in fish shell is left as an exercise for the
-reader.)
-
-You can always avoid the extra escaping for addons by running the addon
-directly:
-
-`hledger-ui cur:\\$`
-
-##### Less escaping
-
-Inside an [argument file](#argument-expansion), or in the search field
-of hledger-ui or hledger-web, or at a GHCI prompt, you need one less
-level of escaping than at the command line. And backslashes may work
-better than quotes. Eg:
-
-`ghci> :main balance cur:\$`
-
-#### Command line tips
-
-If in doubt, keep things simple:
-
-- write options after the command (`hledger CMD -OPTIONS ARGS`)
-- run add-on executables directly (`hledger-ui -OPTIONS ARGS`)
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-To find out exactly how a command line is being parsed, add `--debug=2`
-to troubleshoot.
-
-#### Unicode characters
-
-hledger is expected to handle unicode (non-ascii) characters, but this
-requires a well-configured environment.
-
-To handle unicode characters in the command line or input data, a system
-locale that can decode them must be configured (POSIX’s default `C`
-locale will not work). Eg in bash, you could do:
-
- export LANG=en_US.UTF-8
-
-See [Troubleshooting](#troubleshooting) for more about this.
-
-Unicode characters should appear correctly in hledger’s output. For the
-hledger and hledger-ui tools, this requires that
-
-- your terminal supports unicode
-- the terminal’s font includes the required unicode glyphs
-- the terminal is configured to display “wide” characters as double
- width (otherwise report alignment will be off)
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger’s journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in “reader” in turn:
-
- ----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- ------------------------------- ------------------------
- `journal` hledger’s journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-“wrong” extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger’s user interfaces accept a flexible “smart date” syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today’s date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick’s day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here’s a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like “from” and “to” are optional, and so are the spaces, as
-long as you don’t run two dates together. “to” can also be written as
-“-”. These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no “from” or “to” defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to “2009/1/1 to 2010/1/1”
- `-p "2009/1"` the month of jan; equivalent to “2009/1/1 to 2009/2/1”
- `-p "2009/1/1"` just that day; equivalent to “2009/1/1 to 2009/1/2”
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` – starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` – starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- -----------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` – periods will have boundaries on 2008/01/01, 2008/03/01, …
- `-p "every 2 weeks"` – starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` – periods will have boundaries on 2009/03/01, 2009/08/01, …
- -----------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- ------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` – periods will go from Tue to Tue
- `-p "every Tue"` – same
- `-p "every 15th day"` – period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` – period boundaries will be on second Monday of each month
- `-p "every 11/05"` – yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` – same
- `-p "every Nov 5th"` – same
- ------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting’s account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it’s not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted “account
-name”):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount’s commodity, dated on or before today’s
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price’s commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger’s -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column’s
-end date.)
-
-#### Combining -B and -V
-
-Using -B/–cost and -V/–value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger’s regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger’s strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there’s no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there’s
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-#### accounts
-
-accounts, a\
-Show account names.
-
-This command lists account names, either declared with account
-directives (–declared), posted to (–used), or both (the default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `depth:N` or
-`--depth N` or `-N`.
-
-Examples:
-
-``` {.shell}
-$ hledger accounts
-assets:bank:checking
-assets:bank:saving
-assets:cash
-expenses:food
-expenses:supplies
-income:gifts
-income:salary
-liabilities:debts
-```
-
-#### activity
-
-activity\
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-Examples:
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-add\
-Prompt for transactions and add them to the journal.
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar (by
- description) recent transaction (filtered by the query, if any) as a
- template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-balance, bal, b\
-Show accounts and their balances.
-
-The balance command is hledger’s most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account’s change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account’s complete history of postings in the report,
-the balance change is equivalent to the account’s current ending
-balance. For a real-world account, typically you won’t have all
-transactions in the journal; instead you’ll have all transactions after
-a certain date, and an “opening balances” transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/–historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-##### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-“Boring” accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the “liabilities” account.) Use `--no-elide`
-to prevent this.
-
-Account balances are “inclusive” - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account’s
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account’s name
- - `total` - the account’s balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account’s total
-- `%-20.20(account)` - the account’s name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and “exclusive” balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-##### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account’s change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be “full” and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted). With `--budget`, `--empty` also shows unbudgeted accounts.
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here’s an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column’s end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-##### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
-–budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-By default, only accounts with budget goals during the report period are
-shown. In the example above, transactions in `expenses:gifts` and
-`expenses:supplies` are counted towards `expenses` budget, but accounts
-`expenses:gifts` and `expenses:supplies` are not shown, as they don’t
-have any budgets.
-
-You can use `--empty` shows unbudgeted accounts as well:
-
-``` {.shell}
-$ hledger balance -M --budget --empty
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:gifts || 0 $100
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- expenses:supplies || $20 0
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- expenses || $495 [ 103% of $480] $1060 [ 110% of $960]
- expenses:bus || $49 [ 98% of $50] $102 [ 102% of $100]
- expenses:food || $396 [ 99% of $400] $808 [ 101% of $800]
- expenses:movies || $30 [ 100% of $30] $30 [ 50% of $60]
- income || $1950 [ 98% of $2000] $4050 [ 101% of $4000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-###### Nested budgets
-
-You can add budgets to any account in your account hierarchy. If you
-have budgets on both parent account and some of its children, then
-budget(s) of the child account(s) would be added to the budget of their
-parent, much like account balances behave.
-
-In the most simple case this means that once you add a budget to any
-account, all its parents would have budget as well.
-
-To illustrate this, consider the following budget:
-
- ~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-With this, monthly budget for electronics is defined to be \$100 and
-budget for personal expenses is an additional \$1000, which implicity
-means that budget for both `expenses:personal` and `expenses` is \$1100.
-
-Transactions in `expenses:personal:electronics` will be counted both
-towards its \$100 budget and \$1100 of `expenses:personal` , and
-transactions in any other subaccount of `expenses:personal` would be
-counted towards only towards the budget of `expenses:personal`.
-
-For example, let’s consider these transactions:
-
-``` {.journal}
-~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-2019/01/01 Google home hub
- expenses:personal:electronics $90.00
- liabilities $-90.00
-
-2019/01/02 Phone screen protector
- expenses:personal:electronics:upgrades $10.00
- liabilities
-
-2019/01/02 Weekly train ticket
- expenses:personal:train tickets $153.00
- liabilities
-
-2019/01/03 Flowers
- expenses:personal $30.00
- liabilities
-```
-
-As you can see, we have transactions in
-`expenses:personal:electronics:upgrades` and
-`expenses:personal:train tickets`, and since both of these accounts are
-without explicitly defined budget, these transactions would be counted
-towards budgets of `expenses:personal:electronics` and
-`expenses:personal` accordingly:
-
-``` {.shell}
-$ hledger balance --budget -M
-Budget performance in 2019/01:
-
- || Jan
-===============================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- liabilities || $-283.00 [ 26% of $-1100.00]
--------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-And with `--empty`, we can get a better picture of budget allocation and
-consumption:
-
-``` {.shell}
-$ hledger balance --budget -M --empty
-Budget performance in 2019/01:
-
- || Jan
-========================================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- expenses:personal:electronics:upgrades || $10.00
- expenses:personal:train tickets || $153.00
- liabilities || $-283.00 [ 26% of $-1100.00]
-----------------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-##### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheet
-
-balancesheet, bs\
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed).
-
-Note this report shows all account balances with normal positive sign
-(like conventional financial statements, unlike balance/print/register)
-(experimental).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheetequity
-
-balancesheetequity, bse\
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-cashflow, cf\
-This command displays a simple cashflow statement, showing changes in
-“cash” accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental).
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### check-dates
-
-check-dates\
-Check that transactions are sorted by increasing date. With –date2,
-checks secondary dates instead. With –strict, dates must also be unique.
-With a query, only matched transactions’ dates are checked. Reads the
-default journal file, or another specified with -f.
-
-#### check-dupes
-
-check-dupes\
-Reports account names having the same leaf but different prefixes. In
-other words, two or more leaves that are categorized differently. Reads
-the default journal file, or another specified as an argument.
-
-An example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### close
-
-close, equity\
-Prints a “closing balances” transaction and an “opening balances”
-transaction that bring account balances to and from zero, respectively.
-Useful for bringing asset/liability balances forward into a new journal
-file, or for closing out revenues/expenses to retained earnings at the
-end of a period.
-
-The closing transaction transfers balances to “equity:closing balances”.
-The opening transaction transfers balances from “equity:opening
-balances”. You can chose to print just one of the transactions by using
-the `--opening` or `--closing` flag.
-
-If you split your journal files by time (eg yearly), you will typically
-run this command at the end of the year, and save the closing
-transaction as last entry of the old file, and the opening transaction
-as the first entry of the new file. This makes the files self contained,
-so that correct balances are reported no matter which of them are
-loaded. Ie, if you load just one file, the balances are initialised
-correctly; or if you load several files, the redundant closing/opening
-transactions cancel each other out. (They will show up in print or
-register reports; you can exclude them with a query like
-`not:desc:'(opening|closing) balances'`.)
-
-If you’re running a business, you might also use this command to “close
-the books” at the end of an accounting period, transferring income
-statement account balances to retained earnings. (You may want to change
-the equity account name to something like “equity:retained earnings”.)
-
-By default, the closing transaction is dated yesterday, the balances are
-calculated as of end of yesterday, and the opening transaction is dated
-today. To close on some other date, use: `hledger close -e OPENINGDATE`.
-Eg, to close/open on the 2018/2019 boundary, use `-e 2019`. You can also
-use -p or `date:PERIOD` (any starting date is ignored).
-
-Both transactions will include balance assertions for the
-closed/reopened accounts. You probably shouldn’t use status or realness
-filters (like -C or -R or `status:`) with this command, or the generated
-balance assertions will depend on these flags. Likewise, if you run this
-command with –auto, the balance assertions will probably always require
-–auto.
-
-Examples:
-
-Carrying asset/liability balances into a new file for 2019, all from
-command line:
-
-*Warning: we use `>>` here to append; be careful not to type a single
-`>` which would wipe your journal!*
-
- $ hledger close -f 2018.journal -e 2019 assets liabilities --opening >>2019.journal
- $ hledger close -f 2018.journal -e 2019 assets liabilities --closing >>2018.journal
-
-Now:
-
- $ hledger bs -f 2019.journal # one file - balances are correct
- $ hledger bs -f 2018.journal -f 2019.journal # two files - balances still correct
- $ hledger bs -f 2018.journal not:desc:closing # to see year-end balances, must exclude closing txn
-
-Transactions spanning the closing date can complicate matters, breaking
-balance assertions:
-
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- assets:bank:checking -5 ; [2019/1/2]
-
-Here’s one way to resolve that:
-
- ; in 2018.journal:
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- liabilities:pending
-
- ; in 2019.journal:
- 2019/1/2 clearance of last year's pending transactions
- liabilities:pending 5 = 0
- assets:checking
-
-#### files
-
-files\
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-#### help
-
-help\
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-Examples:
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-import\
-Read new transactions added to each FILE since last run, and add them to
-the main journal file. Or with –dry-run, just print the transactions
-that would be added.
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it’s just: `hledger import *.csv`
-
-New transactions are detected in the same way as print –new: by assuming
-transactions are always added to the input files in increasing date
-order, and by saving `.latest.FILE` state files.
-
-The –dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-incomestatement, is\
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental).
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### prices
-
-prices\
-Print [market price directives](/manual#market-prices) from the journal.
-With –costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With –inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-#### print
-
-print, txns, p\
-Show transaction journal entries, sorted by date.
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. With –date2, transactions
-are sorted by secondary date instead.
-
-print’s output is always a valid [hledger journal](/journal.html).\
-It preserves all transaction information, but it does not preserve
-directives or inter-transaction comments
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-Normally, the journal entry’s explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here’s an example of
-print’s CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction’s
- fields repeated.
-- The “txnidx” (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into “commodity” (the symbol) and “amount”
- (numeric quantity) fields.
-- The numeric amount is repeated in either the “credit” or “debit”
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-print-unique\
-Print transactions which do not reuse an already-seen description.
-
-Example:
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-#### register
-
-register, reg, r\
-Show postings and their running total.
-
-The register command displays postings in date order, one per line, and
-their running total. This is typically used with a [query](#queries)
-selecting a particular account, to see that account’s activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-With –date2, it shows and sorts by secondary date instead.
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you’ll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of –width’s argument, comma-separated:
-`--width W,D` . Here’s a diagram (won’t display correctly in –help):
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, & description width 40
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### register-match
-
-register-match\
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. If there are multiple equally good
-matches, it shows the most recent. Query options (options, not
-arguments) can be used to restrict the search space. Helps
-ledger-autosync detect already-seen transactions when importing.
-
-#### rewrite
-
-rewrite\
-Print all transactions, rewriting the postings of matched transactions.
-For now the only rewrite available is adding new postings, like print
-–auto.
-
-This is a start at a generic rewriter of transaction entries. It reads
-the default journal and prints the transactions, like print, but adds
-one or more specified postings to any transactions matching QUERY. The
-posting amounts can be fixed, or a multiplier of the existing
-transaction’s first posting amount.
-
-Examples:
-
- hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
- hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
- hledger-rewrite.hs -f rewrites.hledger
-
-rewrites.hledger may consist of entries like:
-
- = ^income amt:<0 date:2017
- (liabilities:tax) *0.33 ; tax on income
- (reserve:grocery) *0.25 ; reserve 25% for grocery
- (reserve:) *0.25 ; reserve 25% for grocery
-
-Note the single quotes to protect the dollar sign from bash, and the two
-spaces between account and amount.
-
-More:
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-$ hledger rewrite -- ^income --add-posting '(budget:foreign currency) *0.25 JPY; diversify'
-```
-
-Argument for `--add-posting` option is a usual posting of transaction
-with an exception for amount specification. More precisely, you can use
-`'*'` (star symbol) before the amount to indicate that that this is a
-factor for an amount of original matched posting. If the amount includes
-a commodity name, the new posting amount will be in the new commodity;
-otherwise, it will be in the matched posting amount’s commodity.
-
-###### Re-write rules in a file
-
-During the run this tool will execute so called [“Automated
-Transactions”](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
-found in any journal it process. I.e instead of specifying this
-operations in command line you can put them in a journal file.
-
-``` {.shell}
-$ rewrite-rules.journal
-```
-
-Make contents look like this:
-
-``` {.journal}
-= ^income
- (liabilities:tax) *.33
-
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-Note that `'='` (equality symbol) that is used instead of date in
-transactions you usually write. It indicates the query by which you want
-to match the posting to add new ones.
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal
-```
-
-This is something similar to the commands pipeline:
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
- | hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
- --add-posting 'assets:budget *1' \
- > rewritten-tidy-output.journal
-```
-
-It is important to understand that relative order of such entries in
-journal is important. You can re-use result of previously added
-postings.
-
-###### Diff output format
-
-To use this tool for batch modification of your journal files you may
-find useful output in form of unified diff.
-
-``` {.shell}
-$ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax) *.33'
-```
-
-Output might look like:
-
-``` {.diff}
---- /tmp/examples/sample.journal
-+++ /tmp/examples/sample.journal
-@@ -18,3 +18,4 @@
- 2008/01/01 income
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:salary
-+ (liabilities:tax) 0
-@@ -22,3 +23,4 @@
- 2008/06/01 gift
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:gifts
-+ (liabilities:tax) 0
-```
-
-If you’ll pass this through `patch` tool you’ll get transactions
-containing the posting that matches your query be updated. Note that
-multiple files might be update according to list of input files
-specified via `--file` options and `include` directives inside of these
-files.
-
-Be careful. Whole transaction being re-formatted in a style of output
-from `hledger print`.
-
-See also:
-
-https://github.com/simonmichael/hledger/issues/99
-
-###### rewrite vs. print –auto
-
-This command predates print –auto, and currently does much the same
-thing, but with these differences:
-
-- with multiple files, rewrite lets rules in any file affect all other
- files. print –auto uses standard directive scoping; rules affect
- only child files.
-
-- rewrite’s query limits which transactions can be rewritten; all are
- printed. print –auto’s query limits which transactions are printed.
-
-- rewrite applies rules specified on command line or in the journal.
- print –auto applies rules specified in the journal.
-
-#### roi
-
-roi\
-Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments.
-
-This command assumes that you have account(s) that hold nothing but your
-investments and whenever you record current appraisal/valuation of these
-investments you offset unrealized profit and loss into account(s) that,
-again, hold nothing but unrealized profit and loss.
-
-Any transactions affecting balance of investment account(s) and not
-originating from unrealized profit and loss account(s) are assumed to be
-your investments or withdrawals.
-
-At a minimum, you need to supply a query (which could be just an account
-name) to select your investments with `--inv`, and another query to
-identify your profit and loss transactions with `--pnl`.
-
-It will compute and display the internalized rate of return (IRR) and
-time-weighted rate of return (TWR) for your investments for the time
-period requested. Both rates of return are annualized before display,
-regardless of the length of reporting interval.
-
-#### stats
-
-stats\
-Show some journal statistics.
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-Example:
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### tags
-
-tags\
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With QUERY arguments, only transactions matching the query are
-considered.
-
-#### test
-
-test\
-Run built-in unit tests.
-
-This command runs the unit tests built in to hledger-lib and hledger,
-printing test names and results on stdout. If any test fails, the exit
-code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it’s nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger’s help, while `hledger web -h` shows
- hledger-web’s help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account’s transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account, but it’s
-superseded now by the built-in [roi](#roi) command.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo’s bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger’s journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but “No command ‘hledger’ found”**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here’s an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**“Illegal byte sequence” or “Invalid or incomplete multibyte or wide
-character” errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I’m not sure yet).
-
-Here’s an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here’s one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger’s curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger’s command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-Note hledger-ui has some different defaults (experimental):
-
-- it generates rule-based transactions and postings by default
- (–forecast and –auto are always on).
-- it hides transactions dated in the future by default (change this
- with –future or the F key).
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account’s register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`-F --flat`
-: show accounts as a list (default)
-
-`-T --tree`
-: show accounts as a tree
-
-`--future`
-: show transactions dated later than today (normally hidden)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ‘,’)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you’re on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-“current” period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-As mentioned above, hledger-ui shows auto-generated periodic
-transactions, and hides future transactions (auto-generated or not) by
-default. `F` toggles showing and hiding these future transactions. This
-is similar to using a query like `date:-tomorrow`, but more convenient.
-(experimental)
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won’t be centered, since we don’t scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger’s add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger’s balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are shown as a flat list by default. Press `T` to toggle
-tree mode. In flat mode, account balances are exclusive of subaccounts,
-except where subaccounts are hidden by a depth limit (see below). In
-tree mode, all account balances are inclusive of subaccounts.
-
-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.
-`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,
-or press `ESCAPE`.
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account’s transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account’s balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-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 flat
-mode but this account has subaccounts which are not shown due to a depth
-limit. In other words, the register always shows the transactions
-contributing to the balance shown on the accounts screen.\
-Tree mode/flat mode can be toggled with `T` here also.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger’s print command and journal format
-(hledger\_journal(5)).
-
-The transaction’s date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction’s position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn’t work (hledger-ui can’t read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don’t browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ‘,’)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn’t work (hledger-web can’t read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-Journal - hledger’s default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger’s usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that’s not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger’s journal format is a compatible subset, mostly, of [ledger’s
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It’s safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you’re getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here’s an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing…
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it’s best to follow a
-consistent rule. Eg write the bank’s clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here’s an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction’s date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger’s earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the “unmarked” state
-is called “uncleared”. As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger’s behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What “uncleared”, “pending”, and “cleared” actually mean is up to you.
-Here’s one suggestion:
-
- ---------------------------------------------------------------------
- status meaning
- ----------- ---------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ---------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction’s description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-“narration” in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the “quantity”) and optionally a currency
- symbol/commodity name (the “commodity”).
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it’s not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don’t affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D’s default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price’s commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account’s opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting’s amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account’s postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account’s
-balance on the same day, you’ll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don’t work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity’s balance within the
-(possibly multi-commodity) account balance.\
-This is how assertions work in Ledger also. We could call this a
-“partial” balance assertion.
-
-To assert the balance of more than one commodity in an account, you can
-write multiple postings, each asserting one commodity’s balance.
-
-You can make a stronger kind of balance assertion, by writing a double
-equals sign (`==EXPECTEDBALANCE`). This “complete” balance assertion
-asserts the absence of other commodities (or, that their balance is 0,
-which to hledger is equivalent.)
-
-``` {.journal}
-2013/1/1
- a $1
- a 1€
- b $-1
- c -1€
-
-2013/1/2 ; These assertions succeed
- a 0 = $1
- a 0 = 1€
- b 0 == $-1
- c 0 == -1€
-
-2013/1/3 ; This assertion fails as 'a' also contains 1€
- a 0 == $1
-```
-
-It’s not yet possible to make a complete assertion about a balance that
-has multiple commodities. One workaround is to isolate each commodity
-into its own subaccount:
-
-``` {.journal}
-2013/1/1
- a:usd $1
- a:euro 1€
- b
-
-2013/1/2
- a 0 == 0
- a:usd 0 == $1
- a:euro 0 == 1€
-```
-
-##### Assertions and prices
-
-Balance assertions ignore [transaction prices](#transaction-prices), and
-should normally be written without one:
-
-``` {.journal}
-2019/1/1
- (a) $1 @ €1 = $1
-```
-
-We do allow prices to be written there, however, and
-[print](/manual.html#print) shows them, even though they don’t affect
-whether the assertion passes or fails. This is for backward
-compatibility (hledger’s [close](/manual.html#close) command used to
-generate balance assertions with prices), and because [balance
-*assignments*](#balance-assignments) do use them (see below).
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account’s exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report’s flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-##### Assertions and precision
-
-Balance assertions compare the exactly calculated amounts, which are not
-always what is shown by reports. Eg a [commodity
-directive](http://hledger.org/journal.html#declaring-commodities) may
-limit the display precision, but this will not affect balance
-assertions. Balance assertion failure messages show exact amounts.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account’s balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-##### Balance assignments and prices
-
-A [transaction price](#transaction-prices) in a balance assignment will
-cause the calculated amount to have that price attached:
-
-``` {.journal}
-2019/1/1
- (a) = $1 @ €2
-```
-
- $ hledger print --explicit
- 2019/01/01
- (a) $1 @ €2 = $1 @ €2
-
-#### Transaction prices
-
-Within a transaction, you can note an amount’s price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price’s commodity, if any. (mnemonic: “B”
-is from “cost Basis”, as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3’s postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger’s tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- “`a comment containing`” is just comment text, not a tag
-- “`tag1`” is a tag with no value
-- “`tag2`” is another tag, whose value is “`some value ...`”
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger’s
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger’s tag values are simple strings.
-
-#### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger’s directives are
-based on a subset of Ledger’s, but there are many differences (and also
-some differences between hledger versions).
-
-Directives’ behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of
- 2018/06)
- -------------------------------------------- --------------------- --------------- -------------------- -----------------
- [`account`](#declaring-accounts) any text document account all entries in
- names, declare all files, before
- account types & or after
- display order
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account following
- names inline/included
- entries until end
- of current file
- or end directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common following
- parent to account inline/included
- names entries until end
- of current file
- or end directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of following
- journal inline/included
- entries until end
- of current file
- or end directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity number notation:
- and its number following entries
- notation & display in that commodity
- style in all files;
- display
- style: amounts of
- that commodity in
- reports
-
- [`D`](#default-commodity) declare a commodity, commodity: all
- number notation & commodityless
- display style for entries in all
- commodityless files; number
- amounts notation:
- following
- commodityless
- entries and
- entries in that
- commodity in all
- files;
- display
- style: amounts of
- that commodity in
- reports
-
- [`include`](#including-other-files) include what the included
- entries/directives directives affect
- from another file
-
- [`P`](#market-prices) declare a market amounts of that
- price for a commodity in
- commodity reports, when -V
- is used
-
- [`Y`](#default-year) declare a year for following
- yearless dates inline/included
- entries until end
- of current file
- -------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------
- subdirective optional indented directive line immediately following
- a parent directive
-
- number how to interpret numbers when parsing journal entries
- notation (the identity of the decimal separator character).
- (Currently each commodity can have its own notation,
- even in the same file.)
-
- display style how to display amounts of a commodity in reports
- (symbol side and spacing, digit groups, decimal
- separator, decimal places)
-
- directive which entries and (when there are multiple files) which
- scope files are affected by a directive
- -------------- -------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-##### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-##### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don’t
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the “format” subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-##### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger’s default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-##### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-“historical prices”.) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-##### Declaring accounts
-
-`account` directives can be used to pre-declare accounts. Though not
-required, they can provide several benefits:
-
-- They can document your intended chart of accounts, providing a
- reference.
-- They can store extra information about accounts (account numbers,
- notes, etc.)
-- They can help hledger know your accounts’ types (asset, liability,
- equity, revenue, expense), useful for reports like balancesheet and
- incomestatement.
-- They control account display order in reports, allowing
- non-alphabetic sorting (eg Revenues to appear above Expenses).
-- They help with account name completion in the add command,
- hledger-iadd, hledger-web, ledger-mode etc.
-
-The simplest form is just the word `account` followed by a hledger-style
-[account name](manual.html#account-names), eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-###### Account comments
-
-[Comments](#comments), beginning with a semicolon, optionally including
-[tags](journal.html#tags), can be written after the account name, and/or
-on following lines. Eg:
-
-``` {.journal}
-account assets:bank:checking ; a comment
- ; another comment
- ; acctno:12345, a tag
-```
-
-Tip: comments on the same line require hledger 1.12+. If you need your
-journal to be compatible with older hledger versions, write comments on
-the next line instead.
-
-###### Account subdirectives
-
-We also allow (and ignore) Ledger-style indented subdirectives, just for
-compatibility.:
-
-``` {.journal}
-account assets:bank:checking
- format blah blah ; <- subdirective, ignored
-```
-
-Here is the full syntax of account directives:
-
-``` {.journal}
-account ACCTNAME [ACCTTYPE] [;COMMENT]
- [;COMMENTS]
- [LEDGER-STYLE SUBDIRECTIVES, IGNORED]
-```
-
-###### Account types
-
-hledger recognises five types (or classes) of account: Asset, Liability,
-Equity, Revenue, Expense. This is used by a few accounting-aware reports
-such as [balancesheet](manual.html#balancesheet),
-[incomestatement](manual.html#incomestatement) and
-[cashflow](manual.html#cashflow).
-
-####### Auto-detected account types
-
-If you name your top-level accounts with some variation of `assets`,
-`liabilities`/`debts`, `equity`, `revenues`/`income`, or `expenses`,
-their types are detected automatically.
-
-####### Account types declared with tags
-
-More generally, you can declare an account’s type with an account
-directive, by writing a `type:` [tag](journal.html#tags) in a comment,
-followed by one of the words `Asset`, `Liability`, `Equity`, `Revenue`,
-`Expense`, or one of the letters `ALERX` (case insensitive):
-
-``` {.journal}
-account assets ; type:Asset
-account liabilities ; type:Liability
-account equity ; type:Equity
-account revenues ; type:Revenue
-account expenses ; type:Expenses
-```
-
-####### Account types declared with account type codes
-
-Or, you can write one of those letters separated from the account name
-by two or more spaces, but this should probably be considered deprecated
-as of hledger 1.13:
-
-``` {.journal}
-account assets A
-account liabilities L
-account equity E
-account revenues R
-account expenses X
-```
-
-####### Overriding auto-detected types
-
-If you ever override the types of those auto-detected english account
-names mentioned above, you might need to help the reports a bit. Eg:
-
-``` {.journal}
-; make "liabilities" not have the liability type - who knows why
-account liabilities ; type:E
-
-; we need to ensure some other account has the liability type,
-; otherwise balancesheet would still show "liabilities" under Liabilities
-account - ; type:L
-```
-
-###### Account display order
-
-Account directives also set the order in which accounts are displayed,
-eg in reports, the hledger-ui accounts screen, and the hledger-web
-sidebar. By default accounts are listed in alphabetical order. But if
-you have these account directives in the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-you’ll see those accounts displayed in declaration order, not
-alphabetically:
-
-``` {.shell}
-$ hledger accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-```
-
-Undeclared accounts, if any, are displayed last, in alphabetical order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). And currently, this
-directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`’s subaccounts, but
-not the position of `other` among the top-level accounts. This means: -
-you will sometimes declare parent accounts (eg `account other` above)
-that you don’t intend to post to, just to customize their display order
-- sibling accounts stay together (you couldn’t display `x:y` in between
-`a:b` and `a:c`).
-
-##### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It’s useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-#### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-Partial or relative dates (M/D, D, tomorrow, last week) in the period
-expression can work (useful or not). They will be relative to today’s
-date, unless a Y default year directive is in effect, in which case they
-will be relative to Y/1/1.
-
-##### Two spaces after the period expression
-
-If the period expression is followed by a transaction description, these
-must be separated by **two or more spaces**. This helps hledger know
-where the period expression ends, so that descriptions can not
-accidentally alter their meaning, as in this example:
-
- ; 2 or more spaces needed here, so the period is not understood as "every 2 months in 2020"
- ; ||
- ; vv
- ~ every 2 months in 2020, we will review
- assets:bank:checking $1500
- income:acme inc
-
-##### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where “today” means the current date at report time. The “later of” rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-##### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-#### Transaction modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. They can be enabled by using the
-`--auto` flag. Currently, just one kind of change is possible: adding
-extra postings. These rule-generated postings are known as “automated
-postings” or “auto postings”.
-
-A transaction modifier rule looks quite like a normal transaction,
-except the first line is an equals sign followed by a
-[query](manual.html#queries) that matches certain postings (mnemonic:
-`=` suggests matching). And each “posting” is actually a
-posting-generating rule:
-
-``` {.journal}
-= QUERY
- ACCT AMT
- ACCT [AMT]
- ...
-```
-
-These posting rules look like normal postings, except the amount can be:
-
-- a normal amount with a commodity symbol, eg `$2`. This will be used
- as-is.
-- a number, eg `2`. The commodity symbol (if any) from the matched
- posting will be added to this.
-- a numeric multiplier, eg `*2` (a star followed by a number N). The
- matched posting’s amount (and total price, if any) will be
- multiplied by N.
-- a multiplier with a commodity symbol, eg `*$2` (a star, number N,
- and symbol S). The matched posting’s amount will be multiplied by N,
- and its commodity symbol will be replaced with S.
-
-Some examples:
-
-``` {.journal}
-; every time I buy food, schedule a dollar donation
-= expenses:food
- (liabilities:charity) $-1
-
-; when I buy a gift, also deduct that amount from a budget envelope subaccount
-= expenses:gifts
- assets:checking:gifts *-1
- assets:checking *1
-
-2017/12/1
- expenses:food $10
- assets:checking
-
-2017/12/14
- expenses:gifts $20
- assets:checking
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/01
- expenses:food $10
- assets:checking
- (liabilities:charity) $-1
-
-2017/12/14
- expenses:gifts $20
- assets:checking
- assets:checking:gifts -$20
- assets:checking $20
-```
-
-##### Auto postings and transaction balancing / inferred amounts / balance assertions
-
-Currently, transaction modifiers are applied / auto postings are added:
-
-- after [missing amounts are inferred, and transactions are checked
- for balancedness](#postings),
-- but before [balance assertions](#balance-assertions) are checked.
-
-Note this means that journal entries must be balanced both before and
-after auto postings are added. This changed in hledger 1.12+; see
-[\#893](https://github.com/simonmichael/hledger/issues/893) for
-background.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------------------------------
- Editor
- ---------- --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime
- Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio
- Code
- -------------------------------------------------------------------------------------------------------
-
-
-
-
-## csv format
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you’ll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You’ll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you’ll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "6/11/2013" (note the - to make leading zeros optional):
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*…
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*…
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*…\
- *`FIELDASSIGNMENTS`*…
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it’s not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file’s directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn’t needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It’s not yet possible to
-generate entries with more than two postings. It’s conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)’s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a “timeclock” executable which I think is just the
- ledger 2 executable renamed.
-
-
-## timedot format
-
-This doc is for version **1.13**. []{.docversions}
-
-### NAME
-
-Timedot - hledger’s human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called “timedot”, this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we’ll assume it’s time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: …. ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.13/timeclock.md b/site/doc/1.13/timeclock.md
deleted file mode 100644
index efd88e661..000000000
--- a/site/doc/1.13/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.13/timedot.md b/site/doc/1.13/timedot.md
deleted file mode 100644
index cf152bc43..000000000
--- a/site/doc/1.13/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.13**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.14/.snapshot b/site/doc/1.14/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.14/csv.md b/site/doc/1.14/csv.md
deleted file mode 100644
index 6bccca013..000000000
--- a/site/doc/1.14/csv.md
+++ /dev/null
@@ -1,274 +0,0 @@
-# csv format
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "6/11/2013" (note the - to make leading zeros optional):
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.14/hledger-api.md b/site/doc/1.14/hledger-api.md
deleted file mode 100644
index 134da4ac2..000000000
--- a/site/doc/1.14/hledger-api.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# hledger-api
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.14/hledger-ui.md b/site/doc/1.14/hledger-ui.md
deleted file mode 100644
index 7f4232fe7..000000000
--- a/site/doc/1.14/hledger-ui.md
+++ /dev/null
@@ -1,429 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-Note hledger-ui has some different defaults (experimental):
-
-- it generates rule-based transactions and postings by default
- (--forecast and --auto are always on).
-- it hides transactions dated in the future by default (change this
- with --future or the F key).
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`-F --flat`
-: show accounts as a list (default)
-
-`-T --tree`
-: show accounts as a tree
-
-`--future`
-: show transactions dated later than today (normally hidden)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-As mentioned above, hledger-ui shows auto-generated periodic
-transactions, and hides future transactions (auto-generated or not) by
-default. `F` toggles showing and hiding these future transactions. This
-is similar to using a query like `date:-tomorrow`, but more convenient.
-(experimental)
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are shown as a flat list by default. Press `T` to toggle
-tree mode. In flat mode, account balances are exclusive of subaccounts,
-except where subaccounts are hidden by a depth limit (see below). In
-tree mode, all account balances are inclusive of subaccounts.
-
-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.
-`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,
-or press `ESCAPE`.
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-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 flat
-mode but this account has subaccounts which are not shown due to a depth
-limit. In other words, the register always shows the transactions
-contributing to the balance shown on the accounts screen.\
-Tree mode/flat mode can be toggled with `T` here also.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.14/hledger-web.md b/site/doc/1.14/hledger-web.md
deleted file mode 100644
index cca02ec33..000000000
--- a/site/doc/1.14/hledger-web.md
+++ /dev/null
@@ -1,317 +0,0 @@
-# hledger-web
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-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
-will be applied in addition to any search query entered there.
-
-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
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-`--capabilities=CAP[,CAP..]`
-: enable the view, add, and/or manage capabilities (default: view,add)
-
-`--capabilities-header=HTTPHEADER`
-: read capabilities to enable from a HTTP header, like
- X-Sandstorm-Permissions (default: disabled)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-## PERMISSIONS
-
-By default, hledger-web allows anyone who can reach it to view the
-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
- 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 files
- - `add` - allows adding new transactions to the main journal file
- - `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
- on Sandstorm uses the X-Sandstorm-Permissions header to integrate
- with Sandstorm's permissions. This is disabled by default.
-
-## 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 let
-you edit, upload, or download the journal file or any files it includes.
-
-Note, unlike any other hledger command, in this mode you (or any
-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,
-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.)
-
-## RELOADING
-
-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
-file unparseable, hledger-web will display an error message until the
-file has been fixed.
-
-## JSON API
-
-In addition to the web UI, hledger-web provides some JSON API routes.
-These are similar to the API provided by the hledger-api tool, but it
-may be convenient to have them in hledger-web also.
-
- /accountnames
- /transactions
- /prices
- /commodities
- /accounts
- /accounttransactions/#AccountName
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.14/hledger.md b/site/doc/1.14/hledger.md
deleted file mode 100644
index 8feba1e02..000000000
--- a/site/doc/1.14/hledger.md
+++ /dev/null
@@ -1,2612 +0,0 @@
-# hledger
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ',')
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-### Special characters in arguments and queries
-
-In shell command lines, option and argument values which contain
-"problematic" characters, ie spaces, and also characters significant to
-your shell such as `<`, `>`, `(`, `)`, `|` and `$`, should be escaped by
-enclosing them in quotes or by writing backslashes before the
-characters. Eg:
-
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-#### More escaping
-
-Characters significant both to the shell and in [regular
-expressions](#regular-expressions) may need one extra level of escaping.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-
-`hledger balance cur:'\$'`
-
-or:
-
-`hledger balance cur:\\$`
-
-#### Even more escaping
-
-When hledger runs an addon executable (eg you type `hledger ui`, hledger
-runs `hledger-ui`), it de-escapes command-line options and arguments
-once, so you might need to *triple*-escape. Eg in bash, running the ui
-command and matching the dollar sign, it's:
-
-`hledger ui cur:'\\$'`
-
-or:
-
-`hledger ui cur:\\\\$`
-
-If you asked why *four* slashes above, this may help:
-
- ----------------- ---------
- unescaped: `$`
- escaped: `\$`
- double-escaped: `\\$`
- triple-escaped: `\\\\$`
- ----------------- ---------
-
-(The number of backslashes in fish shell is left as an exercise for the
-reader.)
-
-You can always avoid the extra escaping for addons by running the addon
-directly:
-
-`hledger-ui cur:\\$`
-
-#### Less escaping
-
-Inside an [argument file](#argument-expansion), or in the search field
-of hledger-ui or hledger-web, or at a GHCI prompt, you need one less
-level of escaping than at the command line. And backslashes may work
-better than quotes. Eg:
-
-`ghci> :main balance cur:\$`
-
-### Command line tips
-
-If in doubt, keep things simple:
-
-- write options after the command (`hledger CMD -OPTIONS ARGS`)
-- run add-on executables directly (`hledger-ui -OPTIONS ARGS`)
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-To find out exactly how a command line is being parsed, add `--debug=2`
-to troubleshoot.
-
-### Unicode characters
-
-hledger is expected to handle unicode (non-ascii) characters, but this
-requires a well-configured environment.
-
-To handle unicode characters in the command line or input data, a system
-locale that can decode them must be configured (POSIX's default `C`
-locale will not work). Eg in bash, you could do:
-
- export LANG=en_US.UTF-8
-
-See [Troubleshooting](#troubleshooting) for more about this.
-
-Unicode characters should appear correctly in hledger's output. For the
-hledger and hledger-ui tools, this requires that
-
-- your terminal supports unicode
-- the terminal's font includes the required unicode glyphs
-- the terminal is configured to display "wide" characters as double
- width (otherwise report alignment will be off)
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- --------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- --------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- --------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount's commodity, dated on or before today's
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column's
-end date.)
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-### accounts
-
-accounts, a\
-Show account names.
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (the default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `depth:N` or
-`--depth N` or `-N`.
-
-Examples:
-
-``` {.shell}
-$ hledger accounts
-assets:bank:checking
-assets:bank:saving
-assets:cash
-expenses:food
-expenses:supplies
-income:gifts
-income:salary
-liabilities:debts
-```
-
-### activity
-
-activity\
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-Examples:
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-add\
-Prompt for transactions and add them to the journal.
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar (by
- description) recent transaction (filtered by the query, if any) as a
- template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-balance, bal, b\
-Show accounts and their balances.
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-#### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-#### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-#### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-Note this is different from a normal balance report in several ways:
-
-- Only accounts with budget goals during the report period are shown,
- by default.
-
-- In each column, in square brackets after the actual amount, budgeted
- amounts are shown, along with the percentage of budget used.
-
-- All parent accounts are always shown, even in flat mode. Eg assets,
- assets:bank, and expenses above.
-
-- Amounts always include all subaccounts, budgeted or unbudgeted, even
- in flat mode.
-
-This means that the numbers displayed will not always add up! Eg above,
-the `expenses` actual amount includes the gifts and supplies
-transactions, but the `expenses:gifts` and `expenses:supplies` accounts
-are not shown, as they have no budget amounts declared.
-
-This can be confusing. When you need to make things clearer, use the
-`-E/--empty` flag, which will reveal all accounts including unbudgeted
-ones, giving the full picture. Eg:
-
-``` {.shell}
-$ hledger balance -M --budget --empty
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:gifts || 0 $100
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- expenses:supplies || $20 0
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- expenses || $495 [ 103% of $480] $1060 [ 110% of $960]
- expenses:bus || $49 [ 98% of $50] $102 [ 102% of $100]
- expenses:food || $396 [ 99% of $400] $808 [ 101% of $800]
- expenses:movies || $30 [ 100% of $30] $30 [ 50% of $60]
- income || $1950 [ 98% of $2000] $4050 [ 101% of $4000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-##### Nested budgets
-
-You can add budgets to any account in your account hierarchy. If you
-have budgets on both parent account and some of its children, then
-budget(s) of the child account(s) would be added to the budget of their
-parent, much like account balances behave.
-
-In the most simple case this means that once you add a budget to any
-account, all its parents would have budget as well.
-
-To illustrate this, consider the following budget:
-
- ~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-With this, monthly budget for electronics is defined to be \$100 and
-budget for personal expenses is an additional \$1000, which implicity
-means that budget for both `expenses:personal` and `expenses` is \$1100.
-
-Transactions in `expenses:personal:electronics` will be counted both
-towards its \$100 budget and \$1100 of `expenses:personal` , and
-transactions in any other subaccount of `expenses:personal` would be
-counted towards only towards the budget of `expenses:personal`.
-
-For example, let's consider these transactions:
-
-``` {.journal}
-~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-2019/01/01 Google home hub
- expenses:personal:electronics $90.00
- liabilities $-90.00
-
-2019/01/02 Phone screen protector
- expenses:personal:electronics:upgrades $10.00
- liabilities
-
-2019/01/02 Weekly train ticket
- expenses:personal:train tickets $153.00
- liabilities
-
-2019/01/03 Flowers
- expenses:personal $30.00
- liabilities
-```
-
-As you can see, we have transactions in
-`expenses:personal:electronics:upgrades` and
-`expenses:personal:train tickets`, and since both of these accounts are
-without explicitly defined budget, these transactions would be counted
-towards budgets of `expenses:personal:electronics` and
-`expenses:personal` accordingly:
-
-``` {.shell}
-$ hledger balance --budget -M
-Budget performance in 2019/01:
-
- || Jan
-===============================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- liabilities || $-283.00 [ 26% of $-1100.00]
--------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-And with `--empty`, we can get a better picture of budget allocation and
-consumption:
-
-``` {.shell}
-$ hledger balance --budget -M --empty
-Budget performance in 2019/01:
-
- || Jan
-========================================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- expenses:personal:electronics:upgrades || $10.00
- expenses:personal:train tickets || $153.00
- liabilities || $-283.00 [ 26% of $-1100.00]
-----------------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-#### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheet
-
-balancesheet, bs\
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed).
-
-Note this report shows all account balances with normal positive sign
-(like conventional financial statements, unlike balance/print/register)
-(experimental).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheetequity
-
-balancesheetequity, bse\
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-cashflow, cf\
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental).
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### check-dates
-
-check-dates\
-Check that transactions are sorted by increasing date. With --date2,
-checks secondary dates instead. With --strict, dates must also be
-unique. With a query, only matched transactions' dates are checked.
-Reads the default journal file, or another specified with -f.
-
-### check-dupes
-
-check-dupes\
-Reports account names having the same leaf but different prefixes. In
-other words, two or more leaves that are categorized differently. Reads
-the default journal file, or another specified as an argument.
-
-An example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### close
-
-close, equity\
-Prints a "closing balances" transaction and an "opening balances"
-transaction that bring account balances to and from zero, respectively.
-Useful for bringing asset/liability balances forward into a new journal
-file, or for closing out revenues/expenses to retained earnings at the
-end of a period.
-
-The closing transaction transfers balances to "equity:closing balances".
-The opening transaction transfers balances from "equity:opening
-balances". You can chose to print just one of the transactions by using
-the `--opening` or `--closing` flag.
-
-If you split your journal files by time (eg yearly), you will typically
-run this command at the end of the year, and save the closing
-transaction as last entry of the old file, and the opening transaction
-as the first entry of the new file. This makes the files self contained,
-so that correct balances are reported no matter which of them are
-loaded. Ie, if you load just one file, the balances are initialised
-correctly; or if you load several files, the redundant closing/opening
-transactions cancel each other out. (They will show up in print or
-register reports; you can exclude them with a query like
-`not:desc:'(opening|closing) balances'`.)
-
-If you're running a business, you might also use this command to "close
-the books" at the end of an accounting period, transferring income
-statement account balances to retained earnings. (You may want to change
-the equity account name to something like "equity:retained earnings".)
-
-By default, the closing transaction is dated yesterday, the balances are
-calculated as of end of yesterday, and the opening transaction is dated
-today. To close on some other date, use: `hledger close -e OPENINGDATE`.
-Eg, to close/open on the 2018/2019 boundary, use `-e 2019`. You can also
-use -p or `date:PERIOD` (any starting date is ignored).
-
-Both transactions will include balance assertions for the
-closed/reopened accounts. You probably shouldn't use status or realness
-filters (like -C or -R or `status:`) with this command, or the generated
-balance assertions will depend on these flags. Likewise, if you run this
-command with --auto, the balance assertions will probably always require
---auto.
-
-Examples:
-
-Carrying asset/liability balances into a new file for 2019, all from
-command line:
-
-*Warning: we use `>>` here to append; be careful not to type a single
-`>` which would wipe your journal!*
-
- $ hledger close -f 2018.journal -e 2019 assets liabilities --opening >>2019.journal
- $ hledger close -f 2018.journal -e 2019 assets liabilities --closing >>2018.journal
-
-Now:
-
- $ hledger bs -f 2019.journal # one file - balances are correct
- $ hledger bs -f 2018.journal -f 2019.journal # two files - balances still correct
- $ hledger bs -f 2018.journal not:desc:closing # to see year-end balances, must exclude closing txn
-
-Transactions spanning the closing date can complicate matters, breaking
-balance assertions:
-
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- assets:bank:checking -5 ; [2019/1/2]
-
-Here's one way to resolve that:
-
- ; in 2018.journal:
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- liabilities:pending
-
- ; in 2019.journal:
- 2019/1/2 clearance of last year's pending transactions
- liabilities:pending 5 = 0
- assets:checking
-
-### files
-
-files\
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-### help
-
-help\
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-Examples:
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-import\
-Read new transactions added to each FILE since last run, and add them to
-the main journal file. Or with --dry-run, just print the transactions
-that would be added.
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-incomestatement, is\
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental).
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### prices
-
-prices\
-Print [market price directives](/manual#market-prices) from the journal.
-With --costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With --inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-### print
-
-print, txns, p\
-Show transaction journal entries, sorted by date.
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. With --date2, transactions
-are sorted by secondary date instead.
-
-print's output is always a valid [hledger journal](/journal.html).\
-It preserves all transaction information, but it does not preserve
-directives or inter-transaction comments
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-print-unique\
-Print transactions which do not reuse an already-seen description.
-
-Example:
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-### register
-
-register, reg, r\
-Show postings and their running total.
-
-The register command displays postings in date order, one per line, and
-their running total. This is typically used with a [query](#queries)
-selecting a particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-With --date2, it shows and sorts by secondary date instead.
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-The `--invert` flag negates all amounts. For example, it can be used on
-an income account where amounts are normally displayed as negative
-numbers. It's also useful to show postings on the checking account
-together with the related account:
-
- $ hledger register --related --invert assets:checking
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram (won't display correctly in --help):
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, & description width 40
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### register-match
-
-register-match\
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. If there are multiple equally good
-matches, it shows the most recent. Query options (options, not
-arguments) can be used to restrict the search space. Helps
-ledger-autosync detect already-seen transactions when importing.
-
-### rewrite
-
-rewrite\
-Print all transactions, rewriting the postings of matched transactions.
-For now the only rewrite available is adding new postings, like print
---auto.
-
-This is a start at a generic rewriter of transaction entries. It reads
-the default journal and prints the transactions, like print, but adds
-one or more specified postings to any transactions matching QUERY. The
-posting amounts can be fixed, or a multiplier of the existing
-transaction's first posting amount.
-
-Examples:
-
- hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
- hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
- hledger-rewrite.hs -f rewrites.hledger
-
-rewrites.hledger may consist of entries like:
-
- = ^income amt:<0 date:2017
- (liabilities:tax) *0.33 ; tax on income
- (reserve:grocery) *0.25 ; reserve 25% for grocery
- (reserve:) *0.25 ; reserve 25% for grocery
-
-Note the single quotes to protect the dollar sign from bash, and the two
-spaces between account and amount.
-
-More:
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-$ hledger rewrite -- ^income --add-posting '(budget:foreign currency) *0.25 JPY; diversify'
-```
-
-Argument for `--add-posting` option is a usual posting of transaction
-with an exception for amount specification. More precisely, you can use
-`'*'` (star symbol) before the amount to indicate that that this is a
-factor for an amount of original matched posting. If the amount includes
-a commodity name, the new posting amount will be in the new commodity;
-otherwise, it will be in the matched posting amount's commodity.
-
-##### Re-write rules in a file
-
-During the run this tool will execute so called ["Automated
-Transactions"](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
-found in any journal it process. I.e instead of specifying this
-operations in command line you can put them in a journal file.
-
-``` {.shell}
-$ rewrite-rules.journal
-```
-
-Make contents look like this:
-
-``` {.journal}
-= ^income
- (liabilities:tax) *.33
-
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-Note that `'='` (equality symbol) that is used instead of date in
-transactions you usually write. It indicates the query by which you want
-to match the posting to add new ones.
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal
-```
-
-This is something similar to the commands pipeline:
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
- | hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
- --add-posting 'assets:budget *1' \
- > rewritten-tidy-output.journal
-```
-
-It is important to understand that relative order of such entries in
-journal is important. You can re-use result of previously added
-postings.
-
-##### Diff output format
-
-To use this tool for batch modification of your journal files you may
-find useful output in form of unified diff.
-
-``` {.shell}
-$ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax) *.33'
-```
-
-Output might look like:
-
-``` {.diff}
---- /tmp/examples/sample.journal
-+++ /tmp/examples/sample.journal
-@@ -18,3 +18,4 @@
- 2008/01/01 income
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:salary
-+ (liabilities:tax) 0
-@@ -22,3 +23,4 @@
- 2008/06/01 gift
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:gifts
-+ (liabilities:tax) 0
-```
-
-If you'll pass this through `patch` tool you'll get transactions
-containing the posting that matches your query be updated. Note that
-multiple files might be update according to list of input files
-specified via `--file` options and `include` directives inside of these
-files.
-
-Be careful. Whole transaction being re-formatted in a style of output
-from `hledger print`.
-
-See also:
-
-https://github.com/simonmichael/hledger/issues/99
-
-##### rewrite vs. print --auto
-
-This command predates print --auto, and currently does much the same
-thing, but with these differences:
-
-- with multiple files, rewrite lets rules in any file affect all other
- files. print --auto uses standard directive scoping; rules affect
- only child files.
-
-- rewrite's query limits which transactions can be rewritten; all are
- printed. print --auto's query limits which transactions are printed.
-
-- rewrite applies rules specified on command line or in the journal.
- print --auto applies rules specified in the journal.
-
-### roi
-
-roi\
-Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments.
-
-This command assumes that you have account(s) that hold nothing but your
-investments and whenever you record current appraisal/valuation of these
-investments you offset unrealized profit and loss into account(s) that,
-again, hold nothing but unrealized profit and loss.
-
-Any transactions affecting balance of investment account(s) and not
-originating from unrealized profit and loss account(s) are assumed to be
-your investments or withdrawals.
-
-At a minimum, you need to supply a query (which could be just an account
-name) to select your investments with `--inv`, and another query to
-identify your profit and loss transactions with `--pnl`.
-
-It will compute and display the internalized rate of return (IRR) and
-time-weighted rate of return (TWR) for your investments for the time
-period requested. Both rates of return are annualized before display,
-regardless of the length of reporting interval.
-
-### stats
-
-stats\
-Show some journal statistics.
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-Example:
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### tags
-
-tags\
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With QUERY arguments, only transactions matching the query are
-considered.
-
-### test
-
-test\
-Run built-in unit tests.
-
-This command runs the unit tests built in to hledger-lib and hledger,
-printing test names and results on stdout. If any test fails, the exit
-code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it's nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account, but it's
-superseded now by the built-in [roi](#roi) command.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.14/images/.DS_Store b/site/doc/1.14/images/.DS_Store
deleted file mode 100644
index 98ecda7b9..000000000
Binary files a/site/doc/1.14/images/.DS_Store and /dev/null differ
diff --git a/site/doc/1.14/images/balance-q-inc.png b/site/doc/1.14/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.14/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.14/images/coins.svg b/site/doc/1.14/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.14/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.14/images/coins2-248.png b/site/doc/1.14/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.14/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.14/images/coins2.png b/site/doc/1.14/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.14/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.14/images/data-model.png b/site/doc/1.14/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.14/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-charts-2.png b/site/doc/1.14/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.14/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-lib-api.png b/site/doc/1.14/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/doc/1.14/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-screen-1.png b/site/doc/1.14/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.14/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.14/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.14/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.14/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web-journal.png b/site/doc/1.14/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.14/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/.DS_Store b/site/doc/1.14/images/hledger-web/.DS_Store
deleted file mode 100644
index 830538401..000000000
Binary files a/site/doc/1.14/images/hledger-web/.DS_Store and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/add.png b/site/doc/1.14/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/help.png b/site/doc/1.14/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/help2.png b/site/doc/1.14/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.14/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/journal.png b/site/doc/1.14/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/journal2.png b/site/doc/1.14/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/normal/register.png b/site/doc/1.14/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.14/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/add.png b/site/doc/1.14/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/help.png b/site/doc/1.14/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/help2.png b/site/doc/1.14/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/journal-sidebar.png b/site/doc/1.14/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.14/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/journal.png b/site/doc/1.14/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/journal2.png b/site/doc/1.14/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/register.png b/site/doc/1.14/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.14/images/hledger-web/small/register2.png b/site/doc/1.14/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.14/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.14/images/linux.png b/site/doc/1.14/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.14/images/linux.png and /dev/null differ
diff --git a/site/doc/1.14/images/mac.png b/site/doc/1.14/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.14/images/mac.png and /dev/null differ
diff --git a/site/doc/1.14/images/manual.png b/site/doc/1.14/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.14/images/manual.png and /dev/null differ
diff --git a/site/doc/1.14/images/sshot.png b/site/doc/1.14/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.14/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.14/images/watchhours.png b/site/doc/1.14/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.14/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.14/images/windows.png b/site/doc/1.14/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.14/images/windows.png and /dev/null differ
diff --git a/site/doc/1.14/journal.md b/site/doc/1.14/journal.md
deleted file mode 100644
index a79d5d408..000000000
--- a/site/doc/1.14/journal.md
+++ /dev/null
@@ -1,1485 +0,0 @@
-# journal format
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- -------------------------------------------------------------------------
- status meaning
- ----------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- -------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like, for example, `= EXPECTEDBALANCE`
-following a posting's amount. Eg here we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`-I/--ignore-assertions` flag, which can be useful for troubleshooting
-or for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance.\
-This is how assertions work in Ledger also. We could call this a
-"partial" balance assertion.
-
-To assert the balance of more than one commodity in an account, you can
-write multiple postings, each asserting one commodity's balance.
-
-You can make a stronger "total" balance assertion by writing a double
-equals sign (`== EXPECTEDBALANCE`). This asserts that there are no other
-unasserted commodities in the account (or, that their balance is 0).
-
-``` {.journal}
-2013/1/1
- a $1
- a 1€
- b $-1
- c -1€
-
-2013/1/2 ; These assertions succeed
- a 0 = $1
- a 0 = 1€
- b 0 == $-1
- c 0 == -1€
-
-2013/1/3 ; This assertion fails as 'a' also contains 1€
- a 0 == $1
-```
-
-It's not yet possible to make a complete assertion about a balance that
-has multiple commodities. One workaround is to isolate each commodity
-into its own subaccount:
-
-``` {.journal}
-2013/1/1
- a:usd $1
- a:euro 1€
- b
-
-2013/1/2
- a 0 == 0
- a:usd 0 == $1
- a:euro 0 == 1€
-```
-
-#### Assertions and prices
-
-Balance assertions ignore [transaction prices](#transaction-prices), and
-should normally be written without one:
-
-``` {.journal}
-2019/1/1
- (a) $1 @ €1 = $1
-```
-
-We do allow prices to be written there, however, and
-[print](/manual.html#print) shows them, even though they don't affect
-whether the assertion passes or fails. This is for backward
-compatibility (hledger's [close](/manual.html#close) command used to
-generate balance assertions with prices), and because [balance
-*assignments*](#balance-assignments) do use them (see below).
-
-#### Assertions and subaccounts
-
-The balance assertions above (`=` and `==`) do not count the balance
-from subaccounts; they check the account's exclusive balance only. You
-can assert the balance including subaccounts by writing `=*` or `==*`,
-eg:
-
-``` {.journal}
-2019/1/1
- equity:opening balances
- checking:a 5
- checking:b 5
- checking 1 ==* 11
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Assertions and precision
-
-Balance assertions compare the exactly calculated amounts, which are not
-always what is shown by reports. Eg a [commodity
-directive](http://hledger.org/journal.html#declaring-commodities) may
-limit the display precision, but this will not affect balance
-assertions. Balance assertion failure messages show exact amounts.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Balance assignments and prices
-
-A [transaction price](#transaction-prices) in a balance assignment will
-cause the calculated amount to have that price attached:
-
-``` {.journal}
-2019/1/1
- (a) = $1 @ €2
-```
-
- $ hledger print --explicit
- 2019/01/01
- (a) $1 @ €2 = $1 @ €2
-
-### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price's commodity, if any. (mnemonic: "B"
-is from "cost Basis", as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger's directives are
-based on a subset of Ledger's, but there are many differences (and also
-some differences between hledger versions).
-
-Directives' behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -----------------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of
- 2018/06)
- -------------------------------------------- --------------------- --------------- ---------------------------- -------------------
- [`account`](#declaring-accounts) any text document account names, all entries in all
- declare account types & files, before or
- display order after
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account names following
- inline/included
- entries until end
- of current file or
- end directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common parent to following
- account names inline/included
- entries until end
- of current file or
- end directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of journal following
- inline/included
- entries until end
- of current file or
- end directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity and its number notation:
- number notation & display following entries
- style in that commodity
- in all files;
- display style:
- amounts of that
- commodity in
- reports
-
- [`D`](#default-commodity) declare a commodity, number commodity: all
- notation & display style for commodityless
- commodityless amounts entries in all
- files; number
- notation: following
- commodityless
- entries and entries
- in that commodity
- in all files;
- display style:
- amounts of that
- commodity in
- reports
-
- [`include`](#including-other-files) include entries/directives what the included
- from another file directives affect
-
- [`P`](#market-prices) declare a market price for a amounts of that
- commodity commodity in
- reports, when -V is
- used
-
- [`Y`](#default-year) declare a year for yearless following
- dates inline/included
- entries until end
- of current file
- -----------------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------------
- subdirective optional indented directive line immediately following a
- parent directive
-
- number how to interpret numbers when parsing journal entries (the
- notation identity of the decimal separator character). (Currently each
- commodity can have its own notation, even in the same file.)
-
- display style how to display amounts of a commodity in reports (symbol side
- and spacing, digit groups, decimal separator, decimal places)
-
- directive which entries and (when there are multiple files) which files
- scope are affected by a directive
- -------------- -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-#### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-#### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-#### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-#### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-"historical prices".) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-#### Declaring accounts
-
-`account` directives can be used to pre-declare accounts. Though not
-required, they can provide several benefits:
-
-- They can document your intended chart of accounts, providing a
- reference.
-- They can store extra information about accounts (account numbers,
- notes, etc.)
-- They can help hledger know your accounts' types (asset, liability,
- equity, revenue, expense), useful for reports like balancesheet and
- incomestatement.
-- They control account display order in reports, allowing
- non-alphabetic sorting (eg Revenues to appear above Expenses).
-- They help with account name completion in the add command,
- hledger-iadd, hledger-web, ledger-mode etc.
-
-The simplest form is just the word `account` followed by a hledger-style
-[account name](manual.html#account-names), eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-##### Account comments
-
-[Comments](#comments), beginning with a semicolon, optionally including
-[tags](journal.html#tags), can be written after the account name, and/or
-on following lines. Eg:
-
-``` {.journal}
-account assets:bank:checking ; a comment
- ; another comment
- ; acctno:12345, a tag
-```
-
-Tip: comments on the same line require hledger 1.12+. If you need your
-journal to be compatible with older hledger versions, write comments on
-the next line instead.
-
-##### Account subdirectives
-
-We also allow (and ignore) Ledger-style indented subdirectives, just for
-compatibility.:
-
-``` {.journal}
-account assets:bank:checking
- format blah blah ; <- subdirective, ignored
-```
-
-Here is the full syntax of account directives:
-
-``` {.journal}
-account ACCTNAME [ACCTTYPE] [;COMMENT]
- [;COMMENTS]
- [LEDGER-STYLE SUBDIRECTIVES, IGNORED]
-```
-
-##### Account types
-
-hledger recognises five types (or classes) of account: Asset, Liability,
-Equity, Revenue, Expense. This is used by a few accounting-aware reports
-such as [balancesheet](manual.html#balancesheet),
-[incomestatement](manual.html#incomestatement) and
-[cashflow](manual.html#cashflow).
-
-###### Auto-detected account types
-
-If you name your top-level accounts with some variation of `assets`,
-`liabilities`/`debts`, `equity`, `revenues`/`income`, or `expenses`,
-their types are detected automatically.
-
-###### Account types declared with tags
-
-More generally, you can declare an account's type with an account
-directive, by writing a `type:` [tag](journal.html#tags) in a comment,
-followed by one of the words `Asset`, `Liability`, `Equity`, `Revenue`,
-`Expense`, or one of the letters `ALERX` (case insensitive):
-
-``` {.journal}
-account assets ; type:Asset
-account liabilities ; type:Liability
-account equity ; type:Equity
-account revenues ; type:Revenue
-account expenses ; type:Expenses
-```
-
-###### Account types declared with account type codes
-
-Or, you can write one of those letters separated from the account name
-by two or more spaces, but this should probably be considered deprecated
-as of hledger 1.13:
-
-``` {.journal}
-account assets A
-account liabilities L
-account equity E
-account revenues R
-account expenses X
-```
-
-###### Overriding auto-detected types
-
-If you ever override the types of those auto-detected english account
-names mentioned above, you might need to help the reports a bit. Eg:
-
-``` {.journal}
-; make "liabilities" not have the liability type - who knows why
-account liabilities ; type:E
-
-; we need to ensure some other account has the liability type,
-; otherwise balancesheet would still show "liabilities" under Liabilities
-account - ; type:L
-```
-
-##### Account display order
-
-Account directives also set the order in which accounts are displayed,
-eg in reports, the hledger-ui accounts screen, and the hledger-web
-sidebar. By default accounts are listed in alphabetical order. But if
-you have these account directives in the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-you'll see those accounts displayed in declaration order, not
-alphabetically:
-
-``` {.shell}
-$ hledger accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-```
-
-Undeclared accounts, if any, are displayed last, in alphabetical order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). And currently, this
-directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`'s subaccounts, but
-not the position of `other` among the top-level accounts. This means: -
-you will sometimes declare parent accounts (eg `account other` above)
-that you don't intend to post to, just to customize their display order
-- sibling accounts stay together (you couldn't display `x:y` in between
-`a:b` and `a:c`).
-
-#### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-Partial or relative dates (M/D, D, tomorrow, last week) in the period
-expression can work (useful or not). They will be relative to today's
-date, unless a Y default year directive is in effect, in which case they
-will be relative to Y/1/1.
-
-#### Two spaces after the period expression
-
-If the period expression is followed by a transaction description, these
-must be separated by **two or more spaces**. This helps hledger know
-where the period expression ends, so that descriptions can not
-accidentally alter their meaning, as in this example:
-
- ; 2 or more spaces needed here, so the period is not understood as "every 2 months in 2020"
- ; ||
- ; vv
- ~ every 2 months in 2020, we will review
- assets:bank:checking $1500
- income:acme inc
-
-#### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where "today" means the current date at report time. The "later of" rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-#### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-### Transaction modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. They can be enabled by using the
-`--auto` flag. Currently, just one kind of change is possible: adding
-extra postings. These rule-generated postings are known as "automated
-postings" or "auto postings".
-
-A transaction modifier rule looks quite like a normal transaction,
-except the first line is an equals sign followed by a
-[query](manual.html#queries) that matches certain postings (mnemonic:
-`=` suggests matching). And each "posting" is actually a
-posting-generating rule:
-
-``` {.journal}
-= QUERY
- ACCT AMT
- ACCT [AMT]
- ...
-```
-
-These posting rules look like normal postings, except the amount can be:
-
-- a normal amount with a commodity symbol, eg `$2`. This will be used
- as-is.
-- a number, eg `2`. The commodity symbol (if any) from the matched
- posting will be added to this.
-- a numeric multiplier, eg `*2` (a star followed by a number N). The
- matched posting's amount (and total price, if any) will be
- multiplied by N.
-- a multiplier with a commodity symbol, eg `*$2` (a star, number N,
- and symbol S). The matched posting's amount will be multiplied by N,
- and its commodity symbol will be replaced with S.
-
-Some examples:
-
-``` {.journal}
-; every time I buy food, schedule a dollar donation
-= expenses:food
- (liabilities:charity) $-1
-
-; when I buy a gift, also deduct that amount from a budget envelope subaccount
-= expenses:gifts
- assets:checking:gifts *-1
- assets:checking *1
-
-2017/12/1
- expenses:food $10
- assets:checking
-
-2017/12/14
- expenses:gifts $20
- assets:checking
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/01
- expenses:food $10
- assets:checking
- (liabilities:charity) $-1
-
-2017/12/14
- expenses:gifts $20
- assets:checking
- assets:checking:gifts -$20
- assets:checking $20
-```
-
-#### Auto postings and transaction balancing / inferred amounts / balance assertions
-
-Currently, transaction modifiers are applied / auto postings are added:
-
-- after [missing amounts are inferred, and transactions are checked
- for balancedness](#postings),
-- but before [balance assertions](#balance-assertions) are checked.
-
-Note this means that journal entries must be balanced both before and
-after auto postings are added. This changed in hledger 1.12+; see
-[\#893](https://github.com/simonmichael/hledger/issues/893) for
-background.
-
-## EDITOR SUPPORT
-
-Helper modes exist for popular text editors, which make working with
-journal files easier. They add colour, formatting, tab completion, and
-helpful commands, and are quite recommended if you edit your journal
-with a text editor. They include ledger-mode or hledger-mode for Emacs,
-vim-ledger for Vim, hledger-vscode for Visual Studio Code, and others.
-See the \[\[Cookbook\]\] at hledger.org for the latest information.
diff --git a/site/doc/1.14/manual.md b/site/doc/1.14/manual.md
deleted file mode 100644
index 880e47457..000000000
--- a/site/doc/1.14/manual.md
+++ /dev/null
@@ -1,5421 +0,0 @@
-$TOC$
-
-
-
-## hledger
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ‘,’)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used
-options](https://github.com/simonmichael/hledger/wiki/Save-frequently-used-options).
-
-#### Special characters in arguments and queries
-
-In shell command lines, option and argument values which contain
-“problematic” characters, ie spaces, and also characters significant to
-your shell such as `<`, `>`, `(`, `)`, `|` and `$`, should be escaped by
-enclosing them in quotes or by writing backslashes before the
-characters. Eg:
-
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-##### More escaping
-
-Characters significant both to the shell and in [regular
-expressions](#regular-expressions) may need one extra level of escaping.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-
-`hledger balance cur:'\$'`
-
-or:
-
-`hledger balance cur:\\$`
-
-##### Even more escaping
-
-When hledger runs an addon executable (eg you type `hledger ui`, hledger
-runs `hledger-ui`), it de-escapes command-line options and arguments
-once, so you might need to *triple*-escape. Eg in bash, running the ui
-command and matching the dollar sign, it’s:
-
-`hledger ui cur:'\\$'`
-
-or:
-
-`hledger ui cur:\\\\$`
-
-If you asked why *four* slashes above, this may help:
-
- ----------------- ---------
- unescaped: `$`
- escaped: `\$`
- double-escaped: `\\$`
- triple-escaped: `\\\\$`
- ----------------- ---------
-
-(The number of backslashes in fish shell is left as an exercise for the
-reader.)
-
-You can always avoid the extra escaping for addons by running the addon
-directly:
-
-`hledger-ui cur:\\$`
-
-##### Less escaping
-
-Inside an [argument file](#argument-expansion), or in the search field
-of hledger-ui or hledger-web, or at a GHCI prompt, you need one less
-level of escaping than at the command line. And backslashes may work
-better than quotes. Eg:
-
-`ghci> :main balance cur:\$`
-
-#### Command line tips
-
-If in doubt, keep things simple:
-
-- write options after the command (`hledger CMD -OPTIONS ARGS`)
-- run add-on executables directly (`hledger-ui -OPTIONS ARGS`)
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-To find out exactly how a command line is being parsed, add `--debug=2`
-to troubleshoot.
-
-#### Unicode characters
-
-hledger is expected to handle unicode (non-ascii) characters, but this
-requires a well-configured environment.
-
-To handle unicode characters in the command line or input data, a system
-locale that can decode them must be configured (POSIX’s default `C`
-locale will not work). Eg in bash, you could do:
-
- export LANG=en_US.UTF-8
-
-See [Troubleshooting](#troubleshooting) for more about this.
-
-Unicode characters should appear correctly in hledger’s output. For the
-hledger and hledger-ui tools, this requires that
-
-- your terminal supports unicode
-- the terminal’s font includes the required unicode glyphs
-- the terminal is configured to display “wide” characters as double
- width (otherwise report alignment will be off)
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger’s journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in “reader” in turn:
-
- ----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- ------------------------------- ------------------------
- `journal` hledger’s journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-“wrong” extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger’s user interfaces accept a flexible “smart date” syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today’s date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- ---------------------------------------------- ---------------------------------------------------------------------------------------
- `2004/10/1`, `2004-01-01`, `2004.9.1` exact date, several separators allowed. Year is 4+ digits, month is 1-12, day is 1-31
- `2004` start of year
- `2004/10` start of month
- `10/1` month and day in current year
- `21` day in current month
- `october, oct` start of month in current year
- `yesterday, today, tomorrow` -1, 0, 1 days from today
- `last/this/next day/week/month/quarter/year` -1, 0, 1 periods from the current period
- `20181201` 8 digit YYYYMMDD with valid year month and day
- `201812` 6 digit YYYYMM with valid year and month
- ---------------------------------------------- ---------------------------------------------------------------------------------------
-
-Counterexamples - malformed digit sequences might give surprising
-results:
-
- ------------- -------------------------------------------------------------------
- `201813` 6 digits with an invalid month is parsed as start of 6-digit year
- `20181301` 8 digits with an invalid month is parsed as start of 8-digit year
- `20181232` 8 digits with an invalid day gives an error
- `201801012` 9+ digits beginning with a valid YYYYMMDD gives an error
- ------------- -------------------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick’s day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here’s a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like “from” and “to” are optional, and so are the spaces, as
-long as you don’t run two dates together. “to” can also be written as
-“-”. These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no “from” or “to” defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to “2009/1/1 to 2010/1/1”
- `-p "2009/1"` the month of jan; equivalent to “2009/1/1 to 2009/2/1”
- `-p "2009/1/1"` just that day; equivalent to “2009/1/1 to 2009/1/2”
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` – starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` – starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- -----------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` – periods will have boundaries on 2008/01/01, 2008/03/01, …
- `-p "every 2 weeks"` – starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` – periods will have boundaries on 2009/03/01, 2009/08/01, …
- -----------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- ------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` – periods will go from Tue to Tue
- `-p "every Tue"` – same
- `-p "every 15th day"` – period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` – period boundaries will be on second Monday of each month
- `-p "every 11/05"` – yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` – same
- `-p "every Nov 5th"` – same
- ------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting’s account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it’s not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted “account
-name”):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value.\
-Specifically, when there is a [market price](journal.html#market-prices)
-(P directive) for the amount’s commodity, dated on or before today’s
-date (or the [report end date](#report-start-end-date) if specified),
-the amount will be converted to the price’s commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal -N euros
- €100 assets:euros
-
-What are they worth at end of nov 3 ?
-
- $ hledger -f t.j bal -N euros -V -e 2016/11/4
- $110.00 assets:euros
-
-What are they worth after 2016/12/21 ? (no report end date specified,
-defaults to today)
-
- $ hledger -f t.j bal -N euros -V
- $103.00 assets:euros
-
-Currently, hledger’s -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Currently, -V has a limitation in [multicolumn balance
-reports](#multicolumn-balance-reports): it uses the market prices on the
-report end date for all columns. (Instead of the prices on each column’s
-end date.)
-
-#### Combining -B and -V
-
-Using -B/–cost and -V/–value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger’s regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger’s strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there’s no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there’s
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-#### accounts
-
-accounts, a\
-Show account names.
-
-This command lists account names, either declared with account
-directives (–declared), posted to (–used), or both (the default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `depth:N` or
-`--depth N` or `-N`.
-
-Examples:
-
-``` {.shell}
-$ hledger accounts
-assets:bank:checking
-assets:bank:saving
-assets:cash
-expenses:food
-expenses:supplies
-income:gifts
-income:salary
-liabilities:debts
-```
-
-#### activity
-
-activity\
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-Examples:
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-add\
-Prompt for transactions and add them to the journal.
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar (by
- description) recent transaction (filtered by the query, if any) as a
- template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-balance, bal, b\
-Show accounts and their balances.
-
-The balance command is hledger’s most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account’s change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account’s complete history of postings in the report,
-the balance change is equivalent to the account’s current ending
-balance. For a real-world account, typically you won’t have all
-transactions in the journal; instead you’ll have all transactions after
-a certain date, and an “opening balances” transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/–historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-##### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-“Boring” accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the “liabilities” account.) Use `--no-elide`
-to prevent this.
-
-Account balances are “inclusive” - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account’s
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account’s name
- - `total` - the account’s balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account’s total
-- `%-20.20(account)` - the account’s name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and “exclusive” balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-##### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account’s change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be “full” and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here’s an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column’s end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-##### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
-–budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-Note this is different from a normal balance report in several ways:
-
-- Only accounts with budget goals during the report period are shown,
- by default.
-
-- In each column, in square brackets after the actual amount, budgeted
- amounts are shown, along with the percentage of budget used.
-
-- All parent accounts are always shown, even in flat mode. Eg assets,
- assets:bank, and expenses above.
-
-- Amounts always include all subaccounts, budgeted or unbudgeted, even
- in flat mode.
-
-This means that the numbers displayed will not always add up! Eg above,
-the `expenses` actual amount includes the gifts and supplies
-transactions, but the `expenses:gifts` and `expenses:supplies` accounts
-are not shown, as they have no budget amounts declared.
-
-This can be confusing. When you need to make things clearer, use the
-`-E/--empty` flag, which will reveal all accounts including unbudgeted
-ones, giving the full picture. Eg:
-
-``` {.shell}
-$ hledger balance -M --budget --empty
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-2665 [ 107% of $-2480]
- expenses || $495 [ 103% of $480] $565 [ 118% of $480]
- expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
- expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
- expenses:gifts || 0 $100
- expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
- expenses:supplies || $20 0
- income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || Nov Dec
-======================++====================================================
- assets || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- assets:bank:checking || $-2445 [ 99% of $-2480] $-5110 [ 103% of $-4960]
- expenses || $495 [ 103% of $480] $1060 [ 110% of $960]
- expenses:bus || $49 [ 98% of $50] $102 [ 102% of $100]
- expenses:food || $396 [ 99% of $400] $808 [ 101% of $800]
- expenses:movies || $30 [ 100% of $30] $30 [ 50% of $60]
- income || $1950 [ 98% of $2000] $4050 [ 101% of $4000]
-----------------------++----------------------------------------------------
- || 0 [ 0] 0 [ 0]
-```
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-###### Nested budgets
-
-You can add budgets to any account in your account hierarchy. If you
-have budgets on both parent account and some of its children, then
-budget(s) of the child account(s) would be added to the budget of their
-parent, much like account balances behave.
-
-In the most simple case this means that once you add a budget to any
-account, all its parents would have budget as well.
-
-To illustrate this, consider the following budget:
-
- ~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-With this, monthly budget for electronics is defined to be \$100 and
-budget for personal expenses is an additional \$1000, which implicity
-means that budget for both `expenses:personal` and `expenses` is \$1100.
-
-Transactions in `expenses:personal:electronics` will be counted both
-towards its \$100 budget and \$1100 of `expenses:personal` , and
-transactions in any other subaccount of `expenses:personal` would be
-counted towards only towards the budget of `expenses:personal`.
-
-For example, let’s consider these transactions:
-
-``` {.journal}
-~ monthly from 2019/01
- expenses:personal $1,000.00
- expenses:personal:electronics $100.00
- liabilities
-
-2019/01/01 Google home hub
- expenses:personal:electronics $90.00
- liabilities $-90.00
-
-2019/01/02 Phone screen protector
- expenses:personal:electronics:upgrades $10.00
- liabilities
-
-2019/01/02 Weekly train ticket
- expenses:personal:train tickets $153.00
- liabilities
-
-2019/01/03 Flowers
- expenses:personal $30.00
- liabilities
-```
-
-As you can see, we have transactions in
-`expenses:personal:electronics:upgrades` and
-`expenses:personal:train tickets`, and since both of these accounts are
-without explicitly defined budget, these transactions would be counted
-towards budgets of `expenses:personal:electronics` and
-`expenses:personal` accordingly:
-
-``` {.shell}
-$ hledger balance --budget -M
-Budget performance in 2019/01:
-
- || Jan
-===============================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- liabilities || $-283.00 [ 26% of $-1100.00]
--------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-And with `--empty`, we can get a better picture of budget allocation and
-consumption:
-
-``` {.shell}
-$ hledger balance --budget -M --empty
-Budget performance in 2019/01:
-
- || Jan
-========================================++===============================
- expenses || $283.00 [ 26% of $1100.00]
- expenses:personal || $283.00 [ 26% of $1100.00]
- expenses:personal:electronics || $100.00 [ 100% of $100.00]
- expenses:personal:electronics:upgrades || $10.00
- expenses:personal:train tickets || $153.00
- liabilities || $-283.00 [ 26% of $-1100.00]
-----------------------------------------++-------------------------------
- || 0 [ 0]
-```
-
-##### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheet
-
-balancesheet, bs\
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed).
-
-Note this report shows all account balances with normal positive sign
-(like conventional financial statements, unlike balance/print/register)
-(experimental).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheetequity
-
-balancesheetequity, bse\
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-cashflow, cf\
-This command displays a simple cashflow statement, showing changes in
-“cash” accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental).
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### check-dates
-
-check-dates\
-Check that transactions are sorted by increasing date. With –date2,
-checks secondary dates instead. With –strict, dates must also be unique.
-With a query, only matched transactions’ dates are checked. Reads the
-default journal file, or another specified with -f.
-
-#### check-dupes
-
-check-dupes\
-Reports account names having the same leaf but different prefixes. In
-other words, two or more leaves that are categorized differently. Reads
-the default journal file, or another specified as an argument.
-
-An example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### close
-
-close, equity\
-Prints a “closing balances” transaction and an “opening balances”
-transaction that bring account balances to and from zero, respectively.
-Useful for bringing asset/liability balances forward into a new journal
-file, or for closing out revenues/expenses to retained earnings at the
-end of a period.
-
-The closing transaction transfers balances to “equity:closing balances”.
-The opening transaction transfers balances from “equity:opening
-balances”. You can chose to print just one of the transactions by using
-the `--opening` or `--closing` flag.
-
-If you split your journal files by time (eg yearly), you will typically
-run this command at the end of the year, and save the closing
-transaction as last entry of the old file, and the opening transaction
-as the first entry of the new file. This makes the files self contained,
-so that correct balances are reported no matter which of them are
-loaded. Ie, if you load just one file, the balances are initialised
-correctly; or if you load several files, the redundant closing/opening
-transactions cancel each other out. (They will show up in print or
-register reports; you can exclude them with a query like
-`not:desc:'(opening|closing) balances'`.)
-
-If you’re running a business, you might also use this command to “close
-the books” at the end of an accounting period, transferring income
-statement account balances to retained earnings. (You may want to change
-the equity account name to something like “equity:retained earnings”.)
-
-By default, the closing transaction is dated yesterday, the balances are
-calculated as of end of yesterday, and the opening transaction is dated
-today. To close on some other date, use: `hledger close -e OPENINGDATE`.
-Eg, to close/open on the 2018/2019 boundary, use `-e 2019`. You can also
-use -p or `date:PERIOD` (any starting date is ignored).
-
-Both transactions will include balance assertions for the
-closed/reopened accounts. You probably shouldn’t use status or realness
-filters (like -C or -R or `status:`) with this command, or the generated
-balance assertions will depend on these flags. Likewise, if you run this
-command with –auto, the balance assertions will probably always require
-–auto.
-
-Examples:
-
-Carrying asset/liability balances into a new file for 2019, all from
-command line:
-
-*Warning: we use `>>` here to append; be careful not to type a single
-`>` which would wipe your journal!*
-
- $ hledger close -f 2018.journal -e 2019 assets liabilities --opening >>2019.journal
- $ hledger close -f 2018.journal -e 2019 assets liabilities --closing >>2018.journal
-
-Now:
-
- $ hledger bs -f 2019.journal # one file - balances are correct
- $ hledger bs -f 2018.journal -f 2019.journal # two files - balances still correct
- $ hledger bs -f 2018.journal not:desc:closing # to see year-end balances, must exclude closing txn
-
-Transactions spanning the closing date can complicate matters, breaking
-balance assertions:
-
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- assets:bank:checking -5 ; [2019/1/2]
-
-Here’s one way to resolve that:
-
- ; in 2018.journal:
- 2018/12/30 a purchase made in 2018, clearing the following year
- expenses:food 5
- liabilities:pending
-
- ; in 2019.journal:
- 2019/1/2 clearance of last year's pending transactions
- liabilities:pending 5 = 0
- assets:checking
-
-#### files
-
-files\
-List all files included in the journal. With a REGEX argument, only file
-names matching the regular expression (case sensitive) are shown.
-
-#### help
-
-help\
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-Examples:
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-import\
-Read new transactions added to each FILE since last run, and add them to
-the main journal file. Or with –dry-run, just print the transactions
-that would be added.
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it’s just: `hledger import *.csv`
-
-New transactions are detected in the same way as print –new: by assuming
-transactions are always added to the input files in increasing date
-order, and by saving `.latest.FILE` state files.
-
-The –dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-incomestatement, is\
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental).
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### prices
-
-prices\
-Print [market price directives](/manual#market-prices) from the journal.
-With –costs, also print synthetic market prices based on [transaction
-prices](/manual#transaction-prices). With –inverted-costs, also print
-inverse prices based on transaction prices. Prices (and postings
-providing prices) can be filtered by a query.
-
-#### print
-
-print, txns, p\
-Show transaction journal entries, sorted by date.
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. With –date2, transactions
-are sorted by secondary date instead.
-
-print’s output is always a valid [hledger journal](/journal.html).\
-It preserves all transaction information, but it does not preserve
-directives or inter-transaction comments
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-Normally, the journal entry’s explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here’s an example of
-print’s CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction’s
- fields repeated.
-- The “txnidx” (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into “commodity” (the symbol) and “amount”
- (numeric quantity) fields.
-- The numeric amount is repeated in either the “credit” or “debit”
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-print-unique\
-Print transactions which do not reuse an already-seen description.
-
-Example:
-
-``` {.shell}
-$ cat unique.journal
-1/1 test
- (acct:one) 1
-2/2 test
- (acct:two) 2
-$ LEDGER_FILE=unique.journal hledger print-unique
-(-f option not supported)
-2015/01/01 test
- (acct:one) 1
-```
-
-#### register
-
-register, reg, r\
-Show postings and their running total.
-
-The register command displays postings in date order, one per line, and
-their running total. This is typically used with a [query](#queries)
-selecting a particular account, to see that account’s activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-With –date2, it shows and sorts by secondary date instead.
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-The `--invert` flag negates all amounts. For example, it can be used on
-an income account where amounts are normally displayed as negative
-numbers. It’s also useful to show postings on the checking account
-together with the related account:
-
- $ hledger register --related --invert assets:checking
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you’ll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of –width’s argument, comma-separated:
-`--width W,D` . Here’s a diagram (won’t display correctly in –help):
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, & description width 40
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### register-match
-
-register-match\
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. If there are multiple equally good
-matches, it shows the most recent. Query options (options, not
-arguments) can be used to restrict the search space. Helps
-ledger-autosync detect already-seen transactions when importing.
-
-#### rewrite
-
-rewrite\
-Print all transactions, rewriting the postings of matched transactions.
-For now the only rewrite available is adding new postings, like print
-–auto.
-
-This is a start at a generic rewriter of transaction entries. It reads
-the default journal and prints the transactions, like print, but adds
-one or more specified postings to any transactions matching QUERY. The
-posting amounts can be fixed, or a multiplier of the existing
-transaction’s first posting amount.
-
-Examples:
-
- hledger-rewrite.hs ^income --add-posting '(liabilities:tax) *.33 ; income tax' --add-posting '(reserve:gifts) $100'
- hledger-rewrite.hs expenses:gifts --add-posting '(reserve:gifts) *-1"'
- hledger-rewrite.hs -f rewrites.hledger
-
-rewrites.hledger may consist of entries like:
-
- = ^income amt:<0 date:2017
- (liabilities:tax) *0.33 ; tax on income
- (reserve:grocery) *0.25 ; reserve 25% for grocery
- (reserve:) *0.25 ; reserve 25% for grocery
-
-Note the single quotes to protect the dollar sign from bash, and the two
-spaces between account and amount.
-
-More:
-
-``` {.shell}
-$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
-$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
-$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
-$ hledger rewrite -- ^income --add-posting '(budget:foreign currency) *0.25 JPY; diversify'
-```
-
-Argument for `--add-posting` option is a usual posting of transaction
-with an exception for amount specification. More precisely, you can use
-`'*'` (star symbol) before the amount to indicate that that this is a
-factor for an amount of original matched posting. If the amount includes
-a commodity name, the new posting amount will be in the new commodity;
-otherwise, it will be in the matched posting amount’s commodity.
-
-###### Re-write rules in a file
-
-During the run this tool will execute so called [“Automated
-Transactions”](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
-found in any journal it process. I.e instead of specifying this
-operations in command line you can put them in a journal file.
-
-``` {.shell}
-$ rewrite-rules.journal
-```
-
-Make contents look like this:
-
-``` {.journal}
-= ^income
- (liabilities:tax) *.33
-
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-Note that `'='` (equality symbol) that is used instead of date in
-transactions you usually write. It indicates the query by which you want
-to match the posting to add new ones.
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal
-```
-
-This is something similar to the commands pipeline:
-
-``` {.shell}
-$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
- | hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
- --add-posting 'assets:budget *1' \
- > rewritten-tidy-output.journal
-```
-
-It is important to understand that relative order of such entries in
-journal is important. You can re-use result of previously added
-postings.
-
-###### Diff output format
-
-To use this tool for batch modification of your journal files you may
-find useful output in form of unified diff.
-
-``` {.shell}
-$ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax) *.33'
-```
-
-Output might look like:
-
-``` {.diff}
---- /tmp/examples/sample.journal
-+++ /tmp/examples/sample.journal
-@@ -18,3 +18,4 @@
- 2008/01/01 income
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:salary
-+ (liabilities:tax) 0
-@@ -22,3 +23,4 @@
- 2008/06/01 gift
-- assets:bank:checking $1
-+ assets:bank:checking $1
- income:gifts
-+ (liabilities:tax) 0
-```
-
-If you’ll pass this through `patch` tool you’ll get transactions
-containing the posting that matches your query be updated. Note that
-multiple files might be update according to list of input files
-specified via `--file` options and `include` directives inside of these
-files.
-
-Be careful. Whole transaction being re-formatted in a style of output
-from `hledger print`.
-
-See also:
-
-https://github.com/simonmichael/hledger/issues/99
-
-###### rewrite vs. print –auto
-
-This command predates print –auto, and currently does much the same
-thing, but with these differences:
-
-- with multiple files, rewrite lets rules in any file affect all other
- files. print –auto uses standard directive scoping; rules affect
- only child files.
-
-- rewrite’s query limits which transactions can be rewritten; all are
- printed. print –auto’s query limits which transactions are printed.
-
-- rewrite applies rules specified on command line or in the journal.
- print –auto applies rules specified in the journal.
-
-#### roi
-
-roi\
-Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on
-your investments.
-
-This command assumes that you have account(s) that hold nothing but your
-investments and whenever you record current appraisal/valuation of these
-investments you offset unrealized profit and loss into account(s) that,
-again, hold nothing but unrealized profit and loss.
-
-Any transactions affecting balance of investment account(s) and not
-originating from unrealized profit and loss account(s) are assumed to be
-your investments or withdrawals.
-
-At a minimum, you need to supply a query (which could be just an account
-name) to select your investments with `--inv`, and another query to
-identify your profit and loss transactions with `--pnl`.
-
-It will compute and display the internalized rate of return (IRR) and
-time-weighted rate of return (TWR) for your investments for the time
-period requested. Both rates of return are annualized before display,
-regardless of the length of reporting interval.
-
-#### stats
-
-stats\
-Show some journal statistics.
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-Example:
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### tags
-
-tags\
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With QUERY arguments, only transactions matching the query are
-considered.
-
-#### test
-
-test\
-Run built-in unit tests.
-
-This command runs the unit tests built in to hledger-lib and hledger,
-printing test names and results on stdout. If any test fails, the exit
-code will be non-zero.
-
-Test names include a group prefix. If a (exact, case sensitive) group
-prefix, or a full test name is provided as the first argument, only that
-group or test is run.
-
-If a numeric second argument is provided, it will set the randomness
-seed, for repeatable results from tests using randomness (currently none
-of them).
-
-This is mainly used by developers, but it’s nice to be able to
-sanity-check your installed hledger executable at any time. All tests
-are expected to pass - if you ever see otherwise, something has gone
-wrong, please report a bug!
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger’s help, while `hledger web -h` shows
- hledger-web’s help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account’s transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account, but it’s
-superseded now by the built-in [roi](#roi) command.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo’s bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger’s journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but “No command ‘hledger’ found”**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here’s an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**“Illegal byte sequence” or “Invalid or incomplete multibyte or wide
-character” errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I’m not sure yet).
-
-Here’s an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here’s one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger’s curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger’s command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-Note hledger-ui has some different defaults (experimental):
-
-- it generates rule-based transactions and postings by default
- (–forecast and –auto are always on).
-- it hides transactions dated in the future by default (change this
- with –future or the F key).
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account’s register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`-F --flat`
-: show accounts as a list (default)
-
-`-T --tree`
-: show accounts as a tree
-
-`--future`
-: show transactions dated later than today (normally hidden)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ‘,’)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you’re on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-“current” period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-As mentioned above, hledger-ui shows auto-generated periodic
-transactions, and hides future transactions (auto-generated or not) by
-default. `F` toggles showing and hiding these future transactions. This
-is similar to using a query like `date:-tomorrow`, but more convenient.
-(experimental)
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won’t be centered, since we don’t scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger’s add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger’s balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are shown as a flat list by default. Press `T` to toggle
-tree mode. In flat mode, account balances are exclusive of subaccounts,
-except where subaccounts are hidden by a depth limit (see below). In
-tree mode, all account balances are inclusive of subaccounts.
-
-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.
-`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,
-or press `ESCAPE`.
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account’s transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account’s balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-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 flat
-mode but this account has subaccounts which are not shown due to a depth
-limit. In other words, the register always shows the transactions
-contributing to the balance shown on the accounts screen.\
-Tree mode/flat mode can be toggled with `T` here also.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger’s print command and journal format
-(hledger\_journal(5)).
-
-The transaction’s date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction’s position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn’t work (hledger-ui can’t read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-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
-will be applied in addition to any search query entered there.
-
-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
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-`--capabilities=CAP[,CAP..]`
-: enable the view, add, and/or manage capabilities (default: view,add)
-
-`--capabilities-header=HTTPHEADER`
-: read capabilities to enable from a HTTP header, like
- X-Sandstorm-Permissions (default: disabled)
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--separator=CHAR`
-: Field separator to expect when reading CSV (default: ‘,’)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-### PERMISSIONS
-
-By default, hledger-web allows anyone who can reach it to view the
-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
- 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 files
- - `add` - allows adding new transactions to the main journal file
- - `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
- on Sandstorm uses the X-Sandstorm-Permissions header to integrate
- with Sandstorm’s permissions. This is disabled by default.
-
-### 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 let
-you edit, upload, or download the journal file or any files it includes.
-
-Note, unlike any other hledger command, in this mode you (or any
-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,
-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.)
-
-### RELOADING
-
-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
-file unparseable, hledger-web will display an error message until the
-file has been fixed.
-
-### JSON API
-
-In addition to the web UI, hledger-web provides some JSON API routes.
-These are similar to the API provided by the hledger-api tool, but it
-may be convenient to have them in hledger-web also.
-
- /accountnames
- /transactions
- /prices
- /commodities
- /accounts
- /accounttransactions/#AccountName
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn’t work (hledger-web can’t read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-Journal - hledger’s default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger’s usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that’s not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger’s journal format is a compatible subset, mostly, of [ledger’s
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It’s safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you’re getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here’s an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing…
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it’s best to follow a
-consistent rule. Eg write the bank’s clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here’s an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction’s date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger’s earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the “unmarked” state
-is called “uncleared”. As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger’s behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What “uncleared”, “pending”, and “cleared” actually mean is up to you.
-Here’s one suggestion:
-
- ---------------------------------------------------------------------
- status meaning
- ----------- ---------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ---------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction’s description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-“narration” in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the “quantity”) and optionally a currency
- symbol/commodity name (the “commodity”).
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it’s not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in `D` directives usually don’t affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D’s default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price’s commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account’s opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like, for example, `= EXPECTEDBALANCE`
-following a posting’s amount. Eg here we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`-I/--ignore-assertions` flag, which can be useful for troubleshooting
-or for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account’s postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account’s
-balance on the same day, you’ll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don’t work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity’s balance within the
-(possibly multi-commodity) account balance.\
-This is how assertions work in Ledger also. We could call this a
-“partial” balance assertion.
-
-To assert the balance of more than one commodity in an account, you can
-write multiple postings, each asserting one commodity’s balance.
-
-You can make a stronger “total” balance assertion by writing a double
-equals sign (`== EXPECTEDBALANCE`). This asserts that there are no other
-unasserted commodities in the account (or, that their balance is 0).
-
-``` {.journal}
-2013/1/1
- a $1
- a 1€
- b $-1
- c -1€
-
-2013/1/2 ; These assertions succeed
- a 0 = $1
- a 0 = 1€
- b 0 == $-1
- c 0 == -1€
-
-2013/1/3 ; This assertion fails as 'a' also contains 1€
- a 0 == $1
-```
-
-It’s not yet possible to make a complete assertion about a balance that
-has multiple commodities. One workaround is to isolate each commodity
-into its own subaccount:
-
-``` {.journal}
-2013/1/1
- a:usd $1
- a:euro 1€
- b
-
-2013/1/2
- a 0 == 0
- a:usd 0 == $1
- a:euro 0 == 1€
-```
-
-##### Assertions and prices
-
-Balance assertions ignore [transaction prices](#transaction-prices), and
-should normally be written without one:
-
-``` {.journal}
-2019/1/1
- (a) $1 @ €1 = $1
-```
-
-We do allow prices to be written there, however, and
-[print](/manual.html#print) shows them, even though they don’t affect
-whether the assertion passes or fails. This is for backward
-compatibility (hledger’s [close](/manual.html#close) command used to
-generate balance assertions with prices), and because [balance
-*assignments*](#balance-assignments) do use them (see below).
-
-##### Assertions and subaccounts
-
-The balance assertions above (`=` and `==`) do not count the balance
-from subaccounts; they check the account’s exclusive balance only. You
-can assert the balance including subaccounts by writing `=*` or `==*`,
-eg:
-
-``` {.journal}
-2019/1/1
- equity:opening balances
- checking:a 5
- checking:b 5
- checking 1 ==* 11
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-##### Assertions and precision
-
-Balance assertions compare the exactly calculated amounts, which are not
-always what is shown by reports. Eg a [commodity
-directive](http://hledger.org/journal.html#declaring-commodities) may
-limit the display precision, but this will not affect balance
-assertions. Balance assertion failure messages show exact amounts.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account’s balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-##### Balance assignments and prices
-
-A [transaction price](#transaction-prices) in a balance assignment will
-cause the calculated amount to have that price attached:
-
-``` {.journal}
-2019/1/1
- (a) = $1 @ €2
-```
-
- $ hledger print --explicit
- 2019/01/01
- (a) $1 @ €2 = $1 @ €2
-
-#### Transaction prices
-
-Within a transaction, you can note an amount’s price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency. Note transaction prices are
-fixed at the time of the transaction, and do not change over time. See
-also [market prices](#market-prices), which represent prevailing
-exchange rates on a certain date.
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-(Ledger users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-Use the [`-B/--cost`](hledger.html#reporting-options) flag to convert
-amounts to their transaction price’s commodity, if any. (mnemonic: “B”
-is from “cost Basis”, as in Ledger). Eg here is how -B affects the
-balance report for the example above:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3’s postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger’s tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- “`a comment containing`” is just comment text, not a tag
-- “`tag1`” is a tag with no value
-- “`tag2`” is another tag, whose value is “`some value ...`”
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger’s
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger’s tag values are simple strings.
-
-#### Directives
-
-A directive is a line in the journal beginning with a special keyword,
-that influences how the journal is processed. hledger’s directives are
-based on a subset of Ledger’s, but there are many differences (and also
-some differences between hledger versions).
-
-Directives’ behaviour and interactions can get a little bit
-[complex](https://github.com/simonmichael/hledger/issues/793), so here
-is a table summarising the directives and their effects, with links to
-more detailed docs.
-
-
-
-
-
- -------------------------------------------------------------------------------------------------------------------------
- directive end directive subdirectives purpose can affect (as of
- 2018/06)
- -------------------------------------------- --------------------- --------------- -------------------- -----------------
- [`account`](#declaring-accounts) any text document account all entries in
- names, declare all files, before
- account types & or after
- display order
-
- [`alias`](#rewriting-accounts) `end aliases` rewrite account following
- names inline/included
- entries until end
- of current file
- or end directive
-
- [`apply account`](#default-parent-account) `end apply account` prepend a common following
- parent to account inline/included
- names entries until end
- of current file
- or end directive
-
- [`comment`](#comment-blocks) `end comment` ignore part of following
- journal inline/included
- entries until end
- of current file
- or end directive
-
- [`commodity`](#declaring-commodities) `format` declare a commodity number notation:
- and its number following entries
- notation & display in that commodity
- style in all files;
- display
- style: amounts of
- that commodity in
- reports
-
- [`D`](#default-commodity) declare a commodity, commodity: all
- number notation & commodityless
- display style for entries in all
- commodityless files; number
- amounts notation:
- following
- commodityless
- entries and
- entries in that
- commodity in all
- files;
- display
- style: amounts of
- that commodity in
- reports
-
- [`include`](#including-other-files) include what the included
- entries/directives directives affect
- from another file
-
- [`P`](#market-prices) declare a market amounts of that
- price for a commodity in
- commodity reports, when -V
- is used
-
- [`Y`](#default-year) declare a year for following
- yearless dates inline/included
- entries until end
- of current file
- -------------------------------------------------------------------------------------------------------------------------
-
-And some definitions:
-
- -------------- -------------------------------------------------------
- subdirective optional indented directive line immediately following
- a parent directive
-
- number how to interpret numbers when parsing journal entries
- notation (the identity of the decimal separator character).
- (Currently each commodity can have its own notation,
- even in the same file.)
-
- display style how to display amounts of a commodity in reports
- (symbol side and spacing, digit groups, decimal
- separator, decimal places)
-
- directive which entries and (when there are multiple files) which
- scope files are affected by a directive
- -------------- -------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-As you can see, directives vary in which journal entries and files they
-affect, and whether they are focussed on input (parsing) or output
-(reports). Some directives have multiple effects.
-
-If you have a journal made up of multiple files, or pass multiple -f
-options on the command line, note that directives which affect input
-typically last only until the end of their defining file. This provides
-more simplicity and predictability, eg reports are not changed by
-writing file options in a different order. It can be surprising at times
-though.
-
-##### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-##### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. The include file path may contain [common glob
-patterns](https://hackage.haskell.org/package/Glob-0.9.2/docs/System-FilePath-Glob.html#v:compile)
-(e.g. `*`).
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don’t
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the “format” subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-##### Default commodity
-
-The `D` directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger’s default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next `D` directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-##### Market prices
-
-The `P` directive declares a market price, which is an exchange rate
-between two commodities on a certain date. (In Ledger, they are called
-“historical prices”.) These are often obtained from a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange), cryptocurrency
-exchange, or the [foreign exchange
-market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-
-Here is the format:
-
-``` {.journal}
-P DATE COMMODITYA COMMODITYBAMOUNT
-```
-
-- DATE is a [simple date](#simple-dates)
-- COMMODITYA is the symbol of the commodity being priced
-- COMMODITYBAMOUNT is an [amount](#amounts) (symbol and quantity) in a
- second commodity, giving the price in commodity B of one unit of
- commodity A.
-
-These two market price directives say that one euro was worth 1.35 US
-dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-The [`-V/--value`](manual.html#market-value) flag can be used to convert
-reported amounts to another commodity using these prices.
-
-##### Declaring accounts
-
-`account` directives can be used to pre-declare accounts. Though not
-required, they can provide several benefits:
-
-- They can document your intended chart of accounts, providing a
- reference.
-- They can store extra information about accounts (account numbers,
- notes, etc.)
-- They can help hledger know your accounts’ types (asset, liability,
- equity, revenue, expense), useful for reports like balancesheet and
- incomestatement.
-- They control account display order in reports, allowing
- non-alphabetic sorting (eg Revenues to appear above Expenses).
-- They help with account name completion in the add command,
- hledger-iadd, hledger-web, ledger-mode etc.
-
-The simplest form is just the word `account` followed by a hledger-style
-[account name](manual.html#account-names), eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-###### Account comments
-
-[Comments](#comments), beginning with a semicolon, optionally including
-[tags](journal.html#tags), can be written after the account name, and/or
-on following lines. Eg:
-
-``` {.journal}
-account assets:bank:checking ; a comment
- ; another comment
- ; acctno:12345, a tag
-```
-
-Tip: comments on the same line require hledger 1.12+. If you need your
-journal to be compatible with older hledger versions, write comments on
-the next line instead.
-
-###### Account subdirectives
-
-We also allow (and ignore) Ledger-style indented subdirectives, just for
-compatibility.:
-
-``` {.journal}
-account assets:bank:checking
- format blah blah ; <- subdirective, ignored
-```
-
-Here is the full syntax of account directives:
-
-``` {.journal}
-account ACCTNAME [ACCTTYPE] [;COMMENT]
- [;COMMENTS]
- [LEDGER-STYLE SUBDIRECTIVES, IGNORED]
-```
-
-###### Account types
-
-hledger recognises five types (or classes) of account: Asset, Liability,
-Equity, Revenue, Expense. This is used by a few accounting-aware reports
-such as [balancesheet](manual.html#balancesheet),
-[incomestatement](manual.html#incomestatement) and
-[cashflow](manual.html#cashflow).
-
-####### Auto-detected account types
-
-If you name your top-level accounts with some variation of `assets`,
-`liabilities`/`debts`, `equity`, `revenues`/`income`, or `expenses`,
-their types are detected automatically.
-
-####### Account types declared with tags
-
-More generally, you can declare an account’s type with an account
-directive, by writing a `type:` [tag](journal.html#tags) in a comment,
-followed by one of the words `Asset`, `Liability`, `Equity`, `Revenue`,
-`Expense`, or one of the letters `ALERX` (case insensitive):
-
-``` {.journal}
-account assets ; type:Asset
-account liabilities ; type:Liability
-account equity ; type:Equity
-account revenues ; type:Revenue
-account expenses ; type:Expenses
-```
-
-####### Account types declared with account type codes
-
-Or, you can write one of those letters separated from the account name
-by two or more spaces, but this should probably be considered deprecated
-as of hledger 1.13:
-
-``` {.journal}
-account assets A
-account liabilities L
-account equity E
-account revenues R
-account expenses X
-```
-
-####### Overriding auto-detected types
-
-If you ever override the types of those auto-detected english account
-names mentioned above, you might need to help the reports a bit. Eg:
-
-``` {.journal}
-; make "liabilities" not have the liability type - who knows why
-account liabilities ; type:E
-
-; we need to ensure some other account has the liability type,
-; otherwise balancesheet would still show "liabilities" under Liabilities
-account - ; type:L
-```
-
-###### Account display order
-
-Account directives also set the order in which accounts are displayed,
-eg in reports, the hledger-ui accounts screen, and the hledger-web
-sidebar. By default accounts are listed in alphabetical order. But if
-you have these account directives in the journal:
-
-``` {.journal}
-account assets
-account liabilities
-account equity
-account revenues
-account expenses
-```
-
-you’ll see those accounts displayed in declaration order, not
-alphabetically:
-
-``` {.shell}
-$ hledger accounts -1
-assets
-liabilities
-equity
-revenues
-expenses
-```
-
-Undeclared accounts, if any, are displayed last, in alphabetical order.
-
-Note that sorting is done at each level of the account tree (within each
-group of sibling accounts under the same parent). And currently, this
-directive:
-
-``` {.journal}
-account other:zoo
-```
-
-would influence the position of `zoo` among `other`’s subaccounts, but
-not the position of `other` among the top-level accounts. This means: -
-you will sometimes declare parent accounts (eg `account other` above)
-that you don’t intend to post to, just to customize their display order
-- sibling accounts stay together (you couldn’t display `x:y` in between
-`a:b` and `a:c`).
-
-##### Rewriting accounts
-
-You can define account alias rules which rewrite your account names, or
-parts of them, before generating reports. This can be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-Account aliases also rewrite account names in [account
-directives](#declaring-accounts). They do not affect account names being
-entered via hledger add or hledger-web.
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It’s useful for trying out aliases interactively.
-
-OLD and NEW are case sensitive full account names. hledger will replace
-any occurrence of the old account name with the new one. Subaccounts are
-also affected. Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-A default parent account also affects [account
-directives](#declaring-accounts). It does not affect account names being
-entered via hledger add or hledger-web. If account aliases are present,
-they are applied after the default parent account.
-
-#### Periodic transactions
-
-Periodic transaction rules describe transactions that recur. They allow
-you to generate future transactions for forecasting, without having to
-write them out explicitly in the journal (with `--forecast`). Secondly,
-they also can be used to define budget goals (with `--budget`).
-
-A periodic transaction rule looks like a normal journal entry, with the
-date replaced by a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` looks like a
-recurring sine wave.):
-
-``` {.journal}
-~ monthly
- expenses:rent $2000
- assets:bank:checking
-```
-
-There is an additional constraint on the period expression: the start
-date must fall on a natural boundary of the interval. Eg
-`monthly from 2018/1/1` is valid, but `monthly from 2018/1/15` is not.
-
-Partial or relative dates (M/D, D, tomorrow, last week) in the period
-expression can work (useful or not). They will be relative to today’s
-date, unless a Y default year directive is in effect, in which case they
-will be relative to Y/1/1.
-
-##### Two spaces after the period expression
-
-If the period expression is followed by a transaction description, these
-must be separated by **two or more spaces**. This helps hledger know
-where the period expression ends, so that descriptions can not
-accidentally alter their meaning, as in this example:
-
- ; 2 or more spaces needed here, so the period is not understood as "every 2 months in 2020"
- ; ||
- ; vv
- ~ every 2 months in 2020, we will review
- assets:bank:checking $1500
- income:acme inc
-
-##### Forecasting with periodic transactions
-
-With the `--forecast` flag, each periodic transaction rule generates
-future transactions recurring at the specified interval. These are not
-saved in the journal, but appear in all reports. They will look like
-normal transactions, but with an extra [tag](manual.html#tags-1) named
-`recur`, whose value is the generating period expression.
-
-Forecast transactions start on the first occurrence, and end on the last
-occurrence, of their interval within the forecast period. The forecast
-period:
-
-- begins on the later of
- - the report start date if specified with -b/-p/date:
- - the day after the latest normal (non-periodic) transaction in
- the journal, or today if there are no normal transactions.
-- ends on the report end date if specified with -e/-p/date:, or 180
- days from today.
-
-where “today” means the current date at report time. The “later of” rule
-ensures that forecast transactions do not overlap normal transactions in
-time; they will begin only after normal transactions end.
-
-Forecasting can be useful for estimating balances into the future, and
-experimenting with different scenarios. Note the start date logic means
-that forecasted transactions are automatically replaced by normal
-transactions as you add those.
-
-Forecasting can also help with data entry: describe most of your
-transactions with periodic rules, and every so often copy the output of
-`print --forecast` to the journal.
-
-You can generate one-time transactions too: just write a period
-expression specifying a date with no report interval. (You could also
-write a normal transaction with a future date, but remember this
-disables forecast transactions on previous dates.)
-
-##### Budgeting with periodic transactions
-
-With the `--budget` flag, currently supported by the balance command,
-each periodic transaction rule declares recurring budget goals for the
-specified accounts. Eg the first example above declares a goal of
-spending \$2000 on rent (and also, a goal of depositing \$2000 into
-checking) every month. Goals and actual performance can then be compared
-in [budget reports](/manual.html#budget-report).
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-
-
-#### Transaction modifiers
-
-Transaction modifier rules describe changes that should be applied
-automatically to certain transactions. They can be enabled by using the
-`--auto` flag. Currently, just one kind of change is possible: adding
-extra postings. These rule-generated postings are known as “automated
-postings” or “auto postings”.
-
-A transaction modifier rule looks quite like a normal transaction,
-except the first line is an equals sign followed by a
-[query](manual.html#queries) that matches certain postings (mnemonic:
-`=` suggests matching). And each “posting” is actually a
-posting-generating rule:
-
-``` {.journal}
-= QUERY
- ACCT AMT
- ACCT [AMT]
- ...
-```
-
-These posting rules look like normal postings, except the amount can be:
-
-- a normal amount with a commodity symbol, eg `$2`. This will be used
- as-is.
-- a number, eg `2`. The commodity symbol (if any) from the matched
- posting will be added to this.
-- a numeric multiplier, eg `*2` (a star followed by a number N). The
- matched posting’s amount (and total price, if any) will be
- multiplied by N.
-- a multiplier with a commodity symbol, eg `*$2` (a star, number N,
- and symbol S). The matched posting’s amount will be multiplied by N,
- and its commodity symbol will be replaced with S.
-
-Some examples:
-
-``` {.journal}
-; every time I buy food, schedule a dollar donation
-= expenses:food
- (liabilities:charity) $-1
-
-; when I buy a gift, also deduct that amount from a budget envelope subaccount
-= expenses:gifts
- assets:checking:gifts *-1
- assets:checking *1
-
-2017/12/1
- expenses:food $10
- assets:checking
-
-2017/12/14
- expenses:gifts $20
- assets:checking
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/01
- expenses:food $10
- assets:checking
- (liabilities:charity) $-1
-
-2017/12/14
- expenses:gifts $20
- assets:checking
- assets:checking:gifts -$20
- assets:checking $20
-```
-
-##### Auto postings and transaction balancing / inferred amounts / balance assertions
-
-Currently, transaction modifiers are applied / auto postings are added:
-
-- after [missing amounts are inferred, and transactions are checked
- for balancedness](#postings),
-- but before [balance assertions](#balance-assertions) are checked.
-
-Note this means that journal entries must be balanced both before and
-after auto postings are added. This changed in hledger 1.12+; see
-[\#893](https://github.com/simonmichael/hledger/issues/893) for
-background.
-
-### EDITOR SUPPORT
-
-Helper modes exist for popular text editors, which make working with
-journal files easier. They add colour, formatting, tab completion, and
-helpful commands, and are quite recommended if you edit your journal
-with a text editor. They include ledger-mode or hledger-mode for Emacs,
-vim-ledger for Vim, hledger-vscode for Visual Studio Code, and others.
-See the \[\[Cookbook\]\] at hledger.org for the latest information.
-
-
-## csv format
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you’ll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV
-files](https://github.com/simonmichael/hledger/wiki/Convert-CSV-files).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You’ll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you’ll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "6/11/2013" (note the - to make leading zeros optional):
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*…
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*…
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*…\
- *`FIELDASSIGNMENTS`*…
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it’s not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file’s directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn’t needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It’s not yet possible to
-generate entries with more than two postings. It’s conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)’s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a “timeclock” executable which I think is just the
- ledger 2 executable renamed.
-
-
-## timedot format
-
-This doc is for version **1.14** . []{.docversions}
-
-### NAME
-
-Timedot - hledger’s human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called “timedot”, this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we’ll assume it’s time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: …. ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.14/timeclock.md b/site/doc/1.14/timeclock.md
deleted file mode 100644
index d6c8de757..000000000
--- a/site/doc/1.14/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.14/timedot.md b/site/doc/1.14/timedot.md
deleted file mode 100644
index a156ba4df..000000000
--- a/site/doc/1.14/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.14** . []{.docversions}
-
-\$TOC\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.2/.snapshot b/site/doc/1.2/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.2/csv.md b/site/doc/1.2/csv.md
deleted file mode 100644
index a5b878154..000000000
--- a/site/doc/1.2/csv.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# csv format
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-## CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-## TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
diff --git a/site/doc/1.2/hledger-api.md b/site/doc/1.2/hledger-api.md
deleted file mode 100644
index f0929f31d..000000000
--- a/site/doc/1.2/hledger-api.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# hledger-api
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h`
-: show usage
-
-`--help`
-: show manual as plain text
-
-`--man`
-: show manual with man
-
-`--info`
-: show manual with info
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.2/hledger-ui.md b/site/doc/1.2/hledger-ui.md
deleted file mode 100644
index 800a1f383..000000000
--- a/site/doc/1.2/hledger-ui.md
+++ /dev/null
@@ -1,381 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.2/hledger-web.md b/site/doc/1.2/hledger-web.md
deleted file mode 100644
index bfa221e33..000000000
--- a/site/doc/1.2/hledger-web.md
+++ /dev/null
@@ -1,238 +0,0 @@
-# hledger-web
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.2/hledger.md b/site/doc/1.2/hledger.md
deleted file mode 100644
index f0ba3f9c0..000000000
--- a/site/doc/1.2/hledger.md
+++ /dev/null
@@ -1,2064 +0,0 @@
-# hledger
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`. (Note -h and --help are
-different, like git.)
-
-General help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-Note when multiple similar reporting options are provided, the last one
-takes precedence. Eg `-p feb -p mar` is equivalent to `-p mar`.
-
-Some of these can also be written as [queries](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments get de-escaped when hledger is
-passing them to an addon executable. In this case you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- Reader: Reads: Used for file extensions:
- ----------------- ---------------------------------------------------- -----------------------------------------
- `journal` hledger's journal format, also some Ledger journals `.journal` `.j` `.hledger` `.ledger`
- `timeclock` timeclock files (precise time logging) `.timeclock`
- `timedot` timedot files (approximate time logging) `.timedot`
- `csv` comma-separated values (data interchange) `.csv`
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot TAGNAME` option causes it to sum and
-organize hierarchy based on some other field instead.
-
-TAGNAME is the full, case-insensitive name of a
-[tag](/journal.html#tags) you have defined, or one of the built-in
-implicit tags (like `code` or `payee`). As with account names, when tag
-values have `multiple:colon-separated:parts` hledger will build
-hierarchy, displayed in tree-mode reports, summarisable with a depth
-limit, and so on.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified tag on that
-posting, inheriting it from the transaction or using a blank value if
-it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere in
- hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: Use unicode to display prettier tables.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-#### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-#### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-#### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### print
-
-Show transactions from the journal.
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file, tidily formatted.
-
-As of hledger 1.2, print's output is always a valid [hledger
-journal](/journal.html). However it may not preserve all original
-content, eg it does not print directives or inter-transaction comments.
-
-Normally, transactions' implicit/explicit amount style is preserved:
-when an amount is omitted in the journal, it will be omitted in the
-output. You can use the `-x/--explicit` flag to make all amounts
-explicit, which can be useful for troubleshooting or for making your
-journal more readable and robust against data entry errors. Note, in
-this mode postings with a multi-commodity amount (possible with an
-implicit amount in a multi-commodity transaction) will be split into
-multiple single-commodity postings, for valid journal output.
-
-With -B/--cost, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost (using
-the transaction price).
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-#### check-dates
-
-[hledger-check-dates.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dates.hs#L15)
-checks that journal entries are ordered by date.
-
-#### check-dupes
-
-[hledger-check-dupes.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dupes.hs#L21)
-checks for account names sharing the same leaf name.
-
-#### equity
-
-[hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs#L17)
-prints balance-resetting transactions, useful for bringing account
-balances across file boundaries.
-
-#### prices
-
-[hledger-prices.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-prices.hs)
-prints all prices from the journal.
-
-#### print-unique
-
-[hledger-print-unique.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-print-unique.hs#L15)
-prints transactions which do not reuse an already-seen description.
-
-#### register-match
-
-[hledger-register-match.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-register-match.hs#L23)
-helps ledger-autosync detect already-seen transactions when importing.
-
-#### rewrite
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs#L28)
-Adds one or more custom postings to matched transactions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.2/images/balance-q-inc.png b/site/doc/1.2/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.2/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.2/images/coins.svg b/site/doc/1.2/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.2/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.2/images/coins2-248.png b/site/doc/1.2/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.2/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.2/images/coins2.png b/site/doc/1.2/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.2/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.2/images/data-model.png b/site/doc/1.2/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.2/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-charts-2.png b/site/doc/1.2/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.2/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-lib-api.png b/site/doc/1.2/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/1.2/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-screen-1.png b/site/doc/1.2/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.2/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.2/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.2/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.2/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web-journal.png b/site/doc/1.2/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.2/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/add.png b/site/doc/1.2/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/help.png b/site/doc/1.2/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/help2.png b/site/doc/1.2/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.2/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/journal.png b/site/doc/1.2/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/journal2.png b/site/doc/1.2/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/normal/register.png b/site/doc/1.2/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.2/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/add.png b/site/doc/1.2/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/help.png b/site/doc/1.2/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/help2.png b/site/doc/1.2/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/journal-sidebar.png b/site/doc/1.2/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.2/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/journal.png b/site/doc/1.2/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/journal2.png b/site/doc/1.2/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/register.png b/site/doc/1.2/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.2/images/hledger-web/small/register2.png b/site/doc/1.2/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.2/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.2/images/linux.png b/site/doc/1.2/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.2/images/linux.png and /dev/null differ
diff --git a/site/doc/1.2/images/mac.png b/site/doc/1.2/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.2/images/mac.png and /dev/null differ
diff --git a/site/doc/1.2/images/manual.png b/site/doc/1.2/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.2/images/manual.png and /dev/null differ
diff --git a/site/doc/1.2/images/sshot.png b/site/doc/1.2/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.2/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.2/images/watchhours.png b/site/doc/1.2/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.2/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.2/images/windows.png b/site/doc/1.2/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.2/images/windows.png and /dev/null differ
diff --git a/site/doc/1.2/journal.md b/site/doc/1.2/journal.md
deleted file mode 100644
index 5a167737f..000000000
--- a/site/doc/1.2/journal.md
+++ /dev/null
@@ -1,868 +0,0 @@
-# journal format
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Prices
-
-#### Transaction prices
-
-Within a transaction posting, you can record an amount's price in
-another commodity. This can be used to document the cost (for a
-purchase), or selling price (for a sale), or the exchange rate that was
-used, for this transaction. These transaction prices are fixed, and do
-not change over time.
-
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity, by using the
-[`--cost/-B`](hledger.html#reporting-options) flag supported by most
-hledger commands (mnemonic: "cost Basis").
-
-There are several ways to record a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-Some commands ([balance](hledger.html#market-value), currently) can use
-this information to show the market value of things at a given date.
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/journal.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Implicit tags
-
-Some predefined "implicit" tags are also provided:
-
-- `code` - the transaction's code field
-- `description` - the transaction's description
-- `payee` - the part of description before `|`, or all of it
-- `note` - the part of description after `|`, or all of it
-
-`payee` and `note` support descriptions written in a special
-`PAYEE | NOTE` format, accessing the parts before and after the pipe
-character respectively. For descriptions not containing a pipe character
-they are the same as `description`.
-
-### Directives
-
-#### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-#### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-#### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Emacs
- Vim
- Sublime Text
- Textmate
- Text Wrangler
- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-
-
diff --git a/site/doc/1.2/manual.md b/site/doc/1.2/manual.md
deleted file mode 100644
index 053fb642e..000000000
--- a/site/doc/1.2/manual.md
+++ /dev/null
@@ -1,4028 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`. (Note -h and --help are
-different, like git.)
-
-General help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-Note when multiple similar reporting options are provided, the last one
-takes precedence. Eg `-p feb -p mar` is equivalent to `-p mar`.
-
-Some of these can also be written as [queries](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments get de-escaped when hledger is
-passing them to an addon executable. In this case you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- Reader: Reads: Used for file extensions:
- ------------- ----------------------------------------------------- --------------------------------------
- `journal` hledger's journal format, also some Ledger journals `.journal` `.j` `.hledger` `.ledger`
- `timeclock` timeclock files (precise time logging) `.timeclock`
- `timedot` timedot files (approximate time logging) `.timedot`
- `csv` comma-separated values (data interchange) `.csv`
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot TAGNAME` option causes it to sum and
-organize hierarchy based on some other field instead.
-
-TAGNAME is the full, case-insensitive name of a
-[tag](/journal.html#tags) you have defined, or one of the built-in
-implicit tags (like `code` or `payee`). As with account names, when tag
-values have `multiple:colon-separated:parts` hledger will build
-hierarchy, displayed in tree-mode reports, summarisable with a depth
-limit, and so on.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified tag on that
-posting, inheriting it from the transaction or using a blank value if
-it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:*, status:!, status:`**
-: match cleared, pending, or uncleared/pending transactions
- respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere in
- hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-#### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: Use unicode to display prettier tables.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and most useful command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### print
-
-Show transactions from the journal.
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file, tidily formatted.
-
-As of hledger 1.2, print's output is always a valid [hledger
-journal](/journal.html). However it may not preserve all original
-content, eg it does not print directives or inter-transaction comments.
-
-Normally, transactions' implicit/explicit amount style is preserved:
-when an amount is omitted in the journal, it will be omitted in the
-output. You can use the `-x/--explicit` flag to make all amounts
-explicit, which can be useful for troubleshooting or for making your
-journal more readable and robust against data entry errors. Note, in
-this mode postings with a multi-commodity amount (possible with an
-implicit amount in a multi-commodity transaction) will be split into
-multiple single-commodity postings, for valid journal output.
-
-With -B/--cost, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost (using
-the transaction price).
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-##### check-dates
-
-[hledger-check-dates.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dates.hs#L15)
-checks that journal entries are ordered by date.
-
-##### check-dupes
-
-[hledger-check-dupes.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dupes.hs#L21)
-checks for account names sharing the same leaf name.
-
-##### equity
-
-[hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs#L17)
-prints balance-resetting transactions, useful for bringing account
-balances across file boundaries.
-
-##### prices
-
-[hledger-prices.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-prices.hs)
-prints all prices from the journal.
-
-##### print-unique
-
-[hledger-print-unique.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-print-unique.hs#L15)
-prints transactions which do not reuse an already-seen description.
-
-##### register-match
-
-[hledger-register-match.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-register-match.hs#L23)
-helps ledger-autosync detect already-seen transactions when importing.
-
-##### rewrite
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs#L28)
-Adds one or more custom postings to matched transactions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style `h`/`j`/`k`/`l` movement keys are also supported. A tip:
-movement speed is limited by your keyboard repeat rate, to move faster
-you may want to adjust it. (If you're on a mac, the Karabiner app is one
-way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and
-cleared/uncleared (see below). `BACKSPACE` or `DELETE` removes all
-filters, showing all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`C` toggles cleared mode, in which [uncleared transactions and
-postings](/journal.html#transactions) are not shown. `U` toggles
-uncleared mode, in which only uncleared transactions/postings are shown.
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`--pending`
-: include only pending postings/txns
-
-`-U --uncleared`
-: include only uncleared (and pending) postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h`
-: show usage
-
-`--help`
-: show manual as plain text
-
-`--man`
-: show manual with man
-
-`--info`
-: show manual with info
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are represented by journal entries. Each begins with a
-[simple date](#simple-dates) in column 0, followed by three optional
-fields with spaces between them:
-
-- a status flag, which can be empty or `!` or `*` (meaning
- "uncleared", "pending" and "cleared", or whatever you want)
-- a transaction code (eg a check number),
-- and/or a description
-
-then some number of postings, of some amount to some account. Each
-posting is on its own line, consisting of:
-
-- indentation of one or more spaces (or tabs)
-- optionally, a `!` or `*` status flag followed by a space
-- an account name, optionally containing single spaces
-- optionally, two or more spaces or tabs followed by an amount
-
-Usually there are two or more postings, though one or none is also
-possible. The posting amounts within a transaction must always balance,
-ie add up to 0. Optionally one amount can be left blank, in which case
-it will be inferred.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction posting, you can record an amount's price in
-another commodity. This can be used to document the cost (for a
-purchase), or selling price (for a sale), or the exchange rate that was
-used, for this transaction. These transaction prices are fixed, and do
-not change over time.
-
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity, by using the
-[`--cost/-B`](hledger.html#reporting-options) flag supported by most
-hledger commands (mnemonic: "cost Basis").
-
-There are several ways to record a transaction price:
-
-1. Write the unit price (aka exchange rate), as `@ UNITPRICE` after the
- amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @ $1.35 ; one hundred euros at $1.35 each
- assets:cash
- ```
-
-2. Or write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 @@ $135 ; one hundred euros at $135 for the lot
- assets:cash
- ```
-
-3. Or let hledger infer the price so as to balance the transaction. To
- permit this, you must fully specify all posting amounts, and their
- sum must have a non-zero amount in exactly two commodities:
-
- ``` {.journal}
- 2009/1/1
- assets:foreign currency €100 ; one hundred euros
- assets:cash $-135 ; exchanged for $135
- ```
-
-With any of the above examples we get:
-
-``` {.shell}
-$ hledger print -B
-2009/01/01
- assets:foreign currency $135.00
- assets:cash $-135.00
-```
-
-Example use for transaction prices: recording the effective conversion
-rate of purchases made in a foreign currency.
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-Some commands ([balance](hledger.html#market-value), currently) can use
-this information to show the market value of things at a given date.
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/journal.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-##### Implicit tags
-
-Some predefined "implicit" tags are also provided:
-
-- `code` - the transaction's code field
-- `description` - the transaction's description
-- `payee` - the part of description before `|`, or all of it
-- `note` - the part of description after `|`, or all of it
-
-`payee` and `note` support descriptions written in a special
-`PAYEE | NOTE` format, accessing the parts before and after the pipe
-character respectively. For descriptions not containing a pipe character
-they are the same as `description`.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes. (This was the default behaviour in
-hledger 0.24-0.25):
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- --------------------------------------------------------------------------------
- Emacs
- Vim
- Sublime Text
- Textmate
- Text Wrangler
- ----------------- --------------------------------------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see [How to
-read CSV files](how-to-read-csv-files.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-### CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`. Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
-
-
-## timeclock format
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **1.2**. []{.docversions}
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.2/timeclock.md b/site/doc/1.2/timeclock.md
deleted file mode 100644
index ce7a1d6da..000000000
--- a/site/doc/1.2/timeclock.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# timeclock format
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
diff --git a/site/doc/1.2/timedot.md b/site/doc/1.2/timedot.md
deleted file mode 100644
index e4210c9a8..000000000
--- a/site/doc/1.2/timedot.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# timedot format
-
-This doc is for version **1.2**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.3/.snapshot b/site/doc/1.3/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.3/csv.md b/site/doc/1.3/csv.md
deleted file mode 100644
index abea816f3..000000000
--- a/site/doc/1.3/csv.md
+++ /dev/null
@@ -1,190 +0,0 @@
-# csv format
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see
-[Cookbook: convert CSV files](csv-import.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-## CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-## CSV TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field to generate a [balance
-assertion](/journal.html#balance-assertions) on `account1` whenever the
-balance field is non-empty. (Eg to double-check your bank's balance
-calculation.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
diff --git a/site/doc/1.3/hledger-api.md b/site/doc/1.3/hledger-api.md
deleted file mode 100644
index ff3ca3229..000000000
--- a/site/doc/1.3/hledger-api.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# hledger-api
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h`
-: show usage
-
-`--help`
-: show manual as plain text
-
-`--man`
-: show manual with man
-
-`--info`
-: show manual with info
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.3/hledger-ui.md b/site/doc/1.3/hledger-ui.md
deleted file mode 100644
index 3399cd523..000000000
--- a/site/doc/1.3/hledger-ui.md
+++ /dev/null
@@ -1,392 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.3/hledger-web.md b/site/doc/1.3/hledger-web.md
deleted file mode 100644
index bf37689a8..000000000
--- a/site/doc/1.3/hledger-web.md
+++ /dev/null
@@ -1,238 +0,0 @@
-# hledger-web
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.3/hledger.md b/site/doc/1.3/hledger.md
deleted file mode 100644
index 380fd82ad..000000000
--- a/site/doc/1.3/hledger.md
+++ /dev/null
@@ -1,2078 +0,0 @@
-# hledger
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`. (Note -h and --help are
-different, like git.)
-
-General help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-Note when multiple similar reporting options are provided, the last one
-takes precedence. Eg `-p feb -p mar` is equivalent to `-p mar`.
-
-Some of these can also be written as [queries](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments get de-escaped when hledger is
-passing them to an addon executable. In this case you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- Reader: Reads: Used for file extensions:
- ----------------- ---------------------------------------------------- -----------------------------------------
- `journal` hledger's journal format, also some Ledger journals `.journal` `.j` `.hledger` `.ledger`
- `timeclock` timeclock files (precise time logging) `.timeclock`
- `timedot` timedot files (approximate time logging) `.timedot`
- `csv` comma-separated values (data interchange) `.csv`
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot TAGNAME` option causes it to sum and
-organize hierarchy based on some other field instead.
-
-TAGNAME is the full, case-insensitive name of a
-[tag](/journal.html#tags) you have defined, or one of the built-in
-implicit tags (like `code` or `payee`). As with account names, when tag
-values have `multiple:colon-separated:parts` hledger will build
-hierarchy, displayed in tree-mode reports, summarisable with a depth
-limit, and so on.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified tag on that
-posting, inheriting it from the transaction or using a blank value if
-it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere in
- hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: Use unicode to display prettier tables.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and versatile command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this. Eliding of boring accounts is not yet supported in multicolumn
-reports.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-#### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-#### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-### print
-
-Show transactions from the journal.
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file, tidily formatted.
-
-As of hledger 1.2, print's output is always a valid [hledger
-journal](/journal.html). However it may not preserve all original
-content, eg it does not print directives or inter-transaction comments.
-
-Normally, transactions' implicit/explicit amount style is preserved:
-when an amount is omitted in the journal, it will be omitted in the
-output. You can use the `-x/--explicit` flag to make all amounts
-explicit, which can be useful for troubleshooting or for making your
-journal more readable and robust against data entry errors. Note, in
-this mode postings with a multi-commodity amount (possible with an
-implicit amount in a multi-commodity transaction) will be split into
-multiple single-commodity postings, for valid journal output.
-
-With -B/--cost, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost (using
-the transaction price).
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-#### check-dates
-
-[hledger-check-dates.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dates.hs#L15)
-checks that journal entries are ordered by date.
-
-#### check-dupes
-
-[hledger-check-dupes.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dupes.hs#L21)
-checks for account names sharing the same leaf name.
-
-#### equity
-
-[hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs#L17)
-prints balance-resetting transactions, useful for bringing account
-balances across file boundaries.
-
-#### prices
-
-[hledger-prices.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-prices.hs)
-prints all prices from the journal.
-
-#### print-unique
-
-[hledger-print-unique.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-print-unique.hs#L15)
-prints transactions which do not reuse an already-seen description.
-
-#### register-match
-
-[hledger-register-match.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-register-match.hs#L23)
-helps ledger-autosync detect already-seen transactions when importing.
-
-#### rewrite
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs#L28)
-Adds one or more custom postings to matched transactions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.3/images/balance-q-inc.png b/site/doc/1.3/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.3/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.3/images/coins.svg b/site/doc/1.3/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.3/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.3/images/coins2-248.png b/site/doc/1.3/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.3/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.3/images/coins2.png b/site/doc/1.3/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.3/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.3/images/data-model.png b/site/doc/1.3/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.3/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-charts-2.png b/site/doc/1.3/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.3/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-lib-api.png b/site/doc/1.3/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/1.3/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-screen-1.png b/site/doc/1.3/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.3/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.3/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.3/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.3/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web-journal.png b/site/doc/1.3/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.3/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/add.png b/site/doc/1.3/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/help.png b/site/doc/1.3/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/help2.png b/site/doc/1.3/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.3/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/journal.png b/site/doc/1.3/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/journal2.png b/site/doc/1.3/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/normal/register.png b/site/doc/1.3/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.3/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/add.png b/site/doc/1.3/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/help.png b/site/doc/1.3/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/help2.png b/site/doc/1.3/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/journal-sidebar.png b/site/doc/1.3/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.3/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/journal.png b/site/doc/1.3/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/journal2.png b/site/doc/1.3/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/register.png b/site/doc/1.3/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.3/images/hledger-web/small/register2.png b/site/doc/1.3/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.3/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.3/images/linux.png b/site/doc/1.3/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.3/images/linux.png and /dev/null differ
diff --git a/site/doc/1.3/images/mac.png b/site/doc/1.3/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.3/images/mac.png and /dev/null differ
diff --git a/site/doc/1.3/images/manual.png b/site/doc/1.3/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.3/images/manual.png and /dev/null differ
diff --git a/site/doc/1.3/images/sshot.png b/site/doc/1.3/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.3/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.3/images/watchhours.png b/site/doc/1.3/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.3/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.3/images/windows.png b/site/doc/1.3/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.3/images/windows.png and /dev/null differ
diff --git a/site/doc/1.3/journal.md b/site/doc/1.3/journal.md
deleted file mode 100644
index ae5b12f41..000000000
--- a/site/doc/1.3/journal.md
+++ /dev/null
@@ -1,940 +0,0 @@
-# journal format
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- status meaning
- ----------------- -----------------------------------------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
- pending tentatively reconciled (if needed, eg during a big reconciliation)
- cleared complete, reconciled as far as possible, and considered correct
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Prices
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Implicit tags
-
-Some predefined "implicit" tags are also provided:
-
-- `code` - the transaction's code field
-- `description` - the transaction's description
-- `payee` - the part of description before `|`, or all of it
-- `note` - the part of description after `|`, or all of it
-
-`payee` and `note` support descriptions written in a special
-`PAYEE | NOTE` format, accessing the parts before and after the pipe
-character respectively. For descriptions not containing a pipe character
-they are the same as `description`.
-
-### Directives
-
-#### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-#### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-#### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Emacs
- Vim
- Sublime Text
- Textmate
- Text Wrangler
- -------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-
-
diff --git a/site/doc/1.3/manual.md b/site/doc/1.3/manual.md
deleted file mode 100644
index ea008d26f..000000000
--- a/site/doc/1.3/manual.md
+++ /dev/null
@@ -1,4132 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`. (Note -h and --help are
-different, like git.)
-
-General help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-Note when multiple similar reporting options are provided, the last one
-takes precedence. Eg `-p feb -p mar` is equivalent to `-p mar`.
-
-Some of these can also be written as [queries](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-There's more.. options and arguments get de-escaped when hledger is
-passing them to an addon executable. In this case you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`.
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- Reader: Reads: Used for file extensions:
- ------------- ----------------------------------------------------- --------------------------------------
- `journal` hledger's journal format, also some Ledger journals `.journal` `.j` `.hledger` `.ledger`
- `timeclock` timeclock files (precise time logging) `.timeclock`
- `timedot` timedot files (approximate time logging) `.timedot`
- `csv` comma-separated values (data interchange) `.csv`
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option, commands like [account](#account),
-[balance](#balance) and [register](#register) will show only the
-uppermost accounts in the account tree, down to level N. Use this when
-you want a summary with less detail.
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot TAGNAME` option causes it to sum and
-organize hierarchy based on some other field instead.
-
-TAGNAME is the full, case-insensitive name of a
-[tag](/journal.html#tags) you have defined, or one of the built-in
-implicit tags (like `code` or `payee`). As with account names, when tag
-values have `multiple:colon-separated:parts` hledger will build
-hierarchy, displayed in tree-mode reports, summarisable with a depth
-limit, and so on.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified tag on that
-posting, inheriting it from the transaction or using a blank value if
-it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-optional prefixes to match specific fields. Multiple search terms are
-combined as follows:
-
-All commands except print: show transactions/postings/accounts which
-match (or negatively match)
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The print command: show transactions which
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used:
-
-**`REGEX`**
-: match account names by this regular expression
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-**`not:`**
-: before any of the above negates the match.
-
-**`inacct:ACCTNAME`**
-: a special term used automatically when you click an account name in
- hledger-web, specifying the account register we are currently in
- (selects the transactions of that account and how to show them, can
- be filtered further with `acct` etc). Not supported elsewhere in
- hledger.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write any unambiguous prefix of
-a command name (`hledger inc`), or one of the standard short aliases
-displayed in the command list (`hledger is`).
-
-
-#### accounts
-
-Show account names.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Alias: bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: Use unicode to display prettier tables.
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and versatile command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this. Eliding of boring accounts is not yet supported in multicolumn
-reports.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable` or `A/R` (plural forms also
-allowed.)
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger man
-pages](/docs.html). (Unlike `hledger --help`, which displays only the
-hledger man page.) Run it with no arguments to list available topics
-(their names are shortened for easier typing), and run
-`hledger help TOPIC` to select one. The output is similar to a man page,
-but fixed width. It may be long, so you may wish to pipe it into a
-pager. See also [info](#info) and [man](#man).
-
-``` {.shell}
-$ hledger help
-Choose a topic, eg: hledger help cli
-cli, ui, web, api, journal, csv, timeclock, timedot
-```
-
-``` {.shell}
-$ hledger help cli | less
-
-hledger(1) hledger User Manuals hledger(1)
-
-
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [CMDARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [CMDARGS]
-:
-```
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### info
-
-Show any of the hledger manuals using info.
-
-The `info` command displays any of the [hledger reference
-manuals](/docs.html) using the
-[info](https://en.wikipedia.org/wiki/Info_(Unix)) hypertextual
-documentation viewer. This can be a very efficient way to browse large
-manuals. It requires the "info" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### man
-
-Show any of the hledger manuals using man.
-
-The `man` command displays any of the [hledger reference
-manuals](/docs.html) using
-[man](https://en.wikipedia.org/wiki/Man_page), the standard
-documentation viewer on unix systems. This will fit the text to your
-terminal width, and probably invoke a pager automatically. It requires
-the "man" program to be available in your PATH.
-
-As with [help](#help), run it with no arguments to list available topics
-(manuals).
-
-#### print
-
-Show transactions from the journal.
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file, tidily formatted.
-
-As of hledger 1.2, print's output is always a valid [hledger
-journal](/journal.html). However it may not preserve all original
-content, eg it does not print directives or inter-transaction comments.
-
-Normally, transactions' implicit/explicit amount style is preserved:
-when an amount is omitted in the journal, it will be omitted in the
-output. You can use the `-x/--explicit` flag to make all amounts
-explicit, which can be useful for troubleshooting or for making your
-journal more readable and robust against data entry errors. Note, in
-this mode postings with a multi-commodity amount (possible with an
-implicit amount in a multi-commodity transaction) will be split into
-multiple single-commodity postings, for valid journal output.
-
-With -B/--cost, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost (using
-the transaction price).
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### register
-
-Show postings and their running total. Alias: reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-##### check-dates
-
-[hledger-check-dates.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dates.hs#L15)
-checks that journal entries are ordered by date.
-
-##### check-dupes
-
-[hledger-check-dupes.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check-dupes.hs#L21)
-checks for account names sharing the same leaf name.
-
-##### equity
-
-[hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs#L17)
-prints balance-resetting transactions, useful for bringing account
-balances across file boundaries.
-
-##### prices
-
-[hledger-prices.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-prices.hs)
-prints all prices from the journal.
-
-##### print-unique
-
-[hledger-print-unique.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-print-unique.hs#L15)
-prints transactions which do not reuse an already-seen description.
-
-##### register-match
-
-[hledger-register-match.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-register-match.hs#L23)
-helps ledger-autosync detect already-seen transactions when importing.
-
-##### rewrite
-
-[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs#L28)
-Adds one or more custom postings to matched transactions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot TAGNAME`
-: use some other field/tag for account names
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: show, and match with -b/-e/-p/date:, secondary dates instead
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`--depth=N`
-: hide accounts/postings deeper than N
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-hledger help options:
-
-`-h`
-: show general usage (or after COMMAND, command usage)
-
-`--help`
-: show this program's manual as plain text (or after an add-on
- COMMAND, the add-on's manual)
-
-`--man`
-: show this program's manual with man
-
-`--info`
-: show this program's manual with info
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h`
-: show usage
-
-`--help`
-: show manual as plain text
-
-`--man`
-: show manual with man
-
-`--info`
-: show manual with info
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- status meaning
- ----------- --------------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
- pending tentatively reconciled (if needed, eg during a big reconciliation)
- cleared complete, reconciled as far as possible, and considered correct
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-##### Implicit tags
-
-Some predefined "implicit" tags are also provided:
-
-- `code` - the transaction's code field
-- `description` - the transaction's description
-- `payee` - the part of description before `|`, or all of it
-- `note` - the part of description after `|`, or all of it
-
-`payee` and `note` support descriptions written in a special
-`PAYEE | NOTE` format, accessing the parts before and after the pipe
-character respectively. For descriptions not containing a pipe character
-they are the same as `description`.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Note,
-currently regular expression aliases may cause noticeable slow-downs.
-(And if you use Ledger on your hledger file, they will be ignored.) Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- --------------------------------------------------------------------------------
- Emacs
- Vim
- Sublime Text
- Textmate
- Text Wrangler
- ----------------- --------------------------------------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see
-[Cookbook: convert CSV files](csv-import.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-### CSV RULES
-
-The following six kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### CSV TIPS
-
-Each generated journal entry will have two postings, to `account1` and
-`account2` respectively. Currently it's not possible to generate entries
-with more than two postings.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead of `amount`.
-
-If the CSV has the currency in a separate field, assign that to the
-`currency` pseudo field which will be automatically prepended to the
-amount. (Or you can do the same thing with a field assignment.)
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field to generate a [balance
-assertion](/journal.html#balance-assertions) on `account1` whenever the
-balance field is non-empty. (Eg to double-check your bank's balance
-calculation.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped automatically.
-
-The generated journal entries will be sorted by date. The original order
-of same-day entries will be preserved, usually.
-
-
-
-## timeclock format
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **1.3**. []{.docversions}
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.3/timeclock.md b/site/doc/1.3/timeclock.md
deleted file mode 100644
index 52a3b7010..000000000
--- a/site/doc/1.3/timeclock.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# timeclock format
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
diff --git a/site/doc/1.3/timedot.md b/site/doc/1.3/timedot.md
deleted file mode 100644
index a7fb5dd90..000000000
--- a/site/doc/1.3/timedot.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# timedot format
-
-This doc is for version **1.3**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(eg time), supported by hledger. It is convenient for approximate and
-retroactive time logging, eg when the real-time clock-in/out required
-with a timeclock file is too precise or too interruptive. It can be
-formatted like a bar chart, making clear at a glance where time was
-spent.
-
-Though called "timedot", the format does not specify the commodity being
-logged, so could represent other dated, quantifiable things. Eg you
-could record a single-entry journal of financial transactions, perhaps
-slightly more conveniently than with hledger\_journal(5) format.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. There must be at least two spaces between the
-category and the quantity. Quantities can be written in two ways:
-
-1. a series of dots (period characters). Each dot represents "a
- quarter" - eg, a quarter hour. Spaces can be used to group dots into
- hours, for easier counting.
-
-2. a number (integer or decimal), representing "units" - eg, hours. A
- good alternative when dots are cumbersome. (A number also can record
- negative quantities.)
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.4/.snapshot b/site/doc/1.4/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.4/csv.md b/site/doc/1.4/csv.md
deleted file mode 100644
index bf2d1bbcd..000000000
--- a/site/doc/1.4/csv.md
+++ /dev/null
@@ -1,227 +0,0 @@
-# csv format
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see
-[Cookbook: convert CSV files](csv-import.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.4/hledger-api.md b/site/doc/1.4/hledger-api.md
deleted file mode 100644
index 661a65b99..000000000
--- a/site/doc/1.4/hledger-api.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# hledger-api
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.4/hledger-ui.md b/site/doc/1.4/hledger-ui.md
deleted file mode 100644
index 09cda91a7..000000000
--- a/site/doc/1.4/hledger-ui.md
+++ /dev/null
@@ -1,393 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.4/hledger-web.md b/site/doc/1.4/hledger-web.md
deleted file mode 100644
index 0d06ac105..000000000
--- a/site/doc/1.4/hledger-web.md
+++ /dev/null
@@ -1,239 +0,0 @@
-# hledger-web
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.4/hledger.md b/site/doc/1.4/hledger.md
deleted file mode 100644
index 65d45305f..000000000
--- a/site/doc/1.4/hledger.md
+++ /dev/null
@@ -1,2173 +0,0 @@
-# hledger
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument expansion
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILE` in a command line. (To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument.)
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ---------- ---------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock timeclock files (precise time `.timeclock`
- ` logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`**
-: match account names by this regular expression. (No prefix is
- equivalent to `acct:`).
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-### accounts
-
-Show account names. Alias: a.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: Use unicode to display prettier tables.
-
-`--sort-amount`
-: Sort by amount (total row amount, or by average if that is
- displayed), instead of account name (in flat mode)
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and versatile command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this. Eliding of boring accounts is not yet supported in multicolumn
-reports.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-#### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-#### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-### balancesheetequity
-
-Show a balance sheet including equity. Alias: bse.
-
-Other than showing the equity accounts, this command is exactly the same
-as the command balancesheet. Please refer to it for the available
-options.
-
-This command displays a
-[balancesheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently
-assumes that you have top-level accounts named `asset`, `liability` and
-`equity` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable`, `:A/R` or `:fixed`.
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### equity
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing account balances
-across file boundaries.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### prices
-
-Print all market prices from the journal.
-
-### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-### tags
-
-List all the tag names in use.
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.4/images/balance-q-inc.png b/site/doc/1.4/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.4/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.4/images/coins.svg b/site/doc/1.4/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.4/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.4/images/coins2-248.png b/site/doc/1.4/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.4/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.4/images/coins2.png b/site/doc/1.4/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.4/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.4/images/data-model.png b/site/doc/1.4/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.4/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-charts-2.png b/site/doc/1.4/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.4/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-lib-api.png b/site/doc/1.4/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/1.4/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-screen-1.png b/site/doc/1.4/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.4/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.4/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.4/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.4/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web-journal.png b/site/doc/1.4/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.4/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/add.png b/site/doc/1.4/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/help.png b/site/doc/1.4/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/help2.png b/site/doc/1.4/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.4/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/journal.png b/site/doc/1.4/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/journal2.png b/site/doc/1.4/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/normal/register.png b/site/doc/1.4/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.4/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/add.png b/site/doc/1.4/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/help.png b/site/doc/1.4/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/help2.png b/site/doc/1.4/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/journal-sidebar.png b/site/doc/1.4/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.4/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/journal.png b/site/doc/1.4/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/journal2.png b/site/doc/1.4/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/register.png b/site/doc/1.4/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.4/images/hledger-web/small/register2.png b/site/doc/1.4/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.4/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.4/images/linux.png b/site/doc/1.4/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.4/images/linux.png and /dev/null differ
diff --git a/site/doc/1.4/images/mac.png b/site/doc/1.4/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.4/images/mac.png and /dev/null differ
diff --git a/site/doc/1.4/images/manual.png b/site/doc/1.4/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.4/images/manual.png and /dev/null differ
diff --git a/site/doc/1.4/images/sshot.png b/site/doc/1.4/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.4/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.4/images/watchhours.png b/site/doc/1.4/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.4/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.4/images/windows.png b/site/doc/1.4/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.4/images/windows.png and /dev/null differ
diff --git a/site/doc/1.4/journal.md b/site/doc/1.4/journal.md
deleted file mode 100644
index 285a56d11..000000000
--- a/site/doc/1.4/journal.md
+++ /dev/null
@@ -1,966 +0,0 @@
-# journal format
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed
- in parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ------------------------------------------------------------------------
- status meaning
- ---------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Prices
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-#### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-#### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-#### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- -----------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text Wrangler
-
- Visual Studio
- ----------------- -----------------------------------------------------
-
-
-
diff --git a/site/doc/1.4/manual.md b/site/doc/1.4/manual.md
deleted file mode 100644
index cd433535d..000000000
--- a/site/doc/1.4/manual.md
+++ /dev/null
@@ -1,4292 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **1.4**.
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger’s command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user’s \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger’s interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument expansion
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILE` in a command line. (To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument.)
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- -----------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ---------- ---------------------------------- -------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock timeclock files (precise time `.timeclock`
- ` logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- -----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every N days|weeks|months|quarters|years`,
-`every Nth day [of month]`, `every Nth day of week`.
-
-Examples:
-
- ------------------------------
- `-p "bimonthly from 2008"`
- `-p "every 2 weeks"`
- `-p "every 5 days from 1/3"`
- ------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts the reported amounts to their market
-value on the report end date, using the most recent applicable market
-prices, when known. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before the [report end
-date](hledger.html#report-start-end-date) (see hledger -> Report
-start & end date), the amount will be converted to the price's
-commodity. If multiple applicable prices are defined, the latest-dated
-one is used (and if dates are equal, the one last parsed).
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-Using -B and -V together is allowed.
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`**
-: match account names by this regular expression. (No prefix is
- equivalent to `acct:`).
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-#### accounts
-
-Show account names. Alias: a.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: Use unicode to display prettier tables.
-
-`--sort-amount`
-: Sort by amount (total row amount, or by average if that is
- displayed), instead of account name (in flat mode)
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and versatile command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this. Eliding of boring accounts is not yet supported in multicolumn
-reports.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-#### balancesheetequity
-
-Show a balance sheet including equity. Alias: bse.
-
-Other than showing the equity accounts, this command is exactly the same
-as the command balancesheet. Please refer to it for the available
-options.
-
-This command displays a
-[balancesheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently
-assumes that you have top-level accounts named `asset`, `liability` and
-`equity` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable`, `:A/R` or `:fixed`.
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-#### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### equity
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing account balances
-across file boundaries.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### prices
-
-Print all market prices from the journal.
-
-#### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-#### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-#### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### tags
-
-List all the tag names in use.
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](faq#file-format-differences).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.4**.
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.4**.
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.4**.
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.4**.
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset,
-[mostly](faq.html#file-format-differences), of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](faq.html#file-format-differences)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed
- in parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ----------------------------------------------------------------------
- status meaning
- ---------- -----------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ----------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- commas (in which case period is used for decimal point) or periods
- (in which case comma is used for decimal point)
-
-You can use any of these variations when recording data, but when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-asterisk (`*`) are comments, and will be ignored. (Asterisk comments
-make it easy to treat your journal like an org-mode outline in emacs.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-
-Some examples:
-
-``` {.journal}
-# a journal comment
-
-; also a journal comment
-
-comment
-This is a multiline comment,
-which continues until a line
-where the "end comment" string
-appears on its own.
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a journal comment (because not indented)
-```
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 # <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ----------------- ----------------------------------------------------
- Emacs
-
- Vim <https://github.com/ledger/ledger/wiki/Getting-st
- arte
- d>
-
- Sublime Text <https://github.com/ledger/ledger/wiki/Using-Subl
- ime-
- Text>
-
- Textmate <https://github.com/ledger/ledger/wiki/Using-Text
- Mate
- -2>
-
- Text Wrangler <https://github.com/ledger/ledger/wiki/Editing-Le
- dger
- -files-with-TextWrangler>
-
- Visual Studio <https://marketplace.visualstudio.com/items?itemN
- Code ame=
- mark-hansen.hledger-vscode>
- ----------------- ----------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **1.4**.
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values) files,
-converting each CSV record into a journal entry (transaction), if you
-provide some conversion hints in a "rules file". This file should be
-named like the CSV file with an additional `.rules` suffix (eg:
-`mybank.csv.rules`); or, you can specify the file with
-`--rules-file PATH`. hledger will create it if necessary, with some
-default rules which you'll need to adjust. At minimum, the rules file
-must specify the `date` and `amount` fields. For an example, see
-[Cookbook: convert CSV files](csv-import.html).
-
-To learn about *exporting* CSV, see [CSV
-output](hledger.html#csv-output).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.4**.
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **1.4**.
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.4/timeclock.md b/site/doc/1.4/timeclock.md
deleted file mode 100644
index bde69e3b4..000000000
--- a/site/doc/1.4/timeclock.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# timeclock format
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
-
- ``` {.shell}
- alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
- alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
- ```
-
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
diff --git a/site/doc/1.4/timedot.md b/site/doc/1.4/timedot.md
deleted file mode 100644
index c238c061b..000000000
--- a/site/doc/1.4/timedot.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# timedot format
-
-This doc is for version **1.4**.
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.5/.snapshot b/site/doc/1.5/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.5/csv.md b/site/doc/1.5/csv.md
deleted file mode 100644
index c24dc9832..000000000
--- a/site/doc/1.5/csv.md
+++ /dev/null
@@ -1,273 +0,0 @@
-# csv format
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV files](csv-import.html).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.5/hledger-api.md b/site/doc/1.5/hledger-api.md
deleted file mode 100644
index 37418b1c1..000000000
--- a/site/doc/1.5/hledger-api.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# hledger-api
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.5/hledger-ui.md b/site/doc/1.5/hledger-ui.md
deleted file mode 100644
index ee60386e8..000000000
--- a/site/doc/1.5/hledger-ui.md
+++ /dev/null
@@ -1,406 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.5/hledger-web.md b/site/doc/1.5/hledger-web.md
deleted file mode 100644
index 909108e20..000000000
--- a/site/doc/1.5/hledger-web.md
+++ /dev/null
@@ -1,246 +0,0 @@
-# hledger-web
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.5/hledger.md b/site/doc/1.5/hledger.md
deleted file mode 100644
index 5a01bd957..000000000
--- a/site/doc/1.5/hledger.md
+++ /dev/null
@@ -1,2330 +0,0 @@
-# hledger
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used options](argfiles.html).
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ---------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- ---------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ---------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before today's date (or the [report end
-date](#report-start-end-date) if specified), the amount will be
-converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`**
-: match account names by this regular expression. (No prefix is
- equivalent to `acct:`).
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-### accounts
-
-Show account names. Alias: a.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-::: {.container-fluid}
-::: {.row}
-::: {.col-sm-4}
-``` {.shell}
-$ hledger accounts --tree
-assets
- bank
- checking
- saving
- cash
-expenses
- food
- supplies
-income
- gifts
- salary
-liabilities
- debts
-```
-:::
-
-::: {.col-sm-4}
-``` {.shell}
-$ hledger accounts --drop 1
-bank:checking
-bank:saving
-cash
-food
-supplies
-gifts
-salary
-debts
-```
-:::
-
-::: {.col-sm-4}
-``` {.shell}
-$ hledger accounts
-assets:bank:checking
-assets:bank:saving
-assets:cash
-expenses:food
-expenses:supplies
-income:gifts
-income:salary
-liabilities:debts
-```
-:::
-:::
-:::
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account name (in flat mode). With multiple
- columns, sorts by the row total, or by row average if that is
- displayed.
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and versatile command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this. Eliding of boring accounts is not yet supported in multicolumn
-reports.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-#### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-#### Budgets
-
-With `--budget` and a [report interval](manual.html#report-intervals),
-all [periodic transactions](journal.html#periodic-transactions) in your
-journal with that interval, active during the requested report period,
-are interpreted as recurring budget goals for the specified accounts
-(and subaccounts), and the report will show the difference between
-actual and budgeted balances.
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget performance report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Balance changes in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-=======================++=================================================
- :expenses || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
------------------------++-------------------------------------------------
- || 0 0
-```
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Ending balances (cumulative) in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-=======================++=================================================
- :expenses || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
------------------------++-------------------------------------------------
- || 0 0
-```
-
-Accounts with no budget goals (not mentioned in the periodic
-transactions) will be aggregated under ``, unless you add
-the `--show-unbudgeted` flag to display them normally:
-
-``` {.shell}
-$ hledger balance --budget --show-unbudgeted
-Balance changes in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:gifts || 0 $100
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- expenses:supplies || $20 0
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-For more examples and details, see [Budgeting and
-Forecasting](budgeting-and-forecasting.html).
-
-#### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-### balancesheetequity
-
-Show a balance sheet including equity. Alias: bse.
-
-Other than showing the equity accounts, this command is exactly the same
-as the command balancesheet. Please refer to it for the available
-options.
-
-This command displays a
-[balancesheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently
-assumes that you have top-level accounts named `asset`, `liability` and
-`equity` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable`, `:A/R` or `:fixed`.
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### equity
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing account balances
-across file boundaries.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-### prices
-
-Print all [market prices](/manual#market-prices) from the journal.
-
-### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.5/images/.DS_Store b/site/doc/1.5/images/.DS_Store
deleted file mode 100644
index 98ecda7b9..000000000
Binary files a/site/doc/1.5/images/.DS_Store and /dev/null differ
diff --git a/site/doc/1.5/images/balance-q-inc.png b/site/doc/1.5/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.5/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.5/images/coins.svg b/site/doc/1.5/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.5/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.5/images/coins2-248.png b/site/doc/1.5/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.5/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.5/images/coins2.png b/site/doc/1.5/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.5/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.5/images/data-model.png b/site/doc/1.5/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.5/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-charts-2.png b/site/doc/1.5/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.5/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-lib-api.png b/site/doc/1.5/images/hledger-lib-api.png
deleted file mode 100644
index 86c120f81..000000000
Binary files a/site/doc/1.5/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-screen-1.png b/site/doc/1.5/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.5/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.5/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.5/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.5/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web-journal.png b/site/doc/1.5/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.5/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/.DS_Store b/site/doc/1.5/images/hledger-web/.DS_Store
deleted file mode 100644
index 830538401..000000000
Binary files a/site/doc/1.5/images/hledger-web/.DS_Store and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/add.png b/site/doc/1.5/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/help.png b/site/doc/1.5/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/help2.png b/site/doc/1.5/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.5/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/journal.png b/site/doc/1.5/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/journal2.png b/site/doc/1.5/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/normal/register.png b/site/doc/1.5/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.5/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/add.png b/site/doc/1.5/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/help.png b/site/doc/1.5/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/help2.png b/site/doc/1.5/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/journal-sidebar.png b/site/doc/1.5/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.5/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/journal.png b/site/doc/1.5/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/journal2.png b/site/doc/1.5/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/register.png b/site/doc/1.5/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.5/images/hledger-web/small/register2.png b/site/doc/1.5/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.5/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.5/images/linux.png b/site/doc/1.5/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.5/images/linux.png and /dev/null differ
diff --git a/site/doc/1.5/images/mac.png b/site/doc/1.5/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.5/images/mac.png and /dev/null differ
diff --git a/site/doc/1.5/images/manual.png b/site/doc/1.5/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.5/images/manual.png and /dev/null differ
diff --git a/site/doc/1.5/images/sshot.png b/site/doc/1.5/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.5/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.5/images/watchhours.png b/site/doc/1.5/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.5/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.5/images/windows.png b/site/doc/1.5/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.5/images/windows.png and /dev/null differ
diff --git a/site/doc/1.5/journal.md b/site/doc/1.5/journal.md
deleted file mode 100644
index f223c84f0..000000000
--- a/site/doc/1.5/journal.md
+++ /dev/null
@@ -1,1041 +0,0 @@
-# journal format
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- -------------------------------------------------------------------------
- status meaning
- ----------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- -------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Prices
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-#### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-#### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-#### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-## Periodic transactions
-
-A periodic transaction starts with a tilde '\~' in place of a date
-followed by a [period expression](manual.html#period-expressions):
-
-``` {.journal}
-~ weekly
- assets:bank:checking $400 ; paycheck
- income:acme inc
-```
-
-Periodic transactions are used for forecasting and budgeting only, they
-have no effect unless the `--forecast` or `--budget` flag is used. With
-`--forecast`, each periodic transaction rule generates recurring
-forecast transactions at the specified interval, beginning the day after
-the last recorded journal transaction and ending 6 months from today, or
-at the specified report end date. With `balance --budget`, each periodic
-transaction declares recurring budget goals for one or more accounts.\
-For more details, see: [balance \> Budgeting](manual.html#budgeting),
-[Budgeting and Forecasting](budgeting-and-forecasting.html).
-
-## Automated posting rules
-
-Automated posting rule starts with an equal sign '=' in place of a date,
-followed by a [query](manual.html#queries):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-When `--auto` option is specified on the command line, automated posting
-rule will add its postings to all transactions that match the query.
-
-If amount in the automated posting rule includes commodity name, new
-posting will be made in the given commodity, otherwise commodity of the
-matched transaction will be used.
-
-When amount in the automated posting rule begins with the '\*', amount
-will be treated as a multiplier that is applied to the amount of the
-first posting in the matched transaction.
-
-In example above, every transaction in `expenses:gifts` account will
-have two additional postings added to it: amount of the original gift
-will be debited from `budget:gifts` and credited into `assets:budget`:
-
-``` {.journal}
-; Original transaction
-2017-12-14
- expenses:gifts $20
- assets
-
-; With automated postings applied
-2017/12/14
- expenses:gifts $20
- assets
- budget:gifts $-20
- assets:budget $20
-```
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ---------------- ----------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text Wrangler
-
- Visual Studio
- Code
- ---------------- ----------------------------------------------------------------------------------
-
-
diff --git a/site/doc/1.5/manual.md b/site/doc/1.5/manual.md
deleted file mode 100644
index d10a16999..000000000
--- a/site/doc/1.5/manual.md
+++ /dev/null
@@ -1,4586 +0,0 @@
-\$toc\$
-
-
-
-## hledger
-
-This doc is for version **1.5**.
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used options](argfiles.html).
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- -----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- -------------------------------- ------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- -----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before today's date (or the [report end
-date](#report-start-end-date) if specified), the amount will be
-converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-#### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#account-aliases) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing
- being matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\<, \\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html)
- like (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`**
-: match account names by this regular expression. (No prefix is
- equivalent to `acct:`).
-
-**`acct:REGEX`**
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers
- are compared. Otherwise, the absolute magnitudes are compared,
- ignoring sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of
- the postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-#### accounts
-
-Show account names. Alias: a.
-
-`--tree`
-: show short account names, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists all account names that are in use (ie, all the
-accounts which have at least one transaction posting to them). With
-query arguments, only matched account names are shown.
-
-It shows a flat list by default. With `--tree`, it uses indentation to
-show the account hierarchy.
-
-In flat mode you can add `--drop N` to omit the first few account name
-components.
-
-Examples:
-
-::: {.container-fluid} ::: {.row} ::: {.col-sm-4}
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- bank
- checking
- saving
- cash
-expenses
- food
- supplies
-income
- gifts
- salary
-liabilities
- debts
-```
-
-:::
-
-::: {.col-sm-4}
-
-``` {.shell}
-$ hledger accounts --drop 1
-bank:checking
-bank:saving
-cash
-food
-supplies
-gifts
-salary
-debts
-```
-
-:::
-
-::: {.col-sm-4}
-
-``` {.shell}
-$ hledger accounts
-assets:bank:checking
-assets:bank:saving
-assets:cash
-expenses:food
-expenses:supplies
-income:gifts
-income:salary
-liabilities:debts
-```
-
-::: ::: :::
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart
- the transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in
- multicolumn reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account name (in flat mode). With multiple
- columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command displays accounts and balances. It is hledger's most
-featureful and versatile command.
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-More precisely, the balance command shows the *change* to each account's
-balance caused by all (matched) postings. In the common case where you
-do not filter by date and your journal sets the correct opening
-balances, this is the same as the account's ending balance.
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. "Boring" accounts, which contain a single
-interesting subaccount and no balance of their own, are elided into the
-following line for more compact output. (Use `--no-elide` to prevent
-this. Eliding of boring accounts is not yet supported in multicolumn
-reports.)
-
-Each account's balance is the "inclusive" balance - it includes the
-balances of any subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Flat mode
-
-To see a flat list of full account names instead of the default
-hierarchical display, use `--flat`. In this mode, accounts (unless
-depth-clipped) show their "exclusive" balance, excluding any subaccount
-balances. In this mode, you can also use `--drop N` to omit the first
-few account name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N`, balance shows accounts only to the specified depth.
-This is very useful to show a complex charts of accounts in less detail.
-In flat mode, balances from accounts below the depth limit will be shown
-as part of a parent account at the depth limit.
-
-``` {.shell}
-$ hledger balance -N --depth 1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-
-##### Multicolumn balance reports
-
-With a [reporting interval](#reporting-interval), multiple balance
-columns will be shown, one for each report period. There are three types
-of multi-column balance report, showing different information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multi-column balance reports display accounts in flat mode by default;
-to see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-##### Budgets
-
-With `--budget` and a [report interval](manual.html#report-intervals),
-all [periodic transactions](journal.html#periodic-transactions) in your
-journal with that interval, active during the requested report period,
-are interpreted as recurring budget goals for the specified accounts
-(and subaccounts), and the report will show the difference between
-actual and budgeted balances.
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget performance report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Balance changes in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-=======================++=================================================
- :expenses || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
------------------------++-------------------------------------------------
- || 0 0
-```
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Ending balances (cumulative) in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-=======================++=================================================
- :expenses || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
------------------------++-------------------------------------------------
- || 0 0
-```
-
-Accounts with no budget goals (not mentioned in the periodic
-transactions) will be aggregated under ``, unless you add
-the `--show-unbudgeted` flag to display them normally:
-
-``` {.shell}
-$ hledger balance --budget --show-unbudgeted
-Balance changes in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:gifts || 0 $100
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- expenses:supplies || $20 0
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-For more examples and details, see [Budgeting and
-Forecasting](budgeting-and-forecasting.html).
-
-##### Custom balance output
-
-In simple (non-multi-column) balance reports, you can customise the
-output with `--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Output destination
-
-The balance, print, register and stats commands can write their output
-to a destination other than the console. This is controlled by the
-`-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-##### CSV output
-
-The balance, print and register commands can write their output as CSV.
-This is useful for exporting data to other applications, eg to make
-charts in a spreadsheet. This is controlled by the `-O/--output-format`
-option, or by specifying a `.csv` file extension with
-`-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### balancesheet
-
-Show a balance sheet. Alias: bs.
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [balance
-sheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently assumes
-that you have top-level accounts named `asset` and `liability` (plural
-forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-#### balancesheetequity
-
-Show a balance sheet including equity. Alias: bse.
-
-Other than showing the equity accounts, this command is exactly the same
-as the command balancesheet. Please refer to it for the available
-options.
-
-This command displays a
-[balancesheet](http://en.wikipedia.org/wiki/Balance_sheet). It currently
-assumes that you have top-level accounts named `asset`, `liability` and
-`equity` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-Show a cashflow statement. Alias: cf.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [cashflow
-statement](http://en.wikipedia.org/wiki/Cash_flow_statement) It shows
-the change in all "cash" (ie, liquid assets) accounts for the period. It
-currently assumes that cash accounts are under a top-level account named
-`asset` and do not contain `receivable`, `:A/R` or `:fixed`.
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-#### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### equity
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing account balances
-across file boundaries.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-Show an income statement. Alias: is.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-#### prices
-
-Print all [market prices](/manual#market-prices) from the journal.
-
-#### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-The print command also supports [output
-destination](#output-destination) and [CSV output](#csv-output). Here's
-an example of print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-#### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total
- (implies --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-The register command also supports the `-o/--output-file` and
-`-O/--output-format` options for controlling [output
-destination](#output-destination) and [CSV output](#csv-output).
-
-#### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-#### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-The stats command also supports `-o/--output-file` for controlling
-[output destination](#output-destination).
-
-#### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### budget
-
-[hledger-budget.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-budget.hs#L10)
-adds more budget-tracking features to hledger.
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC < 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.5**.
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-::: {style="float:right; max-width:200px; text-align:right;"}
-
-
-
-
-
-
-
-
-
-:::
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.5**.
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-::: {style="float:right; max-width:200px; text-align:right;"}
-
-
-
-
-:::
-
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for
- other effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.5**.
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, so you will need to hide hledger-api behind an
-authenticating proxy if you want to restrict access. You can change the
-TCP port (default: 8001) with `-p PORT`.
-
-If invoked as `hledger-api --swagger`, instead of starting a server the
-API docs will be printed in Swagger 2.0 format.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.5**.
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly of [ledger's journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with [compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed
- in parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ----------------------------------------------------------------------
- status meaning
- ----------- ----------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ----------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#account-aliases).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#commodity-directive) specifying
- the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of
- decimal places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-Also, anything between [`comment` and `end comment`
-directives](#multi-line-comments) is a (multi-line) comment. If there is
-no `end comment`, the comment extends to the end of the file.
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-##### Account aliases
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: rewrite account names](account-aliases.html).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### end aliases
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### account directive
-
-The `account` directive predefines account names, as in Ledger and
-Beancount. This may be useful for your own documentation; hledger
-doesn't make use of it yet.
-
-``` {.journal}
-; account ACCT
-; OPTIONAL COMMENTS/TAGS...
-
-account assets:bank:checking
- a comment
- acct-no:12345
-
-account expenses:food
-
-; etc.
-```
-
-##### apply account directive
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-##### Multi-line comments
-
-A line containing just `comment` starts a multi-line comment, and a line
-containing just `end comment` ends it. See [comments](#comments).
-
-##### commodity directive
-
-The `commodity` directive predefines commodities (currently this is just
-informational), and also it may define the display format for amounts in
-this commodity (overriding the automatically inferred format).
-
-It may be written on a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Including other files
-
-You can pull in the content of additional journal files by writing an
-include directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-### Periodic transactions
-
-A periodic transaction starts with a tilde '\~' in place of a date
-followed by a [period expression](manual.html#period-expressions):
-
-``` {.journal}
-~ weekly
- assets:bank:checking $400 ; paycheck
- income:acme inc
-```
-
-Periodic transactions are used for forecasting and budgeting only, they
-have no effect unless the `--forecast` or `--budget` flag is used. With
-`--forecast`, each periodic transaction rule generates recurring
-forecast transactions at the specified interval, beginning the day after
-the last recorded journal transaction and ending 6 months from today, or
-at the specified report end date. With `balance --budget`, each periodic
-transaction declares recurring budget goals for one or more accounts.\
-For more details, see: [balance > Budgeting](manual.html#budgeting),
-[Budgeting and Forecasting](budgeting-and-forecasting.html).
-
-### Automated posting rules
-
-Automated posting rule starts with an equal sign '=' in place of a date,
-followed by a [query](manual.html#queries):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-When `--auto` option is specified on the command line, automated posting
-rule will add its postings to all transactions that match the query.
-
-If amount in the automated posting rule includes commodity name, new
-posting will be made in the given commodity, otherwise commodity of the
-matched transaction will be used.
-
-When amount in the automated posting rule begins with the '\*', amount
-will be treated as a multiplier that is applied to the amount of the
-first posting in the matched transaction.
-
-In example above, every transaction in `expenses:gifts` account will
-have two additional postings added to it: amount of the original gift
-will be debited from `budget:gifts` and credited into `assets:budget`:
-
-``` {.journal}
-; Original transaction
-2017-12-14
- expenses:gifts $20
- assets
-
-; With automated postings applied
-2017/12/14
- expenses:gifts $20
- assets
- budget:gifts $-20
- assets:budget $20
-```
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ------------ ----------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text
-
- Visual
- ------------ ----------------------------------------------------------
-
-
-
-
-
-## csv format
-
-This doc is for version **1.5**.
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV files](csv-import.html).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.5**.
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-
-
-## timedot format
-
-This doc is for version **1.5**.
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
-
diff --git a/site/doc/1.5/timeclock.md b/site/doc/1.5/timeclock.md
deleted file mode 100644
index 589ada7b3..000000000
--- a/site/doc/1.5/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.5/timedot.md b/site/doc/1.5/timedot.md
deleted file mode 100644
index 11a30b728..000000000
--- a/site/doc/1.5/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.5**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#account-aliases):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.9/.snapshot b/site/doc/1.9/.snapshot
deleted file mode 100644
index e69de29bb..000000000
diff --git a/site/doc/1.9/csv.md b/site/doc/1.9/csv.md
deleted file mode 100644
index bda37da4e..000000000
--- a/site/doc/1.9/csv.md
+++ /dev/null
@@ -1,273 +0,0 @@
-# csv format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-## DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV files](csv-import.html).
-
-## CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-## CSV TIPS
-
-### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
diff --git a/site/doc/1.9/hledger-api.md b/site/doc/1.9/hledger-api.md
deleted file mode 100644
index f14753206..000000000
--- a/site/doc/1.9/hledger-api.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# hledger-api
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-## OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
diff --git a/site/doc/1.9/hledger-ui.md b/site/doc/1.9/hledger-ui.md
deleted file mode 100644
index 245f1a8b4..000000000
--- a/site/doc/1.9/hledger-ui.md
+++ /dev/null
@@ -1,409 +0,0 @@
-# hledger-ui
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-## OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-## SCREENS
-
-### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
diff --git a/site/doc/1.9/hledger-web.md b/site/doc/1.9/hledger-web.md
deleted file mode 100644
index 4ad5b8d17..000000000
--- a/site/doc/1.9/hledger-web.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# hledger-web
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-## SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-## OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-## ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
diff --git a/site/doc/1.9/hledger.md b/site/doc/1.9/hledger.md
deleted file mode 100644
index a79332e7b..000000000
--- a/site/doc/1.9/hledger.md
+++ /dev/null
@@ -1,2392 +0,0 @@
-# hledger
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-hledger - a command-line accounting tool
-
-## SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-## DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-## EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-## OPTIONS
-
-### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used options](argfiles.html).
-
-### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- --------------------------------------------------------------------------
- Reader: Reads: Used for file extensions:
- ------------- --------------------------------- --------------------------
- `journal` hledger's journal format, also `.journal` `.j` `.hledger`
- some Ledger journals `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- --------------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before today's date (or the [report end
-date](#report-start-end-date) if specified), the amount will be
-converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-## QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-## COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-#### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-#### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-#### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-#### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-#### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-#### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-#### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-#### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### prices
-
-Print all [market prices](/manual#market-prices) from the journal.
-
-### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-#### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-## ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-### Official add-ons
-
-These are maintained and released along with hledger.
-
-#### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-#### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-#### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-#### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-#### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-#### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-#### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-#### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-#### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-#### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-## ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-## FILES
-
-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`).
-
-## BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-## TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
diff --git a/site/doc/1.9/images/.DS_Store b/site/doc/1.9/images/.DS_Store
deleted file mode 100644
index 98ecda7b9..000000000
Binary files a/site/doc/1.9/images/.DS_Store and /dev/null differ
diff --git a/site/doc/1.9/images/balance-q-inc.png b/site/doc/1.9/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/doc/1.9/images/balance-q-inc.png and /dev/null differ
diff --git a/site/doc/1.9/images/coins.svg b/site/doc/1.9/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/doc/1.9/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/doc/1.9/images/coins2-248.png b/site/doc/1.9/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/doc/1.9/images/coins2-248.png and /dev/null differ
diff --git a/site/doc/1.9/images/coins2.png b/site/doc/1.9/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/doc/1.9/images/coins2.png and /dev/null differ
diff --git a/site/doc/1.9/images/data-model.png b/site/doc/1.9/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/doc/1.9/images/data-model.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-charts-2.png b/site/doc/1.9/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/doc/1.9/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-lib-api.png b/site/doc/1.9/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/doc/1.9/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-screen-1.png b/site/doc/1.9/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/doc/1.9/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc.png b/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc2.png b/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-reg.png b/site/doc/1.9/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-txn.png b/site/doc/1.9/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/doc/1.9/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web-journal.png b/site/doc/1.9/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/doc/1.9/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/.DS_Store b/site/doc/1.9/images/hledger-web/.DS_Store
deleted file mode 100644
index 830538401..000000000
Binary files a/site/doc/1.9/images/hledger-web/.DS_Store and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/add.png b/site/doc/1.9/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/help.png b/site/doc/1.9/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/help2.png b/site/doc/1.9/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/journal-sidebar.png b/site/doc/1.9/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/journal.png b/site/doc/1.9/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/journal2.png b/site/doc/1.9/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/normal/register.png b/site/doc/1.9/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/doc/1.9/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/add.png b/site/doc/1.9/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/help.png b/site/doc/1.9/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/help2.png b/site/doc/1.9/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/journal-sidebar.png b/site/doc/1.9/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/journal-sidebar2.png b/site/doc/1.9/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/journal.png b/site/doc/1.9/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/journal2.png b/site/doc/1.9/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/register.png b/site/doc/1.9/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/doc/1.9/images/hledger-web/small/register2.png b/site/doc/1.9/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/doc/1.9/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/doc/1.9/images/linux.png b/site/doc/1.9/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/doc/1.9/images/linux.png and /dev/null differ
diff --git a/site/doc/1.9/images/mac.png b/site/doc/1.9/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/doc/1.9/images/mac.png and /dev/null differ
diff --git a/site/doc/1.9/images/manual.png b/site/doc/1.9/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/doc/1.9/images/manual.png and /dev/null differ
diff --git a/site/doc/1.9/images/sshot.png b/site/doc/1.9/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/doc/1.9/images/sshot.png and /dev/null differ
diff --git a/site/doc/1.9/images/watchhours.png b/site/doc/1.9/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/doc/1.9/images/watchhours.png and /dev/null differ
diff --git a/site/doc/1.9/images/windows.png b/site/doc/1.9/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/doc/1.9/images/windows.png and /dev/null differ
diff --git a/site/doc/1.9/journal.md b/site/doc/1.9/journal.md
deleted file mode 100644
index 27aef750c..000000000
--- a/site/doc/1.9/journal.md
+++ /dev/null
@@ -1,1110 +0,0 @@
-# journal format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-## DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-## FILE FORMAT
-
-
-### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-### Dates
-
-#### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-#### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-#### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- -------------------------------------------------------------------------
- status meaning
- ----------- -------------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- -------------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-#### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-#### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-#### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-#### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-#### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-#### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-#### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-### Prices
-
-#### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-#### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-### Directives
-
-#### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-#### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-#### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-#### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-#### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-#### Declaring accounts
-
-The `account` directive predeclares account names. The simplest form is
-`account ACCTNAME`, eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-Currently this mainly helps with account name autocompletion in eg
-hledger add, hledger-iadd, hledger-web, and ledger-mode.\
-In future it will also help detect misspelled accounts.
-
-Account names can be followed by a numeric account code:
-
-``` {.journal}
-account assets 1000
-account assets:bank:checking 1110
-account liabilities 2000
-account revenues 4000
-account expenses 6000
-```
-
-This affects account display order in reports: accounts with codes are
-listed before accounts without codes, in increasing code order.
-(Otherwise, accounts are listed alphabetically.) Account codes should be
-all numeric digits, unique, and separated from the account name by at
-least two spaces (since account names may contain single spaces). By
-convention, often the first digit indicates the type of account, as in
-[this numbering
-scheme](http://www.dwmbeancounter.com/BCTutorSite/Courses/ChartAccounts/lesson02-6.html)
-and the example above. In future, we might use this to recognize account
-types.
-
-An account directive can also have indented subdirectives following it,
-which are currently ignored. Here is the full syntax:
-
-``` {.journal}
-; account ACCTNAME [OPTIONALCODE]
-; [OPTIONALSUBDIRECTIVES]
-
-account assets:bank:checking 1110
- a comment
- some-tag:12345
-```
-
-#### Rewriting accounts
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-##### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-##### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-##### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-##### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-#### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-### Periodic transactions
-
-Periodic transaction rules (enabled by `--forecast` or `--budget`)
-describe recurring transactions. They look like a transaction where the
-first line is a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` is like a
-recurring sine wave):
-
-``` {.journal}
-~ weekly
- assets:bank:checking $400 ; paycheck
- income:acme inc
-```
-
-Periodic transactions have a dual purpose:
-
-- With `--forecast`, each periodic transaction rule generates future
- transactions, recurring at the specified interval, which can be seen
- in reports. Forecast transactions begin the day after the latest
- recorded journal transaction (or today, if there are no
- transactions) and end 6 months from today (or at the report end
- date, if specified).
-
-- With `--budget` (supported by the balance command), each periodic
- transaction rule declares recurring budget goals for the specified
- accounts, which can be seen in [budget
- reports](/manual.html#budget-report). Eg the example above declares
- the goal of receiving \$400 from `income:acme inc` (and also,
- depositing \$400 into `assets:bank:checking`) every week.
-
-(Actually, you can generate one-off transactions too, by writing a
-period expression with no report interval.)
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-### Automated postings
-
-Automated postings (enabled by `--auto`) are postings added
-automatically by rule to certain transactions. An automated posting rule
-looks like a transaction where the first line is an equal sign (`=`)
-followed by a [query](manual.html#queries) (mnemonic: `=` tests for
-matching transactions, and also looks like posting lines):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-The posting amounts can be of the form `*N`, which means "the amount of
-the matched transaction's first posting, multiplied by N". They can also
-be ordinary fixed amounts. Fixed amounts with no commodity symbol will
-be given the same commodity as the matched transaction's first posting.
-
-This example adds a corresponding ([unbalanced](#virtual-postings))
-budget posting to every transaction involving the `expenses:gifts`
-account:
-
-``` {.journal}
-= expenses:gifts
- (budget:gifts) *-1
-
-2017-12-14
- expenses:gifts $20
- assets
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/14
- expenses:gifts $20
- (budget:gifts) $-20
- assets
-```
-
-Like postings recorded by hand, automated postings participate in
-[transaction balancing, missing amount inference](#postings) and
-[balance assertions](#balance-assertions).
-
-## EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- ---------------------------------------------------------------------------------------------------------
- Editor
- ------------ --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio Code
- ---------------------------------------------------------------------------------------------------------
-
-
diff --git a/site/doc/1.9/manual.md b/site/doc/1.9/manual.md
deleted file mode 100644
index 9aacd9459..000000000
--- a/site/doc/1.9/manual.md
+++ /dev/null
@@ -1,4732 +0,0 @@
-\$toc\$
-
-## hledger
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-hledger - a command-line accounting tool
-
-### SYNOPSIS
-
-`hledger [-f FILE] COMMAND [OPTIONS] [ARGS]`\
-`hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]`\
-`hledger`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).\
-Tested on unix, mac, windows, hledger aims to be a reliable, practical
-tool for daily use.
-
-This is hledger's command-line interface (there are also curses and web
-interfaces). Its basic function is to read a plain text file describing
-financial transactions (in accounting terms, a general journal) and
-print useful reports on standard output, or export them as CSV. hledger
-can also read some other file formats such as CSV files, translating
-them to journal format. Additionally, hledger lists other hledger-\*
-executables found in the user's \$PATH and can invoke them as
-subcommands.
-
-hledger 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`). If using `$LEDGER_FILE`, note this
-must be a real environment variable, not a shell variable. You can
-specify standard input with `-f-`.
-
-Transactions are dated movements of money between two (or more) named
-accounts, and are recorded with journal entries like this:
-
-``` {.journal}
-2015/10/16 bought food
- expenses:food $10
- assets:cash
-```
-
-For more about this format, see hledger\_journal(5).
-
-Most users use a text editor to edit the journal, usually with an editor
-mode such as ledger-mode for added convenience. hledger's interactive
-add command is another way to record new transactions. hledger never
-changes existing transactions.
-
-To get started, you can either save some entries like the above in
-`~/.hledger.journal`, or run `hledger add` and follow the prompts. Then
-try some commands like `hledger print` or `hledger balance`. Run
-`hledger` with no arguments for a list of commands.
-
-### EXAMPLES
-
-Two simple transactions in hledger journal format:
-
-``` {.journal}
-2015/9/30 gift received
- assets:cash $20
- income:gifts
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash
-```
-
-Some basic reports:
-
-``` {.shell}
-$ hledger print
-2015/09/30 gift received
- assets:cash $20
- income:gifts $-20
-
-2015/10/16 farmers market
- expenses:food $10
- assets:cash $-10
-```
-
-``` {.shell}
-$ hledger accounts --tree
-assets
- cash
-expenses
- food
-income
- gifts
-```
-
-``` {.shell}
-$ hledger balance
- $10 assets:cash
- $10 expenses:food
- $-20 income:gifts
---------------------
- 0
-```
-
-``` {.shell}
-$ hledger register cash
-2015/09/30 gift received assets:cash $20 $20
-2015/10/16 farmers market assets:cash $-10 $10
-```
-
-More commands:
-
-``` {.shell}
-$ hledger # show available commands
-$ hledger add # add more transactions to the journal file
-$ hledger balance # all accounts with aggregated balances
-$ hledger balance --help # show detailed help for balance command
-$ hledger balance --depth 1 # only top-level accounts
-$ hledger register # show account postings, with running total
-$ hledger reg income # show postings to/from income accounts
-$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
-$ hledger print desc:shop # show transactions with shop in the description
-$ hledger activity -W # show transaction counts per week as a bar chart
-```
-
-### OPTIONS
-
-#### General options
-
-To see general usage help, including general options which are supported
-by most hledger commands, run `hledger -h`.
-
-General help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--debug[=N]`
-: show debug output (levels 1-9, default: 1)
-
-General input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-General reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-#### Command options
-
-To see options for a particular command, including command-specific
-options, run: `hledger COMMAND -h`.
-
-Command-specific options must be written after the command name, eg:
-`hledger print -x`.
-
-Additionally, if the command is an [addon](#commands), you may need to
-put its options after a double-hyphen, eg: `hledger ui -- --watch`. Or,
-you can run the addon executable directly: `hledger-ui --watch`.
-
-#### Command arguments
-
-Most hledger commands accept arguments after the command name, which are
-often a [query](#queries), filtering the data in some way.
-
-#### Argument files
-
-You can save a set of command line options/arguments in a file, one per
-line, and then reuse them by writing `@FILENAME` in a command line. To
-prevent this expansion of `@`-arguments, precede them with a `--`
-argument. For more, see [Save frequently used options](argfiles.html).
-
-#### Special characters
-
-Option and argument values which contain problematic characters should
-be escaped with double quotes, backslashes, or (best) single quotes.
-Problematic characters means spaces, and also characters which are
-significant to your command shell, such as less-than/greater-than. Eg:
-`hledger register -p 'last year' "accounts receivable (receivable|payable)" amt:\>100`.
-
-Characters which are significant both to the shell and in [regular
-expressions](#regular-expressions) sometimes need to be double-escaped.
-These include parentheses, the pipe symbol and the dollar sign. Eg, to
-match the dollar symbol, bash users should do:
-`hledger balance cur:'\$'` or `hledger balance cur:\\$`.
-
-When hledger is invoking an addon executable (like hledger-ui), options
-and arguments get de-escaped once more, so you might need
-*triple*-escaping. Eg: `hledger ui cur:'\\$'` or `hledger ui cur:\\\\$`
-in bash. (The number of backslashes in fish shell is left as an exercise
-for the reader.)
-
-Inside a file used for [argument expansion](#argument-expansion), one
-less level of escaping is enough. (And in this case, backslashes seem to
-work better than quotes. Eg: `cur:\$`).
-
-If in doubt, keep things simple:
-
-- run add-on executables directly
-- write options after the command
-- enclose problematic args in single quotes
-- if needed, also add a backslash to escape regexp metacharacters
-
-If you're really stumped, add `--debug=2` to troubleshoot.
-
-#### Input files
-
-hledger reads transactions from a data file (and the add command writes
-to it). By default this file is `$HOME/.hledger.journal` (or on Windows,
-something like `C:/Users/USER/.hledger.journal`). You can override this
-with the `$LEDGER_FILE` environment variable:
-
-``` {.bash}
-$ setenv LEDGER_FILE ~/finance/2016.journal
-$ hledger stats
-```
-
-or with the `-f/--file` option:
-
-``` {.bash}
-$ hledger -f /some/file stats
-```
-
-The file name `-` (hyphen) means standard input:
-
-``` {.bash}
-$ cat some.journal | hledger -f-
-```
-
-Usually the data file is in hledger's journal format, but it can also be
-one of several other formats, listed below. hledger detects the format
-automatically based on the file extension, or if that is not recognised,
-by trying each built-in "reader" in turn:
-
- ----------------------------------------------------------------------
- Reader: Reads: Used for file
- extensions:
- ------------- ------------------------------- ------------------------
- `journal` hledger's journal format, also `.journal` `.j`
- some Ledger journals `.hledger` `.ledger`
-
- `timeclock` timeclock files (precise time `.timeclock`
- logging)
-
- `timedot` timedot files (approximate time `.timedot`
- logging)
-
- `csv` comma-separated values (data `.csv`
- interchange)
- ----------------------------------------------------------------------
-
-If needed (eg to ensure correct error messages when a file has the
-"wrong" extension), you can force a specific reader/format by prepending
-it to the file path with a colon. Examples:
-
-``` {.bash}
-$ hledger -f csv:/some/csv-file.dat stats
-$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-
-```
-
-You can also specify multiple `-f` options, to read multiple files as
-one big journal. There are some limitations with this:
-
-- directives in one file will not affect the other files
-- [balance assertions](/journal.html#balance-assertions) will not see
- any account balances from previous files
-
-If you need those, either use the [include
-directive](/journal.html#including-other-files), or concatenate the
-files, eg: `cat a.journal b.journal | hledger -f- CMD`.
-
-#### Smart dates
-
-hledger's user interfaces accept a flexible "smart date" syntax (unlike
-dates in the journal file). Smart dates allow some english words, can be
-relative to today's date, and can have less-significant date parts
-omitted (defaulting to 1).
-
-Examples:
-
- -------------------------------------------------- -------------------------------------------------------
- `2009/1/1`, `2009/01/01`, `2009-1-1`, `2009.1.1` simple dates, several separators allowed
- `2009/1`, `2009` same as above - a missing day or month defaults to 1
- `1/1`, `january`, `jan`, `this year` relative dates, meaning january 1 of the current year
- `next year` january 1 of next year
- `this month` the 1st of the current month
- `this week` the most recent monday
- `last week` the monday of the week before this one
- `lastweek` spaces are optional
- `today`, `yesterday`, `tomorrow`
- -------------------------------------------------- -------------------------------------------------------
-
-#### Report start & end date
-
-Most hledger reports show the full span of time represented by the
-journal data, by default. So, the effective report start and end dates
-will be the earliest and latest transaction or posting dates found in
-the journal.
-
-Often you will want to see a shorter time span, such as the current
-month. You can specify a start and/or end date using
-[`-b/--begin`](#reporting-options), [`-e/--end`](#reporting-options),
-[`-p/--period`](#period-expressions) or a [`date:` query](#queries)
-(described below). All of these accept the [smart date](#smart-dates)
-syntax. One important thing to be aware of when specifying end dates: as
-in Ledger, end dates are exclusive, so you need to write the date
-*after* the last day you want to include.
-
-Examples:
-
- ------------------- ---------------------------------------------------------------------------------------------
- `-b 2016/3/17` begin on St. Patrick's day 2016
- `-e 12/1` end at the start of december 1st of the current year (11/30 will be the last date included)
- `-b thismonth` all transactions on or after the 1st of the current month
- `-p thismonth` all transactions in the current month
- `date:2016/3/17-` the above written as queries instead
- `date:-12/1`
- `date:thismonth-`
- `date:thismonth`
- ------------------- ---------------------------------------------------------------------------------------------
-
-#### Report intervals
-
-A report interval can be specified so that commands like
-[register](#register), [balance](#balance) and [activity](#activity)
-will divide their reports into multiple subperiods. The basic intervals
-can be selected with one of `-D/--daily`, `-W/--weekly`, `-M/--monthly`,
-`-Q/--quarterly`, or `-Y/--yearly`. More complex intervals may be
-specified with a [period expression](#period-expressions). Report
-intervals can not be specified with a [query](#queries), currently.
-
-#### Period expressions
-
-The `-p/--period` option accepts period expressions, a shorthand way of
-expressing a start date, end date, and/or report interval all at once.
-
-Here's a basic period expression specifying the first quarter of 2009.
-Note, hledger always treats start dates as inclusive and end dates as
-exclusive:
-
-`-p "from 2009/1/1 to 2009/4/1"`
-
-Keywords like "from" and "to" are optional, and so are the spaces, as
-long as you don't run two dates together. "to" can also be written as
-"-". These are equivalent to the above:
-
- --------------------------
- `-p "2009/1/1 2009/4/1"`
- `-p2009/1/1to2009/4/1`
- `-p2009/1/1-2009/4/1`
- --------------------------
-
-Dates are [smart dates](#smart-dates), so if the current year is 2009,
-the above can also be written as:
-
- -------------------------
- `-p "1/1 4/1"`
- `-p "january-apr"`
- `-p "this year to 4/1"`
- -------------------------
-
-If you specify only one date, the missing start or end date will be the
-earliest or latest transaction in your journal:
-
- ---------------------- -----------------------------------
- `-p "from 2009/1/1"` everything after january 1, 2009
- `-p "from 2009/1"` the same
- `-p "from 2009"` the same
- `-p "to 2009"` everything before january 1, 2009
- ---------------------- -----------------------------------
-
-A single date with no "from" or "to" defines both the start and end date
-like so:
-
- ----------------- --------------------------------------------------------
- `-p "2009"` the year 2009; equivalent to "2009/1/1 to 2010/1/1"
- `-p "2009/1"` the month of jan; equivalent to "2009/1/1 to 2009/2/1"
- `-p "2009/1/1"` just that day; equivalent to "2009/1/1 to 2009/1/2"
- ----------------- --------------------------------------------------------
-
-The argument of `-p` can also begin with, or be, a [report
-interval](#report-intervals) expression. The basic report intervals are
-`daily`, `weekly`, `monthly`, `quarterly`, or `yearly`, which have the
-same effect as the `-D`,`-W`,`-M`,`-Q`, or `-Y` flags. Between report
-interval and start/end dates (if any), the word `in` is optional.
-Examples:
-
- -----------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"`
- `-p "monthly in 2008"`
- `-p "quarterly"`
- -----------------------------------------
-
-Note that `weekly`, `monthly`, `quarterly` and `yearly` intervals will
-always start on the first day on week, month, quarter or year
-accordingly, and will end on the last day of same period, even if
-associated period expression specifies different explicit start and end
-date.
-
-For example:
-
- -------------------------------------------------------------------------------------------------------------------------------------
- `-p "weekly from 2009/1/1 to 2009/4/1"` -- starts on 2008/12/29, closest preceeding Monday
- `-p "monthly in 2008/11/25"` -- starts on 2018/11/01
- `-p "quarterly from 2009-05-05 to 2009-06-01"` - starts on 2009/04/01, ends on 2009/06/30, which are first and last days of Q2 2009
- `-p "yearly from 2009-12-29"` - starts on 2009/01/01, first day of 2009
- -------------------------------------------------------------------------------------------------------------------------------------
-
-The following more complex report intervals are also supported:
-`biweekly`, `bimonthly`, `every day|week|month|quarter|year`,
-`every N days|weeks|months|quarters|years`.
-
-All of these will start on the first day of the requested period and end
-on the last one, as described above.
-
-Examples:
-
- --------------------------------------------------------------------------------------------------
- `-p "bimonthly from 2008"` -- periods will have boundaries on 2008/01/01, 2008/03/01, ...
- `-p "every 2 weeks"` -- starts on closest preceeding Monday
- `-p "every 5 month from 2009/03"` -- periods will have boundaries on 2009/03/01, 2009/08/01, ...
- --------------------------------------------------------------------------------------------------
-
-If you want intervals that start on arbitrary day of your choosing and
-span a week, month or year, you need to use any of the following:
-
-`every Nth day of week`, `every `, `every Nth day [of month]`,
-`every Nth weekday [of month]`, `every MM/DD [of year]`,
-`every Nth MMM [of year]`, `every MMM Nth [of year]`.
-
-Examples:
-
- -------------------------------------------------------------------------------------
- `-p "every 2nd day of week"` -- periods will go from Tue to Tue
- `-p "every Tue"` -- same
- `-p "every 15th day"` -- period boundaries will be on 15th of each month
- `-p "every 2nd Monday"` -- period boundaries will be on second Monday of each month
- `-p "every 11/05"` -- yearly periods with boundaries on 5th of Nov
- `-p "every 5th Nov"` -- same
- `-p "every Nov 5th"` -- same
- -------------------------------------------------------------------------------------
-
-Show historical balances at end of 15th each month (N is exclusive end
-date):
-
-`hledger balance -H -p "every 16th day"`
-
-Group postings from start of wednesday to end of next tuesday (N is
-start date and exclusive end date):
-
-`hledger register checking -p "every 3rd day of week"`
-
-#### Depth limiting
-
-With the `--depth N` option (short form: `-N`), commands like
-[account](#account), [balance](#balance) and [register](#register) will
-show only the uppermost accounts in the account tree, down to level N.
-Use this when you want a summary with less detail. This flag has the
-same effect as a `depth:` query argument (so `-2`, `--depth=2` or
-`depth:2` are basically equivalent).
-
-#### Pivoting
-
-Normally hledger sums amounts, and organizes them in a hierarchy, based
-on account name. The `--pivot FIELD` option causes it to sum and
-organize hierarchy based on the value of some other field instead. FIELD
-can be: `code`, `description`, `payee`, `note`, or the full name (case
-insensitive) of any [tag](/journal.html#tags). As with account names,
-values containing `colon:separated:parts` will be displayed
-hierarchically in reports.
-
-`--pivot` is a general option affecting all reports; you can think of
-hledger transforming the journal before any other processing, replacing
-every posting's account name with the value of the specified field on
-that posting, inheriting it from the transaction or using a blank value
-if it's not present.
-
-An example:
-
-``` {.journal}
-2016/02/16 Member Fee Payment
- assets:bank account 2 EUR
- income:member fees -2 EUR ; member: John Doe
-```
-
-Normal balance report showing account names:
-
-``` {.shell}
-$ hledger balance
- 2 EUR assets:bank account
- -2 EUR income:member fees
---------------------
- 0
-```
-
-Pivoted balance report, using member: tag values instead:
-
-``` {.shell}
-$ hledger balance --pivot member
- 2 EUR
- -2 EUR John Doe
---------------------
- 0
-```
-
-One way to show only amounts with a member: value (using a
-[query](#queries), described below):
-
-``` {.shell}
-$ hledger balance --pivot member tag:member=.
- -2 EUR John Doe
---------------------
- -2 EUR
-```
-
-Another way (the acct: query matches against the pivoted "account
-name"):
-
- $ hledger balance --pivot member acct:.
- -2 EUR John Doe
- --------------------
- -2 EUR
-
-#### Cost
-
-The `-B/--cost` flag converts amounts to their cost at transaction time,
-if they have a [transaction price](/journal.html#transaction-prices)
-specified.
-
-#### Market value
-
-The `-V/--value` flag converts reported amounts to their current market
-value. Specifically, when there is a [market
-price](journal.html#market-prices) (P directive) for the amount's
-commodity, dated on or before today's date (or the [report end
-date](#report-start-end-date) if specified), the amount will be
-converted to the price's commodity.
-
-When there are multiple applicable P directives, -V chooses the most
-recent one, or in case of equal dates, the last-parsed one.
-
-For example:
-
-``` {.journal}
-# one euro is worth this many dollars from nov 1
-P 2016/11/01 € $1.10
-
-# purchase some euros on nov 3
-2016/11/3
- assets:euros €100
- assets:checking
-
-# the euro is worth fewer dollars by dec 21
-P 2016/12/21 € $1.03
-```
-
-How many euros do I have ?
-
- $ hledger -f t.j bal euros
- €100 assets:euros
-
-What are they worth on nov 3 ? (no report end date specified, defaults
-to the last date in the journal)
-
- $ hledger -f t.j bal euros -V
- $110.00 assets:euros
-
-What are they worth on dec 21 ?
-
- $ hledger -f t.j bal euros -V -e 2016/12/21
- $103.00 assets:euros
-
-Currently, hledger's -V only uses market prices recorded with P
-directives, not [transaction prices](journal.html#transaction-prices)
-(unlike Ledger).
-
-#### Combining -B and -V
-
-Using -B/--cost and -V/--value together is currently allowed, but the
-results are probably not meaningful. Let us know if you find a use for
-this.
-
-#### Output destination
-
-Some commands (print, register, stats, the balance commands) can write
-their output to a destination other than the console. This is controlled
-by the `-o/--output-file` option.
-
-``` {.shell}
-$ hledger balance -o - # write to stdout (the default)
-$ hledger balance -o FILE # write to FILE
-```
-
-#### Output format
-
-Some commands can write their output in other formats. Eg print and
-register can output CSV, and the balance commands can output CSV or
-HTML. This is controlled by the `-O/--output-format` option, or by
-specifying a `.csv` or `.html` file extension with `-o/--output-file`.
-
-``` {.shell}
-$ hledger balance -O csv # write CSV to stdout
-$ hledger balance -o FILE.csv # write CSV to FILE.csv
-```
-
-#### Regular expressions
-
-hledger uses [regular expressions](http://www.regular-expressions.info)
-in a number of places:
-
-- [query terms](#queries), on the command line and in the hledger-web
- search form: `REGEX`, `desc:REGEX`, `cur:REGEX`, `tag:...=REGEX`
-- [CSV rules](#csv-rules) conditional blocks: `if REGEX ...`
-- [account alias](#rewriting-accounts) directives and options:
- `alias /REGEX/ = REPLACEMENT`, `--alias /REGEX/=REPLACEMENT`
-
-hledger's regular expressions come from the
-[regex-tdfa](http://hackage.haskell.org/package/regex-tdfa/docs/Text-Regex-TDFA.html)
-library. In general they:
-
-- are case insensitive
-- are infix matching (do not need to match the entire thing being
- matched)
-- are [POSIX extended regular
- expressions](http://www.regular-expressions.info/posix.html#ere)
-- also support [GNU word
- boundaries](http://www.regular-expressions.info/wordboundaries.html)
- (\\\<, \\\>, \\b, \\B)
-- and parenthesised [capturing
- groups](http://www.regular-expressions.info/refcapture.html) and
- numeric backreferences in replacement strings
-- do not support [mode
- modifiers](http://www.regular-expressions.info/modifiers.html) like
- (?s)
-
-Some things to note:
-
-- In the `alias` directive and `--alias` option, regular expressions
- must be enclosed in forward slashes (`/REGEX/`). Elsewhere in
- hledger, these are not required.
-
-- In queries, to match a regular expression metacharacter like `$` as
- a literal character, prepend a backslash. Eg to search for amounts
- with the dollar sign in hledger-web, write `cur:\$`.
-
-- On the command line, some metacharacters like `$` have a special
- meaning to the shell and so must be escaped at least once more. See
- [Special characters](#special-characters).
-
-### QUERIES
-
-One of hledger's strengths is being able to quickly report on precise
-subsets of your data. Most commands accept an optional query expression,
-written as arguments after the command name, to filter the data by date,
-account name or other criteria. The syntax is similar to a web search:
-one or more space-separated search terms, quotes to enclose whitespace,
-prefixes to match specific fields, a not: prefix to negate the match.
-
-We do not yet support arbitrary boolean combinations of search terms;
-instead most commands show transactions/postings/accounts which match
-(or negatively match):
-
-- any of the description terms AND
-- any of the account terms AND
-- any of the status terms AND
-- all the other terms.
-
-The [print](/manual.html#print) command instead shows transactions
-which:
-
-- match any of the description terms AND
-- have any postings matching any of the positive account terms AND
-- have no postings matching any of the negative account terms AND
-- match all the other terms.
-
-The following kinds of search terms can be used. Remember these can also
-be prefixed with **`not:`**, eg to exclude a particular subaccount.
-
-**`REGEX`, `acct:REGEX`**
-: match account names by this regular expression. (With no prefix,
- `acct:` is assumed.)
-: same as above
-
-**`amt:N, amt:N, amt:>=N`**
-: match postings with a single-commodity amount that is equal to, less
- than, or greater than N. (Multi-commodity amounts are not tested,
- and will always match.) The comparison has two modes: if N is
- preceded by a + or - sign (or is 0), the two signed numbers are
- compared. Otherwise, the absolute magnitudes are compared, ignoring
- sign.
-
-**`code:REGEX`**
-: match by transaction code (eg check number)
-
-**`cur:REGEX`**
-: match postings or transactions including any amounts whose
- currency/commodity symbol is fully matched by REGEX. (For a partial
- match, use `.*REGEX.*`). Note, to match characters which are
- regex-significant, like the dollar sign (`$`), you need to prepend
- `\`. And when using the command line you need to add one more level
- of quoting to hide it from the shell, so eg do:
- `hledger print cur:'\$'` or `hledger print cur:\\$`.
-
-**`desc:REGEX`**
-: match transaction descriptions.
-
-**`date:PERIODEXPR`**
-: match dates within the specified period. PERIODEXPR is a [period
- expression](#period-expressions) (with no report interval).
- Examples: `date:2016`, `date:thismonth`, `date:2000/2/1-2/15`,
- `date:lastweek-`. If the `--date2` command line flag is present,
- this matches [secondary dates](manual.html#secondary-dates) instead.
-
-**`date2:PERIODEXPR`**
-: match secondary dates within the specified period.
-
-**`depth:N`**
-: match (or display, depending on command) accounts at or above this
- depth
-
-**`note:REGEX`**
-: match transaction [notes](/manual.html#payee-and-note) (part of
- description right of `|`, or whole description when there's no `|`)
-
-**`payee:REGEX`**
-: match transaction [payee/payer names](/manual.html#payee-and-note)
- (part of description left of `|`, or whole description when there's
- no `|`)
-
-**`real:, real:0`**
-: match real or virtual postings respectively
-
-**`status:, status:!, status:*`**
-: match unmarked, pending, or cleared transactions respectively
-
-**`tag:REGEX[=REGEX]`**
-: match by tag name, and optionally also by tag value. Note a tag:
- query is considered to match a transaction if it matches any of the
- postings. Also remember that postings inherit the tags of their
- parent transaction.
-
-The following special search term is used automatically in hledger-web,
-only:
-
-**`inacct:ACCTNAME`**
-: tells hledger-web to show the transaction register for this account.
- Can be filtered further with `acct` etc.
-
-Some of these can also be expressed as command-line options (eg
-`depth:2` is equivalent to `--depth 2`). Generally you can mix options
-and query arguments, and the resulting query will be their intersection
-(perhaps excluding the `-p/--period` option).
-
-### COMMANDS
-
-hledger provides a number of subcommands; `hledger` with no arguments
-shows a list.
-
-If you install additional `hledger-*` packages, or if you put programs
-or scripts named `hledger-NAME` in your PATH, these will also be listed
-as subcommands.
-
-Run a subcommand by writing its name as first argument (eg
-`hledger incomestatement`). You can also write one of the standard short
-aliases displayed in parentheses in the command list (`hledger b`), or
-any any unambiguous prefix of a command name (`hledger inc`).
-
-Here are all the builtin commands in alphabetical order. See also
-`hledger` for a more organised command list, and `hledger CMD -h` for
-detailed command help.
-
-
-#### accounts
-
-Show account names. Alias: a.
-
-`--declared`
-: show account names declared with account directives
-
-`--used`
-: show account names posted to by transactions
-
-`--tree`
-: show short account names and their parents, as a tree
-
-`--flat`
-: show full account names, as a list (default)
-
-`--drop=N`
-: in flat mode: omit N leading account name parts
-
-This command lists account names, either declared with account
-directives (--declared), posted to (--used), or both (default). With
-query arguments, only matched account names and account names referenced
-by matched postings are shown. It shows a flat list by default. With
-`--tree`, it uses indentation to show the account hierarchy. In flat
-mode you can add `--drop N` to omit the first few account name
-components. Account names can be depth-clipped with `--depth N` or
-depth:N.
-
-Examples:
-
-
-
-#### activity
-
-Show an ascii barchart of posting counts per interval.
-
-The activity command displays an ascii histogram showing transaction
-counts by day, week, month or other reporting interval (by day is the
-default). With query arguments, it counts only matched transactions.
-
-``` {.shell}
-$ hledger activity --quarterly
-2008-01-01 **
-2008-04-01 *******
-2008-07-01
-2008-10-01 **
-```
-
-#### add
-
-Prompt for transactions and add them to the journal.
-
-`--no-new-accounts`
-: don't allow creating new accounts; helps prevent typos when entering
- account names
-
-Many hledger users edit their journals directly with a text editor, or
-generate them from CSV. For more interactive data entry, there is the
-`add` command, which prompts interactively on the console for new
-transactions, and appends them to the journal file (if there are
-multiple `-f FILE` options, the first file is used.) Existing
-transactions are not changed. This is the only hledger command that
-writes to the journal file.
-
-To use it, just run `hledger add` and follow the prompts. You can add as
-many transactions as you like; when you are finished, enter `.` or press
-control-d or control-c to exit.
-
-Features:
-
-- add tries to provide useful defaults, using the most similar recent
- transaction (by description) as a template.
-- You can also set the initial defaults with command line arguments.
-- [Readline-style edit
- keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
- can be used during data entry.
-- The tab key will auto-complete whenever possible - accounts,
- descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
- area is empty, it will insert the default value.
-- If the journal defines a [default commodity](#default-commodity), it
- will be added to any bare numbers entered.
-- A parenthesised transaction [code](#entries) may be entered
- following a date.
-- [Comments](#comments) and tags may be entered following a
- description or amount.
-- If you make a mistake, enter `<` at any prompt to restart the
- transaction.
-- Input prompts are displayed in a different colour when the terminal
- supports it.
-
-Example (see the
-[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
-a detailed explanation):
-
-``` {.shell}
-$ hledger add
-Adding transactions to journal file /src/hledger/examples/sample.journal
-Any command line arguments will be used as defaults.
-Use tab key to complete, readline keys to edit, enter to accept defaults.
-An optional (CODE) may follow transaction dates.
-An optional ; COMMENT may follow descriptions or amounts.
-If you make a mistake, enter < at any prompt to restart the transaction.
-To end a transaction, enter . when prompted.
-To quit, enter . at a date prompt or press control-d or control-c.
-Date [2015/05/22]:
-Description: supermarket
-Account 1: expenses:food
-Amount 1: $10
-Account 2: assets:checking
-Amount 2 [$-10.0]:
-Account 3 (or . or enter to finish this transaction): .
-2015/05/22 supermarket
- expenses:food $10
- assets:checking $-10.0
-
-Save this transaction to the journal ? [y]:
-Saved.
-Starting the next transaction (. or ctrl-D/ctrl-C to quit)
-Date [2015/05/22]: $
-```
-
-#### balance
-
-Show accounts and their balances. Aliases: b, bal.
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports)
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv, html.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-`--pretty-tables`
-: use unicode to display prettier tables.
-
-`--sort-amount`
-: sort by amount instead of account code/name (in flat mode). With
- multiple columns, sorts by the row total, or by row average if that
- is displayed.
-
-`--invert`
-: display all amounts with reversed sign
-
-`--budget`
-: show performance compared to budget goals defined by [periodic
- transactions](journal.html#periodic-transactions)
-
-`--show-unbudgeted`
-: with --budget, show unbudgeted accounts also
-
-The balance command is hledger's most versatile command. Note, despite
-the name, it is not always used for showing real-world account balances;
-the more accounting-aware [balancesheet](#balancesheet) and
-[incomestatement](#incomestatement) may be more convenient for that.
-
-By default, it displays all accounts, and each account's change in
-balance during the entire period of the journal. Balance changes are
-calculated by adding up the postings in each account. You can limit the
-postings matched, by a [query](#queries), to see fewer accounts, changes
-over a different time period, changes from only cleared transactions,
-etc.
-
-If you include an account's complete history of postings in the report,
-the balance change is equivalent to the account's current ending
-balance. For a real-world account, typically you won't have all
-transactions in the journal; instead you'll have all transactions after
-a certain date, and an "opening balances" transaction setting the
-correct starting balance on that date. Then the balance command will
-show real-world account balances. In some cases the -H/--historical flag
-is used to ensure this (more below).
-
-The balance command can produce several styles of report:
-
-##### Classic balance report
-
-This is the original balance report, as found in Ledger. It usually
-looks like this:
-
-``` {.shell}
-$ hledger balance
- $-1 assets
- $1 bank:saving
- $-2 cash
- $2 expenses
- $1 food
- $1 supplies
- $-2 income
- $-1 gifts
- $-1 salary
- $1 liabilities:debts
---------------------
- 0
-```
-
-By default, accounts are displayed hierarchically, with subaccounts
-indented below their parent. At each level of the tree, accounts are
-sorted by [account code](/manual.html#declaring-accounts) if any, then
-by account name. Or with `-S/--sort-amount`, by their balance amount.
-
-"Boring" accounts, which contain a single interesting subaccount and no
-balance of their own, are elided into the following line for more
-compact output. (Eg above, the "liabilities" account.) Use `--no-elide`
-to prevent this.
-
-Account balances are "inclusive" - they include the balances of any
-subaccounts.
-
-Accounts which have zero balance (and no non-zero subaccounts) are
-omitted. Use `-E/--empty` to show them.
-
-A final total is displayed by default; use `-N/--no-total` to suppress
-it, eg:
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses --no-total
- $2 expenses
- $1 food
- $1 supplies
-```
-
-##### Customising the classic balance report
-
-You can customise the layout of classic balance reports with
-`--format FMT`:
-
-``` {.shell}
-$ hledger balance --format "%20(account) %12(total)"
- assets $-1
- bank:saving $1
- cash $-2
- expenses $2
- food $1
- supplies $1
- income $-2
- gifts $-1
- salary $-1
- liabilities:debts $1
----------------------------------
- 0
-```
-
-The FMT format string (plus a newline) specifies the formatting applied
-to each account/balance pair. It may contain any suitable text, with
-data fields interpolated like so:
-
-`%[MIN][.MAX](FIELDNAME)`
-
-- MIN pads with spaces to at least this width (optional)
-- MAX truncates at this width (optional)
-- FIELDNAME must be enclosed in parentheses, and can be one of:
-
- - `depth_spacer` - a number of spaces equal to the account's
- depth, or if MIN is specified, MIN \* depth spaces.
- - `account` - the account's name
- - `total` - the account's balance/posted total, right justified
-
-Also, FMT can begin with an optional prefix to control how
-multi-commodity amounts are rendered:
-
-- `%_` - render on multiple lines, bottom-aligned (the default)
-- `%^` - render on multiple lines, top-aligned
-- `%,` - render on one line, comma-separated
-
-There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no
-effect, instead `%(account)` has indentation built in. Experimentation may be needed to get pleasing results.
-
-Some example formats:
-
-- `%(total)` - the account's total
-- `%-20.20(account)` - the account's name, left justified, padded to
- 20 characters and clipped at 20 characters
-- `%,%-50(account) %25(total)` - account name padded to 50
- characters, total padded to 20 characters, with multiple commodities
- rendered on one line
-- `%20(total) %2(depth_spacer)%-(account)` - the default format for
- the single-column balance report
-
-##### Colour support
-
-The balance command shows negative amounts in red, if:
-
-- the `TERM` environment variable is not set to `dumb`
-- the output is not being redirected or piped anywhere
-
-##### Flat mode
-
-To see a flat list instead of the default hierarchical display, use
-`--flat`. In this mode, accounts (unless depth-clipped) show their full
-names and "exclusive" balance, excluding any subaccount balances. In
-this mode, you can also use `--drop N` to omit the first few account
-name components.
-
-``` {.shell}
-$ hledger balance -p 2008/6 expenses -N --flat --drop 1
- $1 food
- $1 supplies
-```
-
-##### Depth limited balance reports
-
-With `--depth N` or `depth:N` or just `-N`, balance reports show
-accounts only to the specified numeric depth. This is very useful to
-summarise a complex set of accounts and get an overview.
-
-``` {.shell}
-$ hledger balance -N -1
- $-1 assets
- $2 expenses
- $-2 income
- $1 liabilities
-```
-
-Flat-mode balance reports, which normally show exclusive balances, show
-inclusive balances at the depth limit.
-
-
-##### Multicolumn balance report
-
-Multicolumn or tabular balance reports are a very useful hledger
-feature, and usually the preferred style. They share many of the above
-features, but they show the report as a table, with columns representing
-time periods. This mode is activated by providing a [reporting
-interval](#reporting-interval).
-
-There are three types of multicolumn balance report, showing different
-information:
-
-1. By default: each column shows the sum of postings in that period, ie
- the account's change of balance in that period. This is useful eg
- for a monthly income statement:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E
- Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4
- ===================++=================================
- expenses:food || 0 $1 0 0
- expenses:supplies || 0 $1 0 0
- income:gifts || 0 $-1 0 0
- income:salary || $-1 0 0 0
- -------------------++---------------------------------
- || $-1 $1 0 0
- ```
-
-2. With `--cumulative`: each column shows the ending balance for that
- period, accumulating the changes across periods, starting from 0 at
- the report start date:
-
- ``` {.shell}
- $ hledger balance --quarterly income expenses -E --cumulative
- Ending balances (cumulative) in 2008:
-
- || 2008/03/31 2008/06/30 2008/09/30 2008/12/31
- ===================++=================================================
- expenses:food || 0 $1 $1 $1
- expenses:supplies || 0 $1 $1 $1
- income:gifts || 0 $-1 $-1 $-1
- income:salary || $-1 $-1 $-1 $-1
- -------------------++-------------------------------------------------
- || $-1 0 0 0
- ```
-
-3. With `--historical/-H`: each column shows the actual historical
- ending balance for that period, accumulating the changes across
- periods, starting from the actual balance at the report start date.
- This is useful eg for a multi-period balance sheet, and when you are
- showing only the data after a certain start date:
-
- ``` {.shell}
- $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
- Ending balances (historical) in 2008/04/01-2008/12/31:
-
- || 2008/06/30 2008/09/30 2008/12/31
- ======================++=====================================
- assets:bank:checking || $1 $1 0
- assets:bank:saving || $1 $1 $1
- assets:cash || $-2 $-2 $-2
- liabilities:debts || 0 0 $1
- ----------------------++-------------------------------------
- || 0 0 0
- ```
-
-Multicolumn balance reports display accounts in flat mode by default; to
-see the hierarchy, use `--tree`.
-
-With a reporting interval (like `--quarterly` above), the report
-start/end dates will be adjusted if necessary so that they encompass the
-displayed report periods. This is so that the first and last periods
-will be "full" and comparable to the others.
-
-The `-E/--empty` flag does two things in multicolumn balance reports:
-first, the report will show all columns within the specified report
-period (without -E, leading and trailing columns with all zeroes are not
-shown). Second, all accounts which existed at the report start date will
-be considered, not just the ones with activity during the report period
-(use -E to include low-activity accounts which would otherwise would be
-omitted).
-
-The `-T/--row-total` flag adds an additional column showing the total
-for each row.
-
-The `-A/--average` flag adds a column showing the average value in each
-row.
-
-Here's an example of all three:
-
-``` {.shell}
-$ hledger balance -Q income expenses --tree -ETA
-Balance changes in 2008:
-
- || 2008q1 2008q2 2008q3 2008q4 Total Average
-============++===================================================
- expenses || 0 $2 0 0 $2 $1
- food || 0 $1 0 0 $1 0
- supplies || 0 $1 0 0 $1 0
- income || $-1 $-1 0 0 $-2 $-1
- gifts || 0 $-1 0 0 $-1 0
- salary || $-1 0 0 0 $-1 0
-------------++---------------------------------------------------
- || $-1 $1 0 0 0 0
-
-# Average is rounded to the dollar here since all journal amounts are
-```
-
-Limitations:
-
-In multicolumn reports the [`-V/--value` flag](#market-value) uses the
-market price on the report end date, for all columns (not the price on
-each column's end date).
-
-Eliding of boring parent accounts in tree mode, as in the classic
-balance report, is not yet supported in multicolumn reports.
-
-##### Budget report
-
-With `--budget`, extra columns are displayed showing budget goals for
-each account and period, if any. Budget goals are defined by [periodic
-transactions](journal.html#periodic-transactions). This is very useful
-for comparing planned and actual income, expenses, time usage, etc.
---budget is most often combined with a [report
-interval](manual.html#report-intervals).
-
-For example, you can take average monthly expenses in the common expense
-categories to construct a minimal monthly budget:
-
-``` {.journal}
-;; Budget
-~ monthly
- income $2000
- expenses:food $400
- expenses:bus $50
- expenses:movies $30
- assets:bank:checking
-
-;; Two months worth of expenses
-2017-11-01
- income $1950
- expenses:food $396
- expenses:bus $49
- expenses:movies $30
- expenses:supplies $20
- assets:bank:checking
-
-2017-12-01
- income $2100
- expenses:food $412
- expenses:bus $53
- expenses:gifts $100
- assets:bank:checking
-```
-
-You can now see a monthly budget report:
-
-``` {.shell}
-$ hledger balance -M --budget
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11 2017/12
-======================++=================================================
- || $20 $100
- assets:bank:checking || $-2445 [99% of $-2480] $-2665 [107% of $-2480]
- expenses:bus || $49 [98% of $50] $53 [106% of $50]
- expenses:food || $396 [99% of $400] $412 [103% of $400]
- expenses:movies || $30 [100% of $30] 0 [0% of $30]
- income || $1950 [98% of $2000] $2100 [105% of $2000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-By default, only accounts with budget goals during the report period are
-shown. `--show-unbudgeted` shows unbudgeted accounts as well. Top-level
-accounts with no budget goals anywhere below them are grouped under
-``.
-
-You can roll over unspent budgets to next period with `--cumulative`:
-
-``` {.shell}
-$ hledger balance -M --budget --cumulative
-Budget performance in 2017/11/01-2017/12/31:
-
- || 2017/11/30 2017/12/31
-======================++=================================================
- || $20 $120
- assets:bank:checking || $-2445 [99% of $-2480] $-5110 [103% of $-4960]
- expenses:bus || $49 [98% of $50] $102 [102% of $100]
- expenses:food || $396 [99% of $400] $808 [101% of $800]
- expenses:movies || $30 [100% of $30] $30 [50% of $60]
- income || $1950 [98% of $2000] $4050 [101% of $4000]
-----------------------++-------------------------------------------------
- || 0 0
-```
-
-Note, the `-S/--sort-amount` flag is not yet fully supported with
-`--budget`.
-
-For more examples, see [Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
-
-##### Output format
-
-The balance command supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheet
-
-This command displays a simple balance sheet, showing historical ending
-balances of asset and liability accounts (ignoring any report begin
-date). It assumes that these accounts are under a top-level `asset` or
-`liability` account (case insensitive, plural forms also allowed). Note
-this report shows all account balances with normal positive sign (like
-conventional financial statements, unlike balance/print/register)
-(experimental). (bs)
-
-`--change`
-: show balance change in each period, instead of historical ending
- balances
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of historical ending balances
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date) (default)
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger balancesheet
-Balance Sheet
-
-Assets:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. As with [multicolumn balance
-reports](#multicolumn-balance-reports), you can alter the report mode
-with `--change`/`--cumulative`/`--historical`. Normally balancesheet
-shows historical ending balances, which is what you need for a balance
-sheet; note this means it ignores report begin dates.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### balancesheetequity
-
-Just like [balancesheet](#balancesheet), but also reports Equity (which
-it assumes is under a top-level `equity` account).
-
-Example:
-
-``` {.shell}
-$ hledger balancesheetequity
-Balance Sheet With Equity
-
-Assets:
- $-2 assets
- $1 bank:saving
- $-3 cash
---------------------
- $-2
-
-Liabilities:
- $1 liabilities:debts
---------------------
- $1
-
-Equity:
- $1 equity:owner
---------------------
- $1
-
-Total:
---------------------
- 0
-```
-
-#### cashflow
-
-This command displays a simple cashflow statement, showing changes in
-"cash" accounts. It assumes that these accounts are under a top-level
-`asset` account (case insensitive, plural forms also allowed) and do not
-contain `receivable` or `A/R` in their name. Note this report shows all
-account balances with normal positive sign (like conventional financial
-statements, unlike balance/print/register) (experimental). (cf)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row (in simple reports)
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-Example:
-
-``` {.shell}
-$ hledger cashflow
-Cashflow Statement
-
-Cash flows:
- $-1 assets
- $1 bank:saving
- $-2 cash
---------------------
- $-1
-
-Total:
---------------------
- $-1
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally cashflow shows changes in
-assets per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### check-dates
-
-Check that transactions are sorted by increasing date. With a query,
-only matched transactions' dates are checked.
-
-#### check-dupes
-
-Report account names having the same leaf but different prefixes. An
-example: http://stefanorodighiero.net/software/hledger-dupes.html
-
-#### close
-
-Print closing/opening transactions that bring some or all account
-balances to zero and back. Can be useful for bringing asset/liability
-balances across file boundaries, or for closing out income/expenses for
-a period. This was formerly called "equity", as in Ledger, and that
-alias is also accepted. See close --help for more.
-
-#### help
-
-Show any of the hledger manuals.
-
-The `help` command displays any of the main [hledger
-manuals](/docs.html), in one of several ways. Run it with no argument to
-list the manuals, or provide a full or partial manual name to select
-one.
-
-hledger manuals are available in several formats. hledger help will use
-the first of these display methods that it finds: info, man, \$PAGER,
-less, stdout (or when non-interactive, just stdout). You can force a
-particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
-
-``` {.shell}
-$ hledger help
-Please choose a manual by typing "hledger help MANUAL" (a substring is ok).
-Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot
-```
-
-``` {.shell}
-$ hledger help h --man
-
-hledger(1) hledger User Manuals hledger(1)
-
-NAME
- hledger - a command-line accounting tool
-
-SYNOPSIS
- hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
- hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
- hledger
-
-DESCRIPTION
- hledger is a cross-platform program for tracking money, time, or any
-...
-```
-
-#### import
-
-Read new transactions added to each FILE since last run, and add them to
-the main journal file.
-
-`--dry-run`
-: just show the transactions to be imported
-
-The input files are specified as arguments - no need to write -f before
-each one. So eg to add new transactions from all CSV files to the main
-journal, it's just: `hledger import *.csv`
-
-New transactions are detected in the same way as print --new: by
-assuming transactions are always added to the input files in increasing
-date order, and by saving `.latest.FILE` state files.
-
-The --dry-run output is in journal format, so you can filter it, eg to
-see only uncategorised transactions:
-
-``` {.shell}
-$ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
-```
-
-#### incomestatement
-
-This command displays a simple income statement, showing revenues and
-expenses during a period. It assumes that these accounts are under a
-top-level `revenue` or `income` or `expense` account (case insensitive,
-plural forms also allowed). Note this report shows all account balances
-with normal positive sign (like conventional financial statements,
-unlike balance/print/register) (experimental). (is)
-
-`--change`
-: show balance change in each period (default)
-
-`--cumulative`
-: show balance change accumulated across periods (in multicolumn
- reports), instead of changes during periods
-
-`-H --historical`
-: show historical ending balance in each period (includes postings
- before report start date), instead of changes during each period
-
-`--tree`
-: show accounts as a tree; amounts include subaccounts (default in
- simple reports)
-
-`--flat`
-: show accounts as a list; amounts exclude subaccounts except when
- account is depth-clipped (default in multicolumn reports)
-
-`-A --average`
-: show a row average column (in multicolumn mode)
-
-`-T --row-total`
-: show a row total column (in multicolumn mode)
-
-`-N --no-total`
-: don't show the final total row
-
-`--drop=N`
-: omit N leading account name parts (in flat mode)
-
-`--no-elide`
-: don't squash boring parent accounts (in tree mode)
-
-`--format=LINEFORMAT`
-: in single-column balance reports: use this custom line format
-
-`--sort-amount`
-: sort by amount instead of account code/name
-
-This command displays a simple [income
-statement](http://en.wikipedia.org/wiki/Income_statement). It currently
-assumes that you have top-level accounts named `income` (or `revenue`)
-and `expense` (plural forms also allowed.)
-
-``` {.shell}
-$ hledger incomestatement
-Income Statement
-
-Revenues:
- $-2 income
- $-1 gifts
- $-1 salary
---------------------
- $-2
-
-Expenses:
- $2 expenses
- $1 food
- $1 supplies
---------------------
- $2
-
-Total:
---------------------
- 0
-```
-
-With a [reporting interval](#reporting-interval), multiple columns will
-be shown, one for each report period. Normally incomestatement shows
-revenues/expenses per period, though as with [multicolumn balance
-reports](#multicolumn-balance-reports) you can alter the report mode
-with `--change`/`--cumulative`/`--historical`.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### prices
-
-Print all [market prices](/manual#market-prices) from the journal.
-
-#### print
-
-Show transactions from the journal. Aliases: p, txns.
-
-`-m STR --match=STR`
-: show the transaction whose description is most similar to STR, and
- is most recent
-
-`--new`
-: show only newer-dated transactions added in each file since last run
-
-`-x --explicit`
-: show all amounts explicitly
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger print
-2008/01/01 income
- assets:bank:checking $1
- income:salary $-1
-
-2008/06/01 gift
- assets:bank:checking $1
- income:gifts $-1
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking $-1
-
-2008/06/03 * eat & shop
- expenses:food $1
- expenses:supplies $1
- assets:cash $-2
-
-2008/12/31 * pay off
- liabilities:debts $1
- assets:bank:checking $-1
-```
-
-The print command displays full journal entries (transactions) from the
-journal file in date order, tidily formatted. print's output is always a
-valid [hledger journal](/journal.html). It preserves all transaction
-information, but it does not preserve directives or inter-transaction
-comments
-
-Normally, the journal entry's explicit or implicit amount style is
-preserved. Ie when an amount is omitted in the journal, it will be
-omitted in the output. You can use the `-x`/`--explicit` flag to make
-all amounts explicit, which can be useful for troubleshooting or for
-making your journal more readable and robust against data entry errors.
-Note, `-x` will cause postings with a multi-commodity amount (these can
-arise when a multi-commodity transaction has an implicit amount) will be
-split into multiple single-commodity postings, for valid journal output.
-
-With `-B`/`--cost`, amounts with [transaction
-prices](/journal.html#transaction-prices) are converted to cost using
-that price. This can be used for troubleshooting.
-
-With `-m`/`--match` and a STR argument, print will show at most one
-transaction: the one one whose description is most similar to STR, and
-is most recent. STR should contain at least two characters. If there is
-no similar-enough match, no transaction will be shown.
-
-With `--new`, for each FILE being read, hledger reads (and writes) a
-special state file (`.latest.FILE` in the same directory), containing
-the latest transaction date(s) that were seen last time FILE was read.
-When this file is found, only transactions with newer dates (and new
-transactions on the latest date) are printed. This is useful for
-ignoring already-seen entries in import data, such as downloaded CSV
-files. Eg:
-
-``` {.console}
-$ hledger -f bank1.csv print --new
-# shows transactions added since last print --new on this file
-```
-
-This assumes that transactions added to FILE always have same or
-increasing dates, and that transactions on the same day do not get
-reordered. See also the [import](#import) command.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection. Here's an example of
-print's CSV output:
-
-``` {.shell}
-$ hledger print -Ocsv
-"txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment"
-"1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","",""
-"1","2008/01/01","","","","income","","income:salary","-1","$","1","","",""
-"2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","",""
-"2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","",""
-"3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","",""
-"3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","",""
-"4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","",""
-"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
-"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
-```
-
-- There is one CSV record per posting, with the parent transaction's
- fields repeated.
-- The "txnidx" (transaction index) field shows which postings belong
- to the same transaction. (This number might change if transactions
- are reordered within the file, files are parsed/included in a
- different order, etc.)
-- The amount is separated into "commodity" (the symbol) and "amount"
- (numeric quantity) fields.
-- The numeric amount is repeated in either the "credit" or "debit"
- column, for convenience. (Those names are not accurate in the
- accounting sense; it just puts negative amounts under credit and
- zero or greater amounts under debit.)
-
-#### print-unique
-
-Print transactions which do not reuse an already-seen description.
-
-#### register
-
-Show postings and their running total. Aliases: r, reg.
-
-`--cumulative`
-: show running total from report start date (default)
-
-`-H --historical`
-: show historical running total/balance (includes postings before
- report start date)
-
-`-A --average`
-: show running average of posting amounts instead of total (implies
- --empty)
-
-`-r --related`
-: show postings' siblings instead
-
-`-w N --width=N`
-: set output width (default: terminal width or COLUMNS. -wN,M sets
- description width as well)
-
-`-O FMT --output-format=FMT`
-: select the output format. Supported formats: txt, csv.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-The register command displays postings, one per line, and their running
-total. This is typically used with a [query](#queries) selecting a
-particular account, to see that account's activity:
-
-``` {.shell}
-$ hledger register checking
-2008/01/01 income assets:bank:checking $1 $1
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--historical`/`-H` flag adds the balance from any undisplayed prior
-postings to the running total. This is useful when you want to see only
-recent activity, with a historically accurate running balance:
-
-``` {.shell}
-$ hledger register checking -b 2008/6 --historical
-2008/06/01 gift assets:bank:checking $1 $2
-2008/06/02 save assets:bank:checking $-1 $1
-2008/12/31 pay off assets:bank:checking $-1 0
-```
-
-The `--depth` option limits the amount of sub-account detail displayed.
-
-The `--average`/`-A` flag shows the running average posting amount
-instead of the running total (so, the final number displayed is the
-average for the whole report period). This flag implies `--empty` (see
-below). It is affected by `--historical`. It works best when showing
-just one account and one commodity.
-
-The `--related`/`-r` flag shows the *other* postings in the transactions
-of the postings which would normally be shown.
-
-With a [reporting interval](#reporting-interval), register shows summary
-postings, one per interval, aggregating the postings to each account:
-
-``` {.shell}
-$ hledger register --monthly income
-2008/01 income:salary $-1 $-1
-2008/06 income:gifts $-1 $-2
-```
-
-Periods with no activity, and summary postings with a zero amount, are
-not shown by default; use the `--empty`/`-E` flag to see them:
-
-``` {.shell}
-$ hledger register --monthly income -E
-2008/01 income:salary $-1 $-1
-2008/02 0 $-1
-2008/03 0 $-1
-2008/04 0 $-1
-2008/05 0 $-1
-2008/06 income:gifts $-1 $-2
-2008/07 0 $-2
-2008/08 0 $-2
-2008/09 0 $-2
-2008/10 0 $-2
-2008/11 0 $-2
-2008/12 0 $-2
-```
-
-Often, you'll want to see just one line per interval. The `--depth`
-option helps with this, causing subaccounts to be aggregated:
-
-``` {.shell}
-$ hledger register --monthly assets --depth 1h
-2008/01 assets $1 $1
-2008/06 assets $-1 0
-2008/12 assets $-1 $-1
-```
-
-Note when using report intervals, if you specify start/end dates these
-will be adjusted outward if necessary to contain a whole number of
-intervals. This ensures that the first and last intervals are full
-length and comparable to the others in the report.
-
-##### Custom register output
-
-register uses the full terminal width by default, except on windows. You
-can override this by setting the `COLUMNS` environment variable (not a
-bash shell variable) or by using the `--width`/`-w` option.
-
-The description and account columns normally share the space equally
-(about half of (width - 40) each). You can adjust this by adding a
-description width as part of --width's argument, comma-separated:
-`--width W,D` . Here's a diagram:
-
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-
-and some examples:
-
-``` {.shell}
-$ hledger reg # use terminal width (or 80 on windows)
-$ hledger reg -w 100 # use width 100
-$ COLUMNS=100 hledger reg # set with one-time environment variable
-$ export COLUMNS=100; hledger reg # set till session end (or window resize)
-$ hledger reg -w 100,40 # set overall width 100, description width 40
-$ hledger reg -w $COLUMNS,40 # use terminal width, and set description width
-```
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### register-match
-
-Print the one posting whose transaction description is closest to DESC,
-in the style of the register command. Helps ledger-autosync detect
-already-seen transactions when importing.
-
-#### rewrite
-
-Print all transactions, adding custom postings to the matched ones.
-
-#### stats
-
-Show some journal statistics.
-
-`-o FILE --output-file=FILE`
-: write output to FILE. A file extension matching one of the above
- formats selects that format.
-
-``` {.shell}
-$ hledger stats
-Main journal file : /src/hledger/examples/sample.journal
-Included journal files :
-Transactions span : 2008-01-01 to 2009-01-01 (366 days)
-Last transaction : 2008-12-31 (2333 days ago)
-Transactions : 5 (0.0 per day)
-Transactions last 30 days: 0 (0.0 per day)
-Transactions last 7 days : 0 (0.0 per day)
-Payees/descriptions : 5
-Accounts : 8 (depth 3)
-Commodities : 1 ($)
-```
-
-The stats command displays summary information for the whole journal, or
-a matched part of it. With a [reporting interval](#reporting-interval),
-it shows a report for each report period.
-
-This command also supports [output
-destination](/manual.html#output-destination) and [output
-format](/manual.html#output-format) selection.
-
-#### tags
-
-List all the tag names used in the journal. With a TAGREGEX argument,
-only tag names matching the regular expression (case insensitive) are
-shown. With additional QUERY arguments, only transactions matching the
-query are considered.
-
-#### test
-
-Run built-in unit tests.
-
-``` {.shell}
-$ hledger test
-Cases: 74 Tried: 74 Errors: 0 Failures: 0
-```
-
-This command runs hledger's built-in unit tests and displays a quick
-report. With a regular expression argument, it selects only tests with
-matching names. It's mainly used in development, but it's also nice to
-be able to check your hledger executable for smoke at any time.
-
-### ADD-ON COMMANDS
-
-hledger also searches for external add-on commands, and will include
-these in the commands list. These are programs or scripts in your PATH
-whose name starts with `hledger-` and ends with a recognised file
-extension (currently: no extension, `bat`,`com`,`exe`,
-`hs`,`lhs`,`pl`,`py`,`rb`,`rkt`,`sh`).
-
-Add-ons can be invoked like any hledger command, but there are a few
-things to be aware of. Eg if the `hledger-web` add-on is installed,
-
-- `hledger -h web` shows hledger's help, while `hledger web -h` shows
- hledger-web's help.
-
-- Flags specific to the add-on must have a preceding `--` to hide them
- from hledger. So `hledger web --serve --port 9000` will be rejected;
- you must use `hledger web -- --serve --port 9000`.
-
-- You can always run add-ons directly if preferred:
- `hledger-web --serve --port 9000`.
-
-Add-ons are a relatively easy way to add local features or experiment
-with new ideas. They can be written in any language, but haskell scripts
-have a big advantage: they can use the same hledger (and haskell)
-library functions that built-in commands do, for command-line options,
-journal parsing, reporting, etc.
-
-Here are some hledger add-ons available:
-
-#### Official add-ons
-
-These are maintained and released along with hledger.
-
-##### api
-
-[hledger-api](hledger-api.html) serves hledger data as a JSON web API.
-
-##### ui
-
-[hledger-ui](hledger-ui.html) provides an efficient curses-style
-interface.
-
-##### web
-
-[hledger-web](hledger-web.html) provides a simple web interface.
-
-#### Third party add-ons
-
-These are maintained separately, and usually updated shortly after a
-hledger release.
-
-##### diff
-
-[hledger-diff](http://hackage.haskell.org/package/hledger-diff) shows
-differences in an account's transactions between one journal file and
-another.
-
-##### iadd
-
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) is a
-curses-style, more interactive replacement for the [add
-command](/hledger.html#add).
-
-##### interest
-
-[hledger-interest](http://hackage.haskell.org/package/hledger-interest)
-generates interest transactions for an account according to various
-schemes.
-
-##### irr
-
-[hledger-irr](http://hackage.haskell.org/package/hledger-irr) calculates
-the internal rate of return of an investment account.
-
-#### Experimental add-ons
-
-These are available in source form in the hledger repo's bin/ directory;
-installing them is [pretty easy](/download.html#d). They may be less
-mature and documented than built-in commands. Reading and tweaking these
-is a good way to start making your own!
-
-##### autosync
-
-[hledger-autosync](https://github.com/simonmichael/hledger/blob/master/bin/hledger-autosync)
-is a symbolic link for easily running
-[ledger-autosync](https://pypi.python.org/pypi/ledger-autosync), if
-installed. ledger-autosync does deduplicating conversion of OFX data and
-some CSV formats, and can also download the data [if your bank offers
-OFX Direct
-Connect](http://wiki.gnucash.org/wiki/OFX_Direct_Connect_Bank_Settings).
-
-##### chart
-
-[hledger-chart.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-chart.hs#L47)
-is an old pie chart generator, in need of some love.
-
-##### check
-
-[hledger-check.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-check.hs)
-checks more powerful account balance assertions.
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width used by the register command. Default: the
-full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede addon command options with `--` when invoked from
-hledger is awkward.
-
-When input data contains non-ascii characters, a suitable system locale
-must be configured (or there will be an unhelpful error). Eg on POSIX,
-set LANG to something other than C.
-
-In a Microsoft Windows CMD window, non-ascii characters and colours are
-not supported.
-
-In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
-add.
-
-Not all of Ledger's journal file syntax is supported. See [file format
-differences](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats).
-
-On large data files, hledger is slower and uses more memory than Ledger.
-
-### TROUBLESHOOTING
-
-Here are some issues you might encounter when you run hledger (and
-remember you can also seek help from the [IRC
-channel](http://irc.hledger.org), [mail list](http://list.hledger.org)
-or [bug tracker](http://bugs.hledger.org)):
-
-**Successfully installed, but "No command 'hledger' found"**\
-stack and cabal install binaries into a special directory, which should
-be added to your PATH environment variable. Eg on unix-like systems,
-that is \~/.local/bin and \~/.cabal/bin respectively.
-
-**I set a custom LEDGER\_FILE, but hledger is still using the default
-file**\
-`LEDGER_FILE` should be a real environment variable, not just a shell
-variable. The command `env | grep LEDGER_FILE` should show it. You may
-need to use `export`. Here's an
-[explanation](http://stackoverflow.com/a/7411509).
-
-**"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
-character" errors**\
-In order to handle non-ascii letters and symbols (like £), hledger needs
-an appropriate locale. This is usually configured system-wide; you can
-also configure it temporarily. The locale may need to be one that
-supports UTF-8, if you built hledger with GHC \< 7.2 (or possibly
-always, I'm not sure yet).
-
-Here's an example of setting the locale temporarily, on ubuntu
-gnu/linux:
-
-``` {.shell}
-$ file my.journal
-my.journal: UTF-8 Unicode text # <- the file is UTF8-encoded
-$ locale -a
-C
-en_US.utf8 # <- a UTF8-aware locale is available
-POSIX
-$ LANG=en_US.utf8 hledger -f my.journal print # <- use it for this command
-```
-
-Here's one way to set it permanently, there are probably better ways:
-
-``` {.shell}
-$ echo "export LANG=en_US.UTF-8" >>~/.bash_profile
-$ bash --login
-```
-
-If we preferred to use eg `fr_FR.utf8`, we might have to install that
-first:
-
-``` {.shell}
-$ apt-get install language-pack-fr
-$ locale -a
-C
-en_US.utf8
-fr_BE.utf8
-fr_CA.utf8
-fr_CH.utf8
-fr_FR.utf8
-fr_LU.utf8
-POSIX
-$ LANG=fr_FR.utf8 hledger -f my.journal print
-```
-
-Note some platforms allow variant locale spellings, but not all (ubuntu
-accepts `fr_FR.UTF8`, mac osx requires exactly `fr_FR.UTF-8`).
-
-
-## hledger-ui
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-hledger-ui - curses-style interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-ui [OPTIONS] [QUERYARGS]`\
-`hledger ui -- [OPTIONS] [QUERYARGS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-hledger-ui is hledger's curses-style interface, providing an efficient
-full-window text UI for viewing accounts and transactions, and some
-limited data entry capability. It is easier than hledger's command-line
-interface, and sometimes quicker and more convenient than the web
-interface.
-
-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),
-hledger\_journal(5) etc.
-
-### OPTIONS
-
-Note: if invoking hledger-ui as a hledger subcommand, write `--` before
-options as shown above.
-
-Any QUERYARGS are interpreted as a hledger search query which filters
-the data.
-
-`--watch`
-: watch for data and date changes and reload automatically
-
-`--theme=default|terminal|greenterm`
-: use this custom display theme
-
-`--register=ACCTREGEX`
-: start in the (first) matched account's register screen
-
-`--change`
-: show period balances (changes) at startup instead of historical
- balances
-
-`--flat`
-: show full account names, unindented
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### KEYS
-
-`?` shows a help dialog listing all keys. (Some of these also appear in
-the quick help at the bottom of each screen.) Press `?` again (or
-`ESCAPE`, or `LEFT`) to close it. The following keys work on most
-screens:
-
-The cursor keys navigate: `right` (or `enter`) goes deeper, `left`
-returns to the previous screen,
-`up`/`down`/`page up`/`page down`/`home`/`end` move up and down through
-lists. Vi-style (`h`/`j`/`k`/`l`) and Emacs-style
-(`CTRL-p`/`CTRL-n`/`CTRL-f`/`CTRL-b`) movement keys are also supported.
-A tip: movement speed is limited by your keyboard repeat rate, to move
-faster you may want to adjust it. (If you're on a mac, the Karabiner app
-is one way to do that.)
-
-With shift pressed, the cursor keys adjust the report period, limiting
-the transactions to be shown (by default, all are shown).
-`shift-down/up` steps downward and upward through these standard report
-period durations: year, quarter, month, week, day. Then,
-`shift-left/right` moves to the previous/next period. `t` sets the
-report period to today. With the `--watch` option, when viewing a
-"current" period (the current day, week, month, quarter, or year), the
-period will move automatically to track the current date. To set a
-non-standard period, you can use `/` and a `date:` query.
-
-`/` lets you set a general filter query limiting the data shown, using
-the same [query terms](/hledger.html#queries) as in hledger and
-hledger-web. While editing the query, you can use [CTRL-a/e/d/k, BS,
-cursor
-keys](http://hackage.haskell.org/package/brick-0.7/docs/Brick-Widgets-Edit.html#t:Editor);
-press `ENTER` to set it, or `ESCAPE`to cancel. There are also keys for
-quickly adjusting some common filters like account depth and transaction
-status (see below). `BACKSPACE` or `DELETE` removes all filters, showing
-all transactions.
-
-`ESCAPE` removes all filters and jumps back to the top screen. Or, it
-cancels a minibuffer edit or help dialog in progress.
-
-`CTRL-l` redraws the screen and centers the selection if possible
-(selections near the top won't be centered, since we don't scroll above
-the top).
-
-`g` reloads from the data file(s) and updates the current screen and any
-previous screens. (With large files, this could cause a noticeable
-pause.)
-
-`I` toggles balance assertion checking. Disabling balance assertions
-temporarily can be useful for troubleshooting.
-
-`a` runs command-line hledger's add command, and reloads the updated
-file. This allows some basic data entry.
-
-`A` is like `a`, but runs the
-[hledger-iadd](http://hackage.haskell.org/package/hledger-iadd) tool,
-which provides a curses-style interface. This key will be available if
-`hledger-iadd` is installed in \$PATH.
-
-`E` runs \$HLEDGER\_UI\_EDITOR, or \$EDITOR, or a default
-(`emacsclient -a "" -nw`) on the journal file. With some editors (emacs,
-vi), the cursor will be positioned at the current transaction when
-invoked from the register and transaction screens, and at the error
-location (if possible) when invoked from the error screen.
-
-`q` quits the application.
-
-Additional screen-specific keys are described below.
-
-### SCREENS
-
-#### Accounts screen
-
-This is normally the first screen displayed. It lists accounts and their
-balances, like hledger's balance command. By default, it shows all
-accounts and their latest ending balances (including the balances of
-subaccounts). if you specify a query on the command line, it shows just
-the matched accounts and the balances from matched transactions.
-
-Account names are normally indented to show the hierarchy (tree mode).
-To see less detail, set a depth limit by pressing a number key, `1` to
-`9`. `0` shows even less detail, collapsing all accounts to a single
-total. `-` and `+` (or `=`) decrease and increase the depth limit. To
-remove the depth limit, set it higher than the maximum account depth, or
-press `ESCAPE`.
-
-`F` toggles flat mode, in which accounts are shown as a flat list, with
-their full names. In this mode, account balances exclude subaccounts,
-except for accounts at the depth limit (as with hledger's balance
-command).
-
-`H` toggles between showing historical balances or period balances.
-Historical balances (the default) are ending balances at the end of the
-report period, taking into account all transactions before that date
-(filtered by the filter query if any), including transactions before the
-start of the report period. In other words, historical balances are what
-you would see on a bank statement for that account (unless disturbed by
-a filter query). Period balances ignore transactions before the report
-start date, so they show the change in balance during the report period.
-They are more useful eg when viewing a time log.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-including or excluding unmarked postings in the balances. Similarly, `P`
-toggles pending postings, and `C` toggles cleared postings. (By default,
-balances include all postings; if you activate one or two status
-filters, only those postings are included; and if you activate all
-three, the filter is removed.)
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`Z` toggles nonzero mode, in which only accounts with nonzero balances
-are shown (hledger-ui shows zero items by default, unlike command-line
-hledger).
-
-Press `right` or `enter` to view an account's transactions register.
-
-#### Register screen
-
-This screen shows the transactions affecting a particular account, like
-a check register. Each line represents one transaction and shows:
-
-- the other account(s) involved, in abbreviated form. (If there are
- both real and virtual postings, it shows only the accounts affected
- by real postings.)
-
-- the overall change to the current account's balance; positive for an
- inflow to this account, negative for an outflow.
-
-- the running historical total or period total for the current
- account, after the transaction. This can be toggled with `H`.
- Similar to the accounts screen, the historical total is affected by
- transactions (filtered by the filter query) before the report start
- date, while the period total is not. If the historical total is not
- disturbed by a filter query, it will be the running historical
- balance you would see on a bank register for the current account.
-
-If the accounts screen was in tree mode, the register screen will
-include transactions from both the current account and its subaccounts.
-If the accounts screen was in flat mode, and a non-depth-clipped account
-was selected, the register screen will exclude transactions from
-subaccounts. In other words, the register always shows the transactions
-responsible for the period balance shown on the accounts screen. As on
-the accounts screen, this can be toggled with `F`.
-
-`U` toggles filtering by [unmarked status](/journal.html#status),
-showing or hiding unmarked transactions. Similarly, `P` toggles pending
-transactions, and `C` toggles cleared transactions. (By default,
-transactions with all statuses are shown; if you activate one or two
-status filters, only those transactions are shown; and if you activate
-all three, the filter is removed.)q
-
-`R` toggles real mode, in which [virtual
-postings](/journal.html#virtual-postings) are ignored.
-
-`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).
-
-Press `right` (or `enter`) to view the selected transaction in detail.
-
-#### Transaction screen
-
-This screen shows a single transaction, as a general journal entry,
-similar to hledger's print command and journal format
-(hledger\_journal(5)).
-
-The transaction's date(s) and any cleared flag, transaction code,
-description, comments, along with all of its account postings are shown.
-Simple transactions have two postings, but there can be more (or in
-certain cases, fewer).
-
-`up` and `down` will step through all transactions listed in the
-previous account register screen. In the title bar, the numbers in
-parentheses show your position within that account register. They will
-vary depending on which account register you came from (remember most
-transactions appear in multiple account registers). The \#N number
-preceding them is the transaction's position within the complete
-unfiltered journal, which is a more stable id (at least until the next
-reload).
-
-#### Error screen
-
-This screen will appear if there is a problem, such as a parse error,
-when you press g to reload. Once you have fixed the problem, press g
-again to reload and resume normal operation. (Or, you can press escape
-to cancel the reload attempt.)
-
-### ENVIRONMENT
-
-**COLUMNS** The screen width to use. Default: the full terminal width.
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-ui can't read from stdin).
-
-`-V` affects only the accounts screen.
-
-When you press `g`, the current and all previous screens are
-regenerated, which may cause a noticeable pause with large files. Also
-there is no visual indication that this is in progress.
-
-`--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 times
-with an editor macro) can cause problems at least on OSX. Symptoms
-include: unresponsive UI, periodic resetting of the cursor position,
-momentary display of parse errors, high CPU usage eventually subsiding,
-and possibly a small but persistent build-up of CPU usage until the
-program is restarted.
-
-
-## hledger-web
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-hledger-web - web interface for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-web [OPTIONS]`\
-`hledger web -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a 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
-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.
-
-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.
-
-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),
-hledger\_journal(5) etc.
-
-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 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.
-
-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 0.0.0.0` to listen on all configured addresses.
-
-Similarly, use `--port` to set a TCP port other than 5000, eg if you are
-running multiple hledger-web instances.
-
-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 is 80).
-
-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.
-
-Note there is no built-in access control (aside from listening on
-127.0.0.1 by default). So you will need to hide hledger-web behind an
-authenticating proxy (such as apache or nginx) if you want to restrict
-who can see and add entries to your journal.
-
-Command-line options and arguments may be used to set an initial filter
-on the data. This is not shown in the web UI, but it will be applied in
-addition to any search query entered there.
-
-With journal and timeclock files (but not CSV files, currently) the web
-app detects changes made by other means and will show the new data on
-the next request. If a change makes the file unparseable, hledger-web
-will show an error until the file has been fixed.
-
-### OPTIONS
-
-Note: if invoking hledger-web as a hledger subcommand, write `--` before
-options as shown above.
-
-`--serve`
-: serve and log requests, don't browse or auto-exit
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`--port=PORT`
-: listen on this TCP port (default: 5000)
-
-`--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`
-: 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.
-
-hledger input options:
-
-`-f FILE --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`--rules-file=RULESFILE`
-: Conversion rules file to use when reading CSV (default: FILE.rules)
-
-`--alias=OLD=NEW`
-: rename accounts named OLD to NEW
-
-`--anon`
-: anonymize accounts and payees
-
-`--pivot FIELDNAME`
-: use some other field or tag for the account name
-
-`-I --ignore-assertions`
-: ignore any failing balance assertions
-
-hledger reporting options:
-
-`-b --begin=DATE`
-: include postings/txns on or after this date
-
-`-e --end=DATE`
-: include postings/txns before this date
-
-`-D --daily`
-: multiperiod/multicolumn report by day
-
-`-W --weekly`
-: multiperiod/multicolumn report by week
-
-`-M --monthly`
-: multiperiod/multicolumn report by month
-
-`-Q --quarterly`
-: multiperiod/multicolumn report by quarter
-
-`-Y --yearly`
-: multiperiod/multicolumn report by year
-
-`-p --period=PERIODEXP`
-: set start date, end date, and/or reporting interval all at once
- using [period expressions](manual.html#period-expressions) syntax
- (overrides the flags above)
-
-`--date2`
-: match the secondary date instead (see command help for other
- effects)
-
-`-U --unmarked`
-: include only unmarked postings/txns (can combine with -P or -C)
-
-`-P --pending`
-: include only pending postings/txns
-
-`-C --cleared`
-: include only cleared postings/txns
-
-`-R --real`
-: include only non-virtual postings
-
-`-NUM --depth=NUM`
-: hide/aggregate accounts or postings more than NUM levels deep
-
-`-E --empty`
-: show items with zero amount, normally hidden (and vice-versa in
- hledger-ui/hledger-web)
-
-`-B --cost`
-: convert amounts to their cost at transaction time (using the
- [transaction price](journal.html#transaction-prices), if any)
-
-`-V --value`
-: convert amounts to their market value on the report end date (using
- the most recent applicable [market
- price](journal.html#market-prices), if any)
-
-`--auto`
-: apply [automated posting
- rules](journal.html#automated-posting-rules) to modify transactions.
-
-`--forecast`
-: apply [periodic transaction](journal.html#periodic-transactions)
- rules to generate future transactions, to 6 months from now or
- report end date.
-
-When a reporting option appears more than once in the command line, the
-last one takes precedence.
-
-Some reporting options can also be written as [query
-arguments](#queries).
-
-hledger help options:
-
-`-h --help`
-: show general usage (or after COMMAND, command usage)
-
-`--version`
-: show version
-
-`--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.)
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-`-f-` doesn't work (hledger-web can't read from stdin).
-
-Query arguments and some hledger options are ignored.
-
-Does not work in text-mode browsers.
-
-Does not work well on small screens.
-
-
-## hledger-api
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-hledger-api - web API server for the hledger accounting tool
-
-### SYNOPSIS
-
-`hledger-api [OPTIONS]`\
-`hledger api -- [OPTIONS]`
-
-### DESCRIPTION
-
-hledger is a cross-platform program for tracking money, time, or any
-other commodity, using double-entry accounting and a simple, editable
-file format. hledger is inspired by and largely compatible with
-ledger(1).
-
-hledger-api is a simple web API server, intended to support client-side
-web apps operating on hledger data. It comes with a series of simple
-client-side app examples, which drive its evolution.
-
-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),
-hledger\_journal(5) etc.
-
-The server listens on IP address 127.0.0.1, accessible only to local
-requests, by default. You can change this with `--host`, eg
-`--host 0.0.0.0` to listen on all addresses. Note there is no other
-access control, and hledger-api allows file browsing, so on shared
-machines you will certainly need to put it behind an authenticating
-proxy to restrict access.
-
-You can change the TCP port it listens on (default: 8001) with
-`-p PORT`.
-
-API methods look like:
-
- /api/v1/accountnames
- /api/v1/transactions
- /api/v1/prices
- /api/v1/commodities
- /api/v1/accounts
- /api/v1/accounts/ACCTNAME
-
-See `/api/swagger.json` for a full list in Swagger 2.0 format. (Or you
-can run `hledger-api --swagger` to print this in the console.)
-
-hledger-api also serves files, from the current directory by default,
-and the `/` path will also show a directory listing. This is convenient
-for serving client-side web code, in addition to the server-side api.
-
-### OPTIONS
-
-Note: if invoking hledger-api as a hledger subcommand, write `--` before
-options as shown above.
-
-`-f --file=FILE`
-: use a different input file. For stdin, use - (default:
- `$LEDGER_FILE` or `$HOME/.hledger.journal`)
-
-`-d --static-dir=DIR`
-: serve files from a different directory (default: `.`)
-
-`--host=IPADDR`
-: listen on this IP address (default: 127.0.0.1)
-
-`-p --port=PORT`
-: listen on this TCP port (default: 8001)
-
-`--swagger`
-: print API docs in Swagger 2.0 format, and exit
-
-`--version`
-: show version
-
-`-h --help`
-: show usage
-
-### ENVIRONMENT
-
-**LEDGER\_FILE** The journal file path when not specified with `-f`.
-Default: `~/.hledger.journal` (on windows, perhaps
-`C:/Users/USER/.hledger.journal`).
-
-### FILES
-
-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`).
-
-### BUGS
-
-The need to precede options with `--` when invoked from hledger is
-awkward.
-
-
-## journal format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-Journal - hledger's default file format, representing a General Journal
-
-### DESCRIPTION
-
-hledger's usual data source is a plain text file containing journal
-entries in hledger journal format. This file represents a standard
-accounting [general
-journal](http://en.wikipedia.org/wiki/General_journal). I use file names
-ending in `.journal`, but that's not required. The journal file contains
-a number of transaction entries, each describing a transfer of money (or
-any commodity) between two or more named accounts, in a simple format
-readable by both hledger and humans.
-
-hledger's journal format is a compatible subset, mostly, of [ledger's
-journal
-format](http://ledger-cli.org/3.0/doc/ledger3.html#Journal-Format), so
-hledger can work with
-[compatible](https://github.com/simonmichael/hledger/wiki/FAQ#file-formats)
-ledger journal files as well. It's safe, and encouraged, to run both
-hledger and ledger on the same journal file, eg to validate the results
-you're getting.
-
-You can use hledger without learning any more about this file; just use
-the [add](#add) or [web](#web) commands to create and update it. Many
-users, though, also edit the journal file directly with a text editor,
-perhaps assisted by the helper modes for emacs or vim.
-
-Here's an example:
-
-``` {.journal}
-; A sample journal file. This is a comment.
-
-2008/01/01 income ; <- transaction's first line starts in column 0, contains date and description
- assets:bank:checking $1 ; <- posting lines start with whitespace, each contains an account name
- income:salary $-1 ; followed by at least two spaces and an amount
-
-2008/06/01 gift
- assets:bank:checking $1 ; <- at least two postings in a transaction
- income:gifts $-1 ; <- their amounts must balance to 0
-
-2008/06/02 save
- assets:bank:saving $1
- assets:bank:checking ; <- one amount may be omitted; here $-1 is inferred
-
-2008/06/03 eat & shop ; <- description can be anything
- expenses:food $1
- expenses:supplies $1 ; <- this transaction debits two expense accounts
- assets:cash ; <- $-2 inferred
-
-2008/10/01 take a loan
- assets:bank:checking $1
- liabilities:debts $-1
-
-2008/12/31 * pay off ; <- an optional * or ! after the date means "cleared" (or anything you want)
- liabilities:debts $1
- assets:bank:checking
-```
-
-### FILE FORMAT
-
-
-#### Transactions
-
-Transactions are movements of some quantity of commodities between named
-accounts. Each transaction is represented by a journal entry beginning
-with a [simple date](#simple-dates) in column 0. This can be followed by
-any of the following, separated by spaces:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`)
-- (optional) a transaction code (any short number or text, enclosed in
- parentheses)
-- (optional) a transaction description (any remaining text until end
- of line or a semicolon)
-- (optional) a transaction comment (any remaining text following a
- semicolon until end of line)
-
-Then comes zero or more (but usually at least 2) indented lines
-representing...
-
-#### Postings
-
-A posting is an addition of some amount to, or removal of some amount
-from, an account. Each posting line begins with at least one space or
-tab (2 or 4 spaces is common), followed by:
-
-- (optional) a [status](#status) character (empty, `!`, or `*`),
- followed by a space
-- (required) an [account name](#account-names) (any text, optionally
- containing **single spaces**, until end of line or a double space)
-- (optional) **two or more spaces** or tabs followed by an
- [amount](#amounts).
-
-Positive amounts are being added to the account, negative amounts are
-being removed.
-
-The amounts within a transaction must always sum up to zero. As a
-convenience, one amount may be left blank; it will be inferred so as to
-balance the transaction.
-
-Be sure to note the unusual two-space delimiter between account name and
-amount. This makes it easy to write account names containing spaces. But
-if you accidentally leave only one space (or tab) before the amount, the
-amount will be considered part of the account name.
-
-#### Dates
-
-##### Simple dates
-
-Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
-Leading zeros are optional. The year may be omitted, in which case it
-will be inferred from the context - the current transaction, the default
-year set with a [default year directive](#default-year), or the current
-date when the command is run. Some examples: `2010/01/31`, `1/31`,
-`2010-01-31`, `2010.1.31`.
-
-##### Secondary dates
-
-Real-life transactions sometimes involve more than one date - eg the
-date you write a cheque, and the date it clears in your bank. When you
-want to model this, eg for more accurate balances, you can specify
-individual [posting dates](#posting-dates), which I recommend. Or, you
-can use the secondary dates (aka auxiliary/effective dates) feature,
-supported for compatibility with Ledger.
-
-A secondary date can be written after the primary date, separated by an
-equals sign. The primary date, on the left, is used by default; the
-secondary date, on the right, is used when the `--date2` flag is
-specified (`--aux-date` or `--effective` also work).
-
-The meaning of secondary dates is up to you, but it's best to follow a
-consistent rule. Eg write the bank's clearing date as primary, and when
-needed, the date the transaction was initiated as secondary.
-
-Here's an example. Note that a secondary date will use the year of the
-primary date if unspecified.
-
-``` {.journal}
-2010/2/23=2/19 movie ticket
- expenses:cinema $10
- assets:checking
-```
-
-``` {.shell}
-$ hledger register checking
-2010/02/23 movie ticket assets:checking $-10 $-10
-```
-
-``` {.shell}
-$ hledger register checking --date2
-2010/02/19 movie ticket assets:checking $-10 $-10
-```
-
-Secondary dates require some effort; you must use them consistently in
-your journal entries and remember whether to use or not use the
-`--date2` flag for your reports. They are included in hledger for Ledger
-compatibility, but posting dates are a more powerful and less confusing
-alternative.
-
-##### Posting dates
-
-You can give individual postings a different date from their parent
-transaction, by adding a [posting comment](#comments) containing a
-[tag](#tags) (see below) like `date:DATE`. This is probably the best way
-to control posting dates precisely. Eg in this example the expense
-should appear in May reports, and the deduction from checking should be
-reported on 6/1 for easy bank reconciliation:
-
-``` {.journal}
-2015/5/30
- expenses:food $10 ; food purchased on saturday 5/30
- assets:checking ; bank cleared it on monday, date:6/1
-```
-
-``` {.shell}
-$ hledger -f t.j register food
-2015/05/30 expenses:food $10 $10
-```
-
-``` {.shell}
-$ hledger -f t.j register checking
-2015/06/01 assets:checking $-10 $-10
-```
-
-DATE should be a [simple date](#simple-dates); if the year is not
-specified it will use the year of the transaction's date. You can set
-the secondary date similarly, with `date2:DATE2`. The `date:` or
-`date2:` tags must have a valid simple date value if they are present,
-eg a `date:` tag with no value is not allowed.
-
-Ledger's earlier, more compact bracketed date syntax is also supported:
-`[DATE]`, `[DATE=DATE2]` or `[=DATE2]`. hledger will attempt to parse
-any square-bracketed sequence of the `0123456789/-.=` characters in this
-way. With this syntax, DATE infers its year from the transaction and
-DATE2 infers its year from DATE.
-
-#### Status
-
-Transactions, or individual postings within a transaction, can have a
-status mark, which is a single character before the transaction
-description or posting account name, separated from it by a space,
-indicating one of three statuses:
-
- mark status
- -------- ----------
- unmarked
- `!` pending
- `*` cleared
-
-When reporting, you can filter by status with the `-U/--unmarked`,
-`-P/--pending`, and `-C/--cleared` flags; or the `status:`, `status:!`,
-and `status:*` [queries](/manual.html#queries); or the U, P, C keys in
-hledger-ui.
-
-Note, in Ledger and in older versions of hledger, the "unmarked" state
-is called "uncleared". As of hledger 1.3 we have renamed it to unmarked
-for clarity.
-
-To replicate Ledger and old hledger's behaviour of also matching
-pending, combine -U and -P.
-
-Status marks are optional, but can be helpful eg for reconciling with
-real-world accounts. Some editor modes provide highlighting and
-shortcuts for working with status. Eg in Emacs ledger-mode, you can
-toggle transaction status with C-c C-e, or posting status with C-c C-c.
-
-What "uncleared", "pending", and "cleared" actually mean is up to you.
-Here's one suggestion:
-
- ---------------------------------------------------------------------
- status meaning
- ----------- ---------------------------------------------------------
- uncleared recorded but not yet reconciled; needs review
-
- pending tentatively reconciled (if needed, eg during a big
- reconciliation)
-
- cleared complete, reconciled as far as possible, and considered
- correct
- ---------------------------------------------------------------------
-
-With this scheme, you would use `-PC` to see the current balance at your
-bank, `-U` to see things which will probably hit your bank soon (like
-uncashed checks), and no flags to see the most up-to-date state of your
-finances.
-
-#### Description
-
-A transaction's description is the rest of the line following the date
-and status mark (or until a comment begins). Sometimes called the
-"narration" in traditional bookkeeping, it can be used for whatever you
-wish, or left blank. Transaction descriptions can be queried, unlike
-[comments](#comments).
-
-##### Payee and note
-
-You can optionally include a `|` (pipe) character in a description to
-subdivide it into a payee/payer name on the left and additional notes on
-the right. This may be worthwhile if you need to do more precise
-[querying](/hledger.html#queries) and [pivoting](/hledger.html#pivoting)
-by payee.
-
-#### Account names
-
-Account names typically have several parts separated by a full colon,
-from which hledger derives a hierarchical chart of accounts. They can be
-anything you like, but in finance there are traditionally five top-level
-accounts: `assets`, `liabilities`, `income`, `expenses`, and `equity`.
-
-Account names may contain single spaces, eg:
-`assets:accounts receivable`. Because of this, they must always be
-followed by **two or more spaces** (or newline).
-
-Account names can be [aliased](#rewriting-accounts).
-
-#### Amounts
-
-After the account name, there is usually an amount. Important: between
-account name and amount, there must be **two or more spaces**.
-
-Amounts consist of a number and (usually) a currency symbol or commodity
-name. Some examples:
-
-`2.00001`\
-`$1`\
-`4000 AAPL`\
-`3 "green apples"`\
-`-$1,000,000.00`\
-`INR 9,99,99,999.00`\
-`EUR -2.000.000,00`\
-`1 999 999.9455`\
-`EUR 1E3`\
-`1000E-6s`
-
-As you can see, the amount format is somewhat flexible:
-
-- amounts are a number (the "quantity") and optionally a currency
- symbol/commodity name (the "commodity").
-- the commodity is a symbol, word, or phrase, on the left or right,
- with or without a separating space. If the commodity contains
- numbers, spaces or non-word punctuation it must be enclosed in
- double quotes.
-- negative amounts with a commodity on the left can have the minus
- sign before or after it
-- digit groups (thousands, or any other grouping) can be separated by
- space or comma or period and should be used as separator between all
- groups
-- decimal part can be separated by comma or period and should be
- different from digit groups separator
-- scientific E-notation is allowed. Be careful not to use a digit
- group separator character in scientific notation, as it's not
- supported and it might get mistaken for a decimal point. (Declaring
- the digit group separator character explicitly with a commodity
- directive will prevent this.)
-
-You can use any of these variations when recording data. However, there
-is some ambiguous way of representing numbers like `$1.000` and `$1,000`
-both may mean either one thousand or one dollar. By default hledger will
-assume that this is sole delimiter is used only for decimals. On the
-other hand commodity format declared prior to that line will help to
-resolve that ambiguity differently:
-
-``` {.journal}
-commodity $1,000.00
-
-2017/12/25 New life of Scrooge
- expenses:gifts $1,000
- assets
-```
-
-Though journal may contain mixed styles to represent amount, when
-hledger displays amounts, it will choose a consistent format for each
-commodity. (Except for [price amounts](#prices), which are always
-formatted as written). The display format is chosen as follows:
-
-- if there is a [commodity directive](#declaring-commodities)
- specifying the format, that is used
-- otherwise the format is inferred from the first posting amount in
- that commodity in the journal, and the precision (number of decimal
- places) will be the maximum from all posting amounts in that
- commmodity
-- or if there are no such amounts in the journal, a default format is
- used (like `$1000.00`).
-
-Price amounts and amounts in D directives usually don't affect amount
-format inference, but in some situations they can do so indirectly. (Eg
-when D's default commodity is applied to a commodity-less amount, or
-when an amountless posting is balanced using a price's commodity, or
-when -V is used.) If you find this causing problems, set the desired
-format with a commodity directive.
-
-#### Virtual Postings
-
-When you parenthesise the account name in a posting, we call that a
-*virtual posting*, which means:
-
-- it is ignored when checking that the transaction is balanced
-- it is excluded from reports when the `--real/-R` flag is used, or
- the `real:1` query.
-
-You could use this, eg, to set an account's opening balance without
-needing to use the `equity:opening balances` account:
-
-``` {.journal}
-1/1 special unbalanced posting to set initial balance
- (assets:checking) $1000
-```
-
-When the account name is bracketed, we call it a *balanced virtual
-posting*. This is like an ordinary virtual posting except the balanced
-virtual postings in a transaction must balance to 0, like the real
-postings (but separately from them). Balanced virtual postings are also
-excluded by `--real/-R` or `real:1`.
-
-``` {.journal}
-1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
- expenses:food $10
- assets:cash $-10
- [assets:checking:available] $10
- [assets:checking:budget:food] $-10
-```
-
-Virtual postings have some legitimate uses, but those are few. You can
-usually find an equivalent journal entry using real postings, which is
-more correct and provides better error checking.
-
-#### Balance Assertions
-
-hledger supports [Ledger-style balance
-assertions](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assertions)
-in journal files. These look like `=EXPECTEDBALANCE` following a
-posting's amount. Eg in this example we assert the expected dollar
-balance in accounts a and b after each posting:
-
-``` {.journal}
-2013/1/1
- a $1 =$1
- b =$-1
-
-2013/1/2
- a $1 =$2
- b $-1 =$-2
-```
-
-After reading a journal file, hledger will check all balance assertions
-and report an error if any of them fail. Balance assertions can protect
-you from, eg, inadvertently disrupting reconciled balances while
-cleaning up old entries. You can disable them temporarily with the
-`--ignore-assertions` flag, which can be useful for troubleshooting or
-for reading Ledger files.
-
-##### Assertions and ordering
-
-hledger sorts an account's postings and assertions first by date and
-then (for postings on the same day) by parse order. Note this is
-different from Ledger, which sorts assertions only by parse order.
-(Also, Ledger assertions do not see the accumulated effect of repeated
-postings to the same account within a transaction.)
-
-So, hledger balance assertions keep working if you reorder
-differently-dated transactions within the journal. But if you reorder
-same-dated transactions or postings, assertions might break and require
-updating. This order dependence does bring an advantage: precise control
-over the order of postings and assertions within a day, so you can
-assert intra-day balances.
-
-##### Assertions and included files
-
-With [included files](#including-other-files), things are a little more
-complicated. Including preserves the ordering of postings and
-assertions. If you have multiple postings to an account on the same day,
-split across different files, and you also want to assert the account's
-balance on the same day, you'll have to put the assertion in the right
-file.
-
-##### Assertions and multiple -f options
-
-Balance assertions don't work well across files specified with multiple
--f options. Use include or [concatenate the
-files](/hledger.html#input-files) instead.
-
-##### Assertions and commodities
-
-The asserted balance must be a simple single-commodity amount, and in
-fact the assertion checks only this commodity's balance within the
-(possibly multi-commodity) account balance. We could call this a partial
-balance assertion. This is compatible with Ledger, and makes it possible
-to make assertions about accounts containing multiple commodities.
-
-To assert each commodity's balance in such a multi-commodity account,
-you can add multiple postings (with amount 0 if necessary). But note
-that no matter how many assertions you add, you can't be sure the
-account does not contain some unexpected commodity. (We'll add support
-for this kind of total balance assertion if there's demand.)
-
-##### Assertions and subaccounts
-
-Balance assertions do not count the balance from subaccounts; they check
-the posted account's exclusive balance. For example:
-
-``` {.journal}
-1/1
- checking:fund 1 = 1 ; post to this subaccount, its balance is now 1
- checking 1 = 1 ; post to the parent account, its exclusive balance is now 1
- equity
-```
-
-The balance report's flat mode shows these exclusive balances more
-clearly:
-
-``` {.shell}
-$ hledger bal checking --flat
- 1 checking
- 1 checking:fund
---------------------
- 2
-```
-
-##### Assertions and virtual postings
-
-Balance assertions are checked against all postings, both real and
-[virtual](#virtual-postings). They are not affected by the `--real/-R`
-flag or `real:` query.
-
-#### Balance Assignments
-
-[Ledger-style balance
-assignments](http://ledger-cli.org/3.0/doc/ledger3.html#Balance-assignments)
-are also supported. These are like [balance
-assertions](#balance-assertions), but with no posting amount on the left
-side of the equals sign; instead it is calculated automatically so as to
-satisfy the assertion. This can be a convenience during data entry, eg
-when setting opening balances:
-
-``` {.journal}
-; starting a new journal, set asset account balances
-2016/1/1 opening balances
- assets:checking = $409.32
- assets:savings = $735.24
- assets:cash = $42
- equity:opening balances
-```
-
-or when adjusting a balance to reality:
-
-``` {.journal}
-; no cash left; update balance, record any untracked spending as a generic expense
-2016/1/15
- assets:cash = $0
- expenses:misc
-```
-
-The calculated amount depends on the account's balance in the commodity
-at that point (which depends on the previously-dated postings of the
-commodity to that account since the last balance assertion or
-assignment). Note that using balance assignments makes your journal a
-little less explicit; to know the exact amount posted, you have to run
-hledger or do the calculations yourself, instead of just reading it.
-
-#### Prices
-
-##### Transaction prices
-
-Within a transaction, you can note an amount's price in another
-commodity. This can be used to document the cost (in a purchase) or
-selling price (in a sale). For example, transaction prices are useful to
-record purchases of a foreign currency.
-
-Transaction prices are fixed, and do not change over time. (Ledger
-users: Ledger uses a different
-[syntax](http://ledger-cli.org/3.0/doc/ledger3.html#Fixing-Lot-Prices)
-for fixed prices, `{=UNITPRICE}`, which hledger currently ignores).
-
-There are several ways to record a transaction price:
-
-1. Write the price per unit, as `@ UNITPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @ $1.35 ; one hundred euros purchased at $1.35 each
- assets:dollars ; balancing amount is -$135.00
- ```
-
-2. Write the total price, as `@@ TOTALPRICE` after the amount:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 @@ $135 ; one hundred euros purchased at $135 for the lot
- assets:dollars
- ```
-
-3. Specify amounts for all postings, using exactly two commodities, and
- let hledger infer the price that balances the transaction:
-
- ``` {.journal}
- 2009/1/1
- assets:euros €100 ; one hundred euros purchased
- assets:dollars $-135 ; for $135
- ```
-
-Amounts with transaction prices can be displayed in the transaction
-price's commodity by using the
-[`-B/--cost`](hledger.html#reporting-options) flag (except for
-[\#551](https://github.com/simonmichael/hledger/issues/551)) ("B" is
-from "cost Basis"). Eg for the above, here is how -B affects the balance
-report:
-
-``` {.shell}
-$ hledger bal -N --flat
- $-135 assets:dollars
- €100 assets:euros
-$ hledger bal -N --flat -B
- $-135 assets:dollars
- $135 assets:euros # <- the euros' cost
-```
-
-Note -B is sensitive to the order of postings when a transaction price
-is inferred: the inferred price will be in the commodity of the last
-amount. So if example 3's postings are reversed, while the transaction
-is equivalent, -B shows something different:
-
-``` {.journal}
-2009/1/1
- assets:dollars $-135 ; 135 dollars sold
- assets:euros €100 ; for 100 euros
-```
-
-``` {.shell}
-$ hledger bal -N --flat -B
- €-100 assets:dollars # <- the dollars' selling price
- €100 assets:euros
-```
-
-##### Market prices
-
-Market prices are not tied to a particular transaction; they represent
-historical exchange rates between two commodities. (Ledger calls them
-historical prices.) For example, the prices published by a [stock
-exchange](https://en.wikipedia.org/wiki/Stock_exchange) or the [foreign
-exchange market](https://en.wikipedia.org/wiki/Foreign_exchange_market).
-hledger can use these prices to show the market value of things at a
-given date, see [market value](#market-value).
-
-To record market prices, use P directives in the main journal or in an
-[included](#including-other-files) file. Their format is:
-
-``` {.journal}
-P DATE COMMODITYBEINGPRICED UNITPRICE
-```
-
-
-DATE is a [simple date](#simple-dates) as usual. COMMODITYBEINGPRICED is
-the symbol of the commodity being priced. UNITPRICE is an ordinary
-[amount](#amounts) (symbol and quantity) in a second commodity,
-specifying the unit price or conversion rate for the first commodity in
-terms of the second, on the given date.
-
-For example, the following directives say that one euro was worth 1.35
-US dollars during 2009, and \$1.40 from 2010 onward:
-
-``` {.journal}
-P 2009/1/1 € $1.35
-P 2010/1/1 € $1.40
-```
-
-#### Comments
-
-Lines in the journal beginning with a semicolon (`;`) or hash (`#`) or
-star (`*`) are comments, and will be ignored. (Star comments cause
-org-mode nodes to be ignored, allowing emacs users to fold and navigate
-their journals with org-mode or orgstruct-mode.)
-
-You can attach comments to a transaction by writing them after the
-description and/or indented on the following lines (before the
-postings). Similarly, you can attach comments to an individual posting
-by writing them after the amount and/or indented on the following lines.
-Transaction and posting comments must begin with a semicolon (`;`).
-
-Some examples:
-
-``` {.journal}
-# a file comment
-
-; also a file comment
-
-comment
-This is a multiline file comment,
-which continues until a line
-where the "end comment" string
-appears on its own (or end of file).
-end comment
-
-2012/5/14 something ; a transaction comment
- ; the transaction comment, continued
- posting1 1 ; a comment for posting 1
- posting2
- ; a comment for posting 2
- ; another comment line for posting 2
-; a file comment (because not indented)
-```
-
-You can also comment larger regions of a file using [`comment` and
-`end comment` directives](#comment-blocks).
-
-#### Tags
-
-Tags are a way to add extra labels or labelled data to postings and
-transactions, which you can then [search](/hledger.html#queries) or
-[pivot](/hledger.html#pivoting) on.
-
-A simple tag is a word (which may contain hyphens) followed by a full
-colon, written inside a transaction or posting [comment](#comments)
-line:
-
-``` {.journal}
-2017/1/16 bought groceries ; sometag:
-```
-
-Tags can have a value, which is the text after the colon, up to the next
-comma or end of line, with leading/trailing whitespace removed:
-
-``` {.journal}
- expenses:food $10 ; a-posting-tag: the tag value
-```
-
-Note this means hledger's tag values can not contain commas or newlines.
-Ending at commas means you can write multiple short tags on one line,
-comma separated:
-
-``` {.journal}
- assets:checking ; a comment containing tag1:, tag2: some value ...
-```
-
-Here,
-
-- "`a comment containing`" is just comment text, not a tag
-- "`tag1`" is a tag with no value
-- "`tag2`" is another tag, whose value is "`some value ...`"
-
-Tags in a transaction comment affect the transaction and all of its
-postings, while tags in a posting comment affect only that posting. For
-example, the following transaction has three tags (`A`, `TAG2`,
-`third-tag`) and the posting has four (those plus `posting-tag`):
-
-``` {.journal}
-1/1 a transaction ; A:, TAG2:
- ; third-tag: a third transaction tag, <- with a value
- (a) $1 ; posting-tag:
-```
-
-Tags are like Ledger's
-[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata) feature,
-except hledger's tag values are simple strings.
-
-#### Directives
-
-##### Comment blocks
-
-A line containing just `comment` starts a commented region of the file,
-and a line containing just `end comment` (or the end of the current
-file) ends it. See also [comments](#comments).
-
-##### Including other files
-
-You can pull in the content of additional files by writing an include
-directive, like this:
-
-``` {.journal}
-include path/to/file.journal
-```
-
-If the path does not begin with a slash, it is relative to the current
-file. Glob patterns (`*`) are not currently supported.
-
-The `include` directive can only be used in journal files. It can
-include journal, timeclock or timedot files, but not CSV files.
-
-##### Default year
-
-You can set a default year to be used for subsequent dates which don't
-specify a year. This is a line beginning with `Y` followed by the year.
-Eg:
-
-``` {.journal}
-Y2009 ; set default year to 2009
-
-12/15 ; equivalent to 2009/12/15
- expenses 1
- assets
-
-Y2010 ; change default year to 2010
-
-2009/1/30 ; specifies the year, not affected
- expenses 1
- assets
-
-1/31 ; equivalent to 2010/1/31
- expenses 1
- assets
-```
-
-##### Declaring commodities
-
-The `commodity` directive declares commodities which may be used in the
-journal (though currently we do not enforce this). It may be written on
-a single line, like this:
-
-``` {.journal}
-; commodity EXAMPLEAMOUNT
-
-; display AAAA amounts with the symbol on the right, space-separated,
-; using period as decimal point, with four decimal places, and
-; separating thousands with comma.
-commodity 1,000.0000 AAAA
-```
-
-or on multiple lines, using the "format" subdirective. In this case the
-commodity symbol appears twice and should be the same in both places:
-
-``` {.journal}
-; commodity SYMBOL
-; format EXAMPLEAMOUNT
-
-; display indian rupees with currency name on the left,
-; thousands, lakhs and crores comma-separated,
-; period as decimal point, and two decimal places.
-commodity INR
- format INR 9,99,99,999.00
-```
-
-Commodity directives have a second purpose: they define the standard
-display format for amounts in the commodity. Normally the display format
-is inferred from journal entries, but this can be unpredictable;
-declaring it with a commodity directive overrides this and removes
-ambiguity. Towards this end, amounts in commodity directives must always
-be written with a decimal point (a period or comma, followed by 0 or
-more decimal digits).
-
-##### Default commodity
-
-The D directive sets a default commodity (and display format), to be
-used for amounts without a commodity symbol (ie, plain numbers). (Note
-this differs from Ledger's default commodity directive.) The commodity
-and display format will be applied to all subsequent commodity-less
-amounts, or until the next D directive.
-
-``` {.journal}
-# commodity-less amounts should be treated as dollars
-# (and displayed with symbol on the left, thousands separators and two decimal places)
-D $1,000.00
-
-1/1
- a 5 ; <- commodity-less amount, becomes $1
- b
-```
-
-As with the `commodity` directive, the amount must always be written
-with a decimal point.
-
-##### Declaring accounts
-
-The `account` directive predeclares account names. The simplest form is
-`account ACCTNAME`, eg:
-
-``` {.journal}
-account assets:bank:checking
-```
-
-Currently this mainly helps with account name autocompletion in eg
-hledger add, hledger-iadd, hledger-web, and ledger-mode.\
-In future it will also help detect misspelled accounts.
-
-Account names can be followed by a numeric account code:
-
-``` {.journal}
-account assets 1000
-account assets:bank:checking 1110
-account liabilities 2000
-account revenues 4000
-account expenses 6000
-```
-
-This affects account display order in reports: accounts with codes are
-listed before accounts without codes, in increasing code order.
-(Otherwise, accounts are listed alphabetically.) Account codes should be
-all numeric digits, unique, and separated from the account name by at
-least two spaces (since account names may contain single spaces). By
-convention, often the first digit indicates the type of account, as in
-[this numbering
-scheme](http://www.dwmbeancounter.com/BCTutorSite/Courses/ChartAccounts/lesson02-6.html)
-and the example above. In future, we might use this to recognize account
-types.
-
-An account directive can also have indented subdirectives following it,
-which are currently ignored. Here is the full syntax:
-
-``` {.journal}
-; account ACCTNAME [OPTIONALCODE]
-; [OPTIONALSUBDIRECTIVES]
-
-account assets:bank:checking 1110
- a comment
- some-tag:12345
-```
-
-##### Rewriting accounts
-
-You can define aliases which rewrite your account names (after reading
-the journal, before generating reports). hledger's account aliases can
-be useful for:
-
-- expanding shorthand account names to their full form, allowing
- easier data entry and a less verbose journal
-- adapting old journals to your current chart of accounts
-- experimenting with new account organisations, like a new hierarchy
- or combining two accounts into one
-- customising reports
-
-See also [Cookbook: Rewrite account
-names](https://github.com/simonmichael/hledger/wiki/Rewrite-account-names).
-
-###### Basic aliases
-
-To set an account alias, use the `alias` directive in your journal file.
-This affects all subsequent journal entries in the current file or its
-[included files](#including-other-files). The spaces around the = are
-optional:
-
-``` {.journal}
-alias OLD = NEW
-```
-
-Or, you can use the `--alias 'OLD=NEW'` option on the command line. This
-affects all entries. It's useful for trying out aliases interactively.
-
-OLD and NEW are full account names. hledger will replace any occurrence
-of the old account name with the new one. Subaccounts are also affected.
-Eg:
-
-``` {.journal}
-alias checking = assets:bank:wells fargo:checking
-# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
-```
-
-###### Regex aliases
-
-There is also a more powerful variant that uses a regular expression,
-indicated by the forward slashes:
-
-``` {.journal}
-alias /REGEX/ = REPLACEMENT
-```
-
-or `--alias '/REGEX/=REPLACEMENT'`.
-
-
-REGEX is a case-insensitive regular expression. Anywhere it matches
-inside an account name, the matched part will be replaced by
-REPLACEMENT. If REGEX contains parenthesised match groups, these can be
-referenced by the usual numeric backreferences in REPLACEMENT. Eg:
-
-``` {.journal}
-alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
-# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
-```
-
-Also note that REPLACEMENT continues to the end of line (or on command
-line, to end of option argument), so it can contain trailing whitespace.
-
-###### Multiple aliases
-
-You can define as many aliases as you like using directives or
-command-line options. Aliases are recursive - each alias sees the result
-of applying previous ones. (This is different from Ledger, where aliases
-are non-recursive by default). Aliases are applied in the following
-order:
-
-1. alias directives, most recently seen first (recent directives take
- precedence over earlier ones; directives not yet seen are ignored)
-2. alias options, in the order they appear on the command line
-
-###### `end aliases`
-
-You can clear (forget) all currently defined aliases with the
-`end aliases` directive:
-
-``` {.journal}
-end aliases
-```
-
-##### Default parent account
-
-You can specify a parent account which will be prepended to all accounts
-within a section of the journal. Use the `apply account` and
-`end apply account` directives like so:
-
-``` {.journal}
-apply account home
-
-2010/1/1
- food $10
- cash
-
-end apply account
-```
-
-which is equivalent to:
-
-``` {.journal}
-2010/01/01
- home:food $10
- home:cash $-10
-```
-
-If `end apply account` is omitted, the effect lasts to the end of the
-file. Included files are also affected, eg:
-
-``` {.journal}
-apply account business
-include biz.journal
-end apply account
-apply account personal
-include personal.journal
-```
-
-Prior to hledger 1.0, legacy `account` and `end` spellings were also
-supported.
-
-#### Periodic transactions
-
-Periodic transaction rules (enabled by `--forecast` or `--budget`)
-describe recurring transactions. They look like a transaction where the
-first line is a tilde (`~`) followed by a [period
-expression](manual.html#period-expressions) (mnemonic: `~` is like a
-recurring sine wave):
-
-``` {.journal}
-~ weekly
- assets:bank:checking $400 ; paycheck
- income:acme inc
-```
-
-Periodic transactions have a dual purpose:
-
-- With `--forecast`, each periodic transaction rule generates future
- transactions, recurring at the specified interval, which can be seen
- in reports. Forecast transactions begin the day after the latest
- recorded journal transaction (or today, if there are no
- transactions) and end 6 months from today (or at the report end
- date, if specified).
-
-- With `--budget` (supported by the balance command), each periodic
- transaction rule declares recurring budget goals for the specified
- accounts, which can be seen in [budget
- reports](/manual.html#budget-report). Eg the example above declares
- the goal of receiving \$400 from `income:acme inc` (and also,
- depositing \$400 into `assets:bank:checking`) every week.
-
-(Actually, you can generate one-off transactions too, by writing a
-period expression with no report interval.)
-
-For more details, see: [balance: Budget
-report](manual.html#budget-report) and [Cookbook: Budgeting and
-Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting-and-forecasting).
-
-#### Automated postings
-
-Automated postings (enabled by `--auto`) are postings added
-automatically by rule to certain transactions. An automated posting rule
-looks like a transaction where the first line is an equal sign (`=`)
-followed by a [query](manual.html#queries) (mnemonic: `=` tests for
-matching transactions, and also looks like posting lines):
-
-``` {.journal}
-= expenses:gifts
- budget:gifts *-1
- assets:budget *1
-```
-
-The posting amounts can be of the form `*N`, which means "the amount of
-the matched transaction's first posting, multiplied by N". They can also
-be ordinary fixed amounts. Fixed amounts with no commodity symbol will
-be given the same commodity as the matched transaction's first posting.
-
-This example adds a corresponding ([unbalanced](#virtual-postings))
-budget posting to every transaction involving the `expenses:gifts`
-account:
-
-``` {.journal}
-= expenses:gifts
- (budget:gifts) *-1
-
-2017-12-14
- expenses:gifts $20
- assets
-```
-
-``` {.shell}
-$ hledger print --auto
-2017/12/14
- expenses:gifts $20
- (budget:gifts) $-20
- assets
-```
-
-Like postings recorded by hand, automated postings participate in
-[transaction balancing, missing amount inference](#postings) and
-[balance assertions](#balance-assertions).
-
-### EDITOR SUPPORT
-
-Add-on modes exist for various text editors, to make working with
-journal files easier. They add colour, navigation aids and helpful
-commands. For hledger users who edit the journal file directly (the
-majority), using one of these modes is quite recommended.
-
-These were written with Ledger in mind, but also work with hledger
-files:
-
- -------------------------------------------------------------------------------------------------------
- Editor
- ---------- --------------------------------------------------------------------------------------------
- Emacs
-
- Vim
-
- Sublime
- Text
-
- Textmate
-
- Text
- Wrangler
-
- Visual
- Studio
- Code
- -------------------------------------------------------------------------------------------------------
-
-
-
-
-## csv format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-CSV - how hledger reads CSV data, and the CSV rules file format
-
-### DESCRIPTION
-
-hledger can read
-[CSV](http://en.wikipedia.org/wiki/Comma-separated_values)
-(comma-separated value) files as if they were journal files,
-automatically converting each CSV record into a transaction. (To learn
-about *writing* CSV, see [CSV output](hledger.html#csv-output).)
-
-Converting CSV to transactions requires some special conversion rules.
-These do several things:
-
-- they describe the layout and format of the CSV data
-- they can customize the generated journal entries using a simple
- templating language
-- they can add refinements based on patterns in the CSV data, eg
- categorizing transactions with more detailed account names.
-
-When reading a CSV file named `FILE.csv`, hledger looks for a conversion
-rules file named `FILE.csv.rules` in the same directory. You can
-override this with the `--rules-file` option. If the rules file does not
-exist, hledger will auto-create one with some example rules, which
-you'll need to adjust.
-
-At minimum, the rules file must identify the `date` and `amount` fields.
-It may also be necessary to specify the date format, and the number of
-header lines to skip. Eg:
-
- fields date, _, _, amount
- date-format %d/%m/%Y
- skip 1
-
-A more complete example:
-
- # hledger CSV rules for amazon.com order history
-
- # sample:
- # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID"
- # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL"
-
- # skip one header line
- skip 1
-
- # name the csv fields (and assign the transaction's date, amount and code)
- fields date, _, toorfrom, name, amzstatus, amount, fees, code
-
- # how to parse the date
- date-format %b %-d, %Y
-
- # combine two fields to make the description
- description %toorfrom %name
-
- # save these fields as tags
- comment status:%amzstatus, fees:%fees
-
- # set the base account for all transactions
- account1 assets:amazon
-
- # flip the sign on the amount
- amount -%amount
-
-For more examples, see [Convert CSV files](csv-import.html).
-
-### CSV RULES
-
-The following seven kinds of rule can appear in the rules file, in any
-order. Blank lines and lines beginning with `#` or `;` are ignored.
-
-#### skip
-
-`skip`*`N`*
-
-Skip this number of CSV records at the beginning. You'll need this
-whenever your CSV data contains header lines. Eg:
-
-
-
-
-``` {.rules}
-# ignore the first CSV line
-skip 1
-```
-
-#### date-format
-
-`date-format`*`DATEFMT`*
-
-When your CSV date fields are not formatted like `YYYY/MM/DD` (or
-`YYYY-MM-DD` or `YYYY.MM.DD`), you'll need to specify the format.
-DATEFMT is a [strptime-like date parsing
-pattern](http://hackage.haskell.org/packages/archive/time/latest/doc/html/Data-Time-Format.html#v:formatTime),
-which must parse the date field values completely. Examples:
-
-``` {.rules .display-table}
-# for dates like "6/11/2013":
-date-format %-d/%-m/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "11/06/2013":
-date-format %m/%d/%Y
-```
-
-``` {.rules .display-table}
-# for dates like "2013-Nov-06":
-date-format %Y-%h-%d
-```
-
-``` {.rules .display-table}
-# for dates like "11/6/2013 11:32 PM":
-date-format %-m/%-d/%Y %l:%M %p
-```
-
-#### field list
-
-`fields`*`FIELDNAME1`*, *`FIELDNAME2`*...
-
-This (a) names the CSV fields, in order (names may not contain
-whitespace; uninteresting names may be left blank), and (b) assigns them
-to journal entry fields if you use any of these standard field names:
-`date`, `date2`, `status`, `code`, `description`, `comment`, `account1`,
-`account2`, `amount`, `amount-in`, `amount-out`, `currency`, `balance`.
-Eg:
-
-``` {.rules}
-# use the 1st, 2nd and 4th CSV fields as the entry's date, description and amount,
-# and give the 7th and 8th fields meaningful names for later reference:
-#
-# CSV field:
-# 1 2 3 4 5 6 7 8
-# entry field:
-fields date, description, , amount, , , somefield, anotherfield
-```
-
-#### field assignment
-
-*`ENTRYFIELDNAME`* *`FIELDVALUE`*
-
-This sets a journal entry field (one of the standard names above) to the
-given text value, which can include CSV field values interpolated by
-name (`%CSVFIELDNAME`) or 1-based position (`%N`).
- Eg:
-
-``` {.rules .display-table}
-# set the amount to the 4th CSV field with "USD " prepended
-amount USD %4
-```
-
-``` {.rules .display-table}
-# combine three fields to make a comment (containing two tags)
-comment note: %somefield - %anotherfield, date: %1
-```
-
-Field assignments can be used instead of or in addition to a field list.
-
-#### conditional block
-
-`if` *`PATTERN`*\
- *`FIELDASSIGNMENTS`*...
-
-`if`\
-*`PATTERN`*\
-*`PATTERN`*...\
- *`FIELDASSIGNMENTS`*...
-
-This applies one or more field assignments, only to those CSV records
-matched by one of the PATTERNs. The patterns are case-insensitive
-regular expressions which match anywhere within the whole CSV record
-(it's not yet possible to match within a specific field). When there are
-multiple patterns they can be written on separate lines, unindented. The
-field assignments are on separate lines indented by at least one space.
-Examples:
-
-``` {.rules .display-table}
-# if the CSV record contains "groceries", set account2 to "expenses:groceries"
-if groceries
- account2 expenses:groceries
-```
-
-``` {.rules .display-table}
-# if the CSV record contains any of these patterns, set account2 and comment as shown
-if
-monthly service fee
-atm transaction fee
-banking thru software
- account2 expenses:business:banking
- comment XXX deductible ? check it
-```
-
-#### include
-
-`include`*`RULESFILE`*
-
-Include another rules file at this point. `RULESFILE` is either an
-absolute file path or a path relative to the current file's directory.
-Eg:
-
-``` {.rules}
-# rules reused with several CSV files
-include common.rules
-```
-
-#### newest-first
-
-`newest-first`
-
-Consider adding this rule if all of the following are true: you might be
-processing just one day of data, your CSV records are in reverse
-chronological order (newest first), and you care about preserving the
-order of same-day transactions. It usually isn't needed, because hledger
-autodetects the CSV order, but when all CSV records have the same date
-it will assume they are oldest first.
-
-### CSV TIPS
-
-#### CSV ordering
-
-The generated [journal entries](/journal.html#transactions) will be
-sorted by date. The order of same-day entries will be preserved (except
-in the special case where you might need
-[`newest-first`](#newest-first), see above).
-
-#### CSV accounts
-
-Each journal entry will have two [postings](/journal.html#postings), to
-`account1` and `account2` respectively. It's not yet possible to
-generate entries with more than two postings. It's conventional and
-recommended to use `account1` for the account whose CSV we are reading.
-
-#### CSV amounts
-
-The `amount` field sets the [amount](/journal.html#amounts) of the
-`account1` posting.
-
-If the CSV has debit/credit amounts in separate fields, assign to the
-`amount-in` and `amount-out` pseudo fields instead. (Whichever one has a
-value will be used, with appropriate sign. If both contain a value, it
-may not work so well.)
-
-If an amount value is parenthesised, it will be de-parenthesised and
-sign-flipped.
-
-If an amount value begins with a double minus sign, those will cancel
-out and be removed.
-
-If the CSV has the currency symbol in a separate field, assign that to
-the `currency` pseudo field to have it prepended to the amount. Or, you
-can use a [field assignment](#field-assignment) to `amount` that
-interpolates both CSV fields (giving more control, eg to put the
-currency symbol on the right).
-
-#### CSV balance assertions
-
-If the CSV includes a running balance, you can assign that to the
-`balance` pseudo field; whenever the running balance value is non-empty,
-it will be [asserted](/journal.html#balance-assertions) as the balance
-after the `account1` posting.
-
-#### Reading multiple CSV files
-
-You can read multiple CSV files at once using multiple `-f` arguments on
-the command line, and hledger will look for a correspondingly-named
-rules file for each. Note if you use the `--rules-file` option, this one
-rules file will be used for all the CSV files being read.
-
-
-## timeclock format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-### DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
-
-
-## timedot format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-### NAME
-
-Timedot - hledger's human-friendly time logging format
-
-### DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-### FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/1.9/timeclock.md b/site/doc/1.9/timeclock.md
deleted file mode 100644
index f646557e5..000000000
--- a/site/doc/1.9/timeclock.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# timeclock format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timeclock - the time logging format of timeclock.el, as read by hledger
-
-## DESCRIPTION
-
-hledger can read timeclock files. [As with
-Ledger](http://ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping), these
-are (a subset of)
-[timeclock.el](http://www.emacswiki.org/emacs/TimeClock)'s format,
-containing clock-in and clock-out entries as in the example below. The
-date is a [simple date](#simple-dates). The time format is
-HH:MM\[:SS\]\[+-ZZZZ\]. Seconds and timezone are optional. The timezone,
-if present, must be four digits and is ignored (currently the time is
-always interpreted as a local time).
-
-``` {.timeclock}
-i 2015/03/30 09:00:00 some:account name optional description after two spaces
-o 2015/03/30 09:20:00
-i 2015/03/31 22:21:45 another account
-o 2015/04/01 02:00:34
-```
-
-hledger treats each clock-in/clock-out pair as a transaction posting
-some number of hours to an account. Or if the session spans more than
-one day, it is split into several transactions, one for each day. For
-the above time log, `hledger print` generates these journal entries:
-
-``` {.shell}
-$ hledger -f t.timeclock print
-2015/03/30 * optional description after two spaces
- (some:account name) 0.33h
-
-2015/03/31 * 22:21-23:59
- (another account) 1.64h
-
-2015/04/01 * 00:00-02:00
- (another account) 2.01h
-```
-
-Here is a
-[sample.timeclock](https://raw.github.com/simonmichael/hledger/master/examples/sample.timeclock)
-to download and some queries to try:
-
-``` {.shell}
-$ hledger -f sample.timeclock balance # current time balances
-$ hledger -f sample.timeclock register -p 2009/3 # sessions in march 2009
-$ hledger -f sample.timeclock register -p weekly --depth 1 --empty # time summary by week
-```
-
-To generate time logs, ie to clock in and clock out, you could:
-
-- use emacs and the built-in timeclock.el, or the extended
- [timeclock-x.el](http://www.emacswiki.org/emacs/timeclock-x.el) and
- perhaps the extras in
- [ledgerutils.el](http://hub.darcs.net/simon/ledgertools/ledgerutils.el)
-
-- at the command line, use these bash aliases:
- `` shell alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" ``
-- or use the old `ti` and `to` scripts in the [ledger 2.x
- repository](https://github.com/ledger/ledger/tree/maint/scripts).
- These rely on a "timeclock" executable which I think is just the
- ledger 2 executable renamed.
diff --git a/site/doc/1.9/timedot.md b/site/doc/1.9/timedot.md
deleted file mode 100644
index ce238c186..000000000
--- a/site/doc/1.9/timedot.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# timedot format
-
-This doc is for version **1.9.1**. []{.docversions}
-
-\$toc\$
-
-## NAME
-
-Timedot - hledger's human-friendly time logging format
-
-## DESCRIPTION
-
-Timedot is a plain text format for logging dated, categorised quantities
-(of time, usually), supported by hledger. It is convenient for
-approximate and retroactive time logging, eg when the real-time
-clock-in/out required with a timeclock file is too precise or too
-interruptive. It can be formatted like a bar chart, making clear at a
-glance where time was spent.
-
-Though called "timedot", this format is read by hledger as commodityless
-quantities, so it could be used to represent dated quantities other than
-time. In the docs below we'll assume it's time.
-
-## FILE FORMAT
-
-A timedot file contains a series of day entries. A day entry begins with
-a date, and is followed by category/quantity pairs, one per line. Dates
-are hledger-style [simple dates](/journal.html#simple-dates) (see
-hledger\_journal(5)). Categories are hledger-style account names,
-optionally indented. As in a hledger journal, there must be at least two
-spaces between the category (account name) and the quantity.
-
-Quantities can be written as:
-
-- a sequence of dots (.) representing quarter hours. Spaces may
- optionally be used for grouping and readability. Eg: .... ..
-
-- an integral or decimal number, representing hours. Eg: 1.5
-
-- an integral or decimal number immediately followed by a unit symbol
- `s`, `m`, `h`, `d`, `w`, `mo`, or `y`, representing seconds,
- minutes, hours, days weeks, months or years respectively. Eg: 90m.
- The following equivalencies are assumed, currently: 1m = 60s, 1h =
- 60m, 1d = 24h, 1w = 7d, 1mo = 30d, 1y=365d.
-
-Blank lines and lines beginning with \#, ; or \* are ignored. An
-example:
-
-``` {.timedot}
-# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
-2016/2/1
-inc:client1 .... .... .... .... .... ....
-fos:haskell .... ..
-biz:research .
-
-2016/2/2
-inc:client1 .... ....
-biz:research .
-```
-
-Or with numbers:
-
-``` {.timedot}
-2016/2/3
-inc:client1 4
-fos:hledger 3
-biz:research 1
-```
-
-Reporting:
-
-``` {.shell}
-$ hledger -f t.timedot print date:2016/2/2
-2016/02/02 *
- (inc:client1) 2.00
-
-2016/02/02 *
- (biz:research) 0.25
-```
-
-``` {.shell}
-$ hledger -f t.timedot bal --daily --tree
-Balance changes in 2016/02/01-2016/02/03:
-
- || 2016/02/01d 2016/02/02d 2016/02/03d
-============++========================================
- biz || 0.25 0.25 1.00
- research || 0.25 0.25 1.00
- fos || 1.50 0 3.00
- haskell || 1.50 0 0
- hledger || 0 0 3.00
- inc || 6.00 2.00 4.00
- client1 || 6.00 2.00 4.00
-------------++----------------------------------------
- || 7.75 2.25 8.00
-```
-
-I prefer to use period for separating account components. We can make
-this work with an [account alias](/journal.html#rewriting-accounts):
-
-``` {.timedot}
-2016/2/4
-fos.hledger.timedot 4
-fos.ledger ..
-```
-
-``` {.shell}
-$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
- 4.50 fos
- 4.00 hledger:timedot
- 0.50 ledger
---------------------
- 4.50
-```
-
-Here is a
-[sample.timedot](https://raw.github.com/simonmichael/hledger/master/examples/sample.timedot).
-
-
-
-
-
-
-
diff --git a/site/doc/README b/site/doc/README
deleted file mode 100644
index b30185389..000000000
--- a/site/doc/README
+++ /dev/null
@@ -1,9 +0,0 @@
-Snapshots of past versions of the web content.
-
-At each major release, a new snapshot should be generated
-(with ./Shake site/doc/VERSION/.snapshot) and committed.
-
-Major releases should also be added to the "available versions" links in site.js.
-
-TODO: These were in this "doc/" subdirectory so that hakyll-std would see them, perhaps that's no longer necessary.
-
diff --git a/site/download.md b/site/download.md
deleted file mode 100644
index b83271c0b..000000000
--- a/site/download.md
+++ /dev/null
@@ -1,267 +0,0 @@
-# Download
-
-
-
-Here are some ways to install hledger - choose one that suits you.
-And please do [let us know](index.html#helpfeedback) or
-[update this page](https://github.com/simonmichael/hledger/blob/master/site/download.md)
-if you have any trouble.
-
-The current hledger release is **1.14.2**; here are the [release notes](release-notes.html).
-
-
-
-
-## Binary packages
-
-These prebuilt binaries will install quickly:
-
-| | | |
-|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Multiplatform** | | *Packaged version(s):* |
-| [Nix] *Linux, Mac* | **`nix-env -i -f https://github.com/NixOS/nixpkgs/archive/fe41fd.tar.gz -A hledger hledger-web hledger-ui`** *On Linux, note [#1030](https://github.com/simonmichael/hledger/issues/1030), [#1033](https://github.com/simonmichael/hledger/issues/1033)* |  |
-| [Docker] *Linux, Mac, Windows* | **`docker pull dastapov/hledger`** | [](https://hub.docker.com/r/dastapov/hledger) [more..](https://hub.docker.com/search?q=hledger&type=image&sort=updated_at&order=desc) |
-| [Homebrew] *Linux, Mac, Windows* | **`brew install hledger`** | [](https://formulae.brew.sh/formula/hledger) |
-| [Wine] *Linux, Mac, FreeBSD* | *Install Wine & use the Windows binary below* | |
-| **Windows** | | |
-| Windows binaries | **[hledger.zip]***from Appveyor CI* or [latest dev build](https://ci.appveyor.com/api/projects/simonmichael/hledger/artifacts/hledger.zip?branch=master)*may fix Windows 7 [#1039](https://github.com/simonmichael/hledger/issues/1039)* | [](https://ci.appveyor.com/project/simonmichael/hledger/builds/22955930/artifacts) [](https://ci.appveyor.com/project/simonmichael/hledger/build/artifacts) |
-| **GNU/Linux** | | |
-| Arch | **`pacman -S hledger hledger-ui hledger-web`** | [](https://www.archlinux.org/packages/?sort=&q=hledger) |
-| Gentoo | **`sudo layman -a haskell && sudo emerge hledger hledger-ui hledger-web`** | [](https://gentoo.zugaina.org/Search?search=hledger) |
-| Debian | **`sudo apt install hledger hledger-ui hledger-web`** | [](https://packages.debian.org/unstable/hledger) [](https://packages.debian.org/testing/hledger) [](https://packages.debian.org/stable/hledger) [](https://packages.debian.org/oldstable/hledger) [more..](https://packages.debian.org/search?searchon=names&keywords=hledger) |
-| Ubuntu | **`sudo apt install hledger hledger-ui hledger-web`** | [](https://packages.ubuntu.com/disco/hledger) [](https://packages.ubuntu.com/cosmic/hledger) [](https://packages.ubuntu.com/bionic/hledger) [](https://packages.ubuntu.com/xenial/hledger) [](https://packages.ubuntu.com/trusty/hledger) [more..](https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=hledger) |
-| Fedora | **`sudo dnf install hledger`** | [](https://apps.fedoraproject.org/packages/hledger/) [](https://apps.fedoraproject.org/packages/hledger/) [](https://apps.fedoraproject.org/packages/hledger/) [](https://apps.fedoraproject.org/packages/hledger/) [](https://apps.fedoraproject.org/packages/hledger/) [more..](https://apps.fedoraproject.org/packages/s/hledger) |
-| Void | **`xbps-install -S hledger hledger-ui hledger-web`** | [](https://voidlinux.org/packages/?q=hledger) |
-| **BSD** | | |
-| [OpenBSD WIP](https://github.com/jasperla/openbsd-wip#how-to-use-this-tree) | **`make -C /usr/ports/openbsd-wip/productivity/hledger install`** | [](https://github.com/jasperla/openbsd-wip/tree/master/productivity/hledger) [more..](https://github.com/jasperla/openbsd-wip/tree/master/productivity) |
-| **Other** | | |
-| [Sandstorm] *Community/private cloud platform* | **[HLedger Web app](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90)** |  |
-
-
-
-[Docker]: https://www.docker.com/products/docker-desktop
-[Homebrew]: https://brew.sh
-[Linuxbrew]: https://linuxbrew.sh
-[Nix]: https://nixos.org/nix
-[Sandstorm]: https://sandstorm.io
-[cabal]: https://www.haskell.org/cabal
-[hledger.zip]: https://ci.appveyor.com/api/buildjobs/gudfa3gv7pj94ab0/artifacts/hledger.zip
-[stack]: https://haskell.fpcomplete.com/get-started
-[Wine]: https://www.winehq.org
-
-[notes]::
-
-[debian contact]: debian-haskell@lists.debian.org (& Clint)
-[docker contact]: @adept
-[homebrew/linuxbrew contact]: @albins, @simonmichael
-[nix contact]: @peti
-[sandstorm contact]: @ocdtrekkie, @AaronM04, @ndarilek
-[stack/cabal contact]: @simonmichael
-[windows binaries contact]: @simonmichael
-
-[nix install variations]::
-[nix-env -i hledger hledger-ui hledger-web]::
-[nix-env -i hledger-1.14.1 hledger-ui-1.14 hledger-web-1.14]::
-[nix-env -i -f '' -A hledger hledger-ui hledger-web]::
-[fetches latest unstable]::
-[nix-env -i -f channel:nixos-unstable -A hledger hledger-ui hledger-web]::
-[pinned version]::
-[nix-env -i -f https://github.com/NixOS/nixpkgs/archive/9c74e2.tar.gz -A hledger hledger-ui hledger-web]::
-
-[nixpkgs]: https://hydra.nixos.org/project/nixpkgs
-[nix changes]: https://github.com/NixOS/nixpkgs/search?o=desc&q=hledger&s=committer-date&type=Commits
-[nix mentions]: https://search.nix.gsc.io/?q=hledger
-[nix hydra jobs]: http://hydra.nixos.org/search?query=hledger
-[nix stable mac jobs]: https://hydra.nixos.org/jobset/nixpkgs/nixpkgs-19.03-darwin#tabs-jobs -> hledger.
-[nix unstable jobs]: https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs -> hledger.
-[nix unstable linux builds]: https://hydra.nixos.org/job/nixpkgs/trunk/hledger.x86_64-linux
-[nix unstable mac builds]: https://hydra.nixos.org/job/nixpkgs/trunk/hledger.x86_64-darwin
-
-[repology badges, sometimes out of date]: https://repology.org/project/hledger/badges
-[custom badges]: https://shields.io
-
-[hledger-install.sh]: https://github.com/simonmichael/hledger/blob/master/hledger-install/hledger-install.sh
-
-
-
-## Building from source
-
-You can build hledger wherever the Glasgow Haskell Compiler is supported.
-This can take a while, but it's normally a reliable process.
-Use one of the methods below to build the current hledger release.
-The hledger-install script requires only bash and installs the required tools.
-Or, you can install stack or cabal yourself and deal with them directly.
-
-| | |
-|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| | |
-| [hledger-install.sh] *Linux, Mac, WSL* | **`curl -s https://raw.githubusercontent.com/simonmichael/hledger/master/hledger-install/hledger-install.sh -O`** **`less hledger-install.sh`** *# satisfy yourself that the script is safe* **`bash hledger-install.sh`** *# runs stack or cabal, installing stack if needed* |
-| [stack] *Linux, Mac, Windows* | **`stack install --resolver=lts-14.1 hledger hledger-web hledger-ui --verbosity=error`** *# installs GHC if needed.* |
-| [cabal] *Linux, Mac, Windows* | **`cabal v2-update && cabal v2-install hledger-1.14.2 hledger-web-1.14.1 hledger-ui-1.14.2`** |
-
-On Windows, hledger-ui is not available and should be omitted from the commands above (except, it probably works in WSL).
-
-#### Resource usage
-
-Building Haskell programs typically involves downloading and compiling and
-optimising a lot of Haskell libraries.
-If you are doing it for the first time, know that building hledger could take
-1-2G of disk, 1-2G of free memory, and up to an hour (though usually it's much less).
-It's fine to kill a build and restart it later;
-and your later builds will be much faster.
-
-If needed, you can save time/memory/disk space by omitting the
-[hledger-web](http://hackage.haskell.org/package/hledger-web) and
-[hledger-ui](http://hackage.haskell.org/package/hledger-ui) packages
-from the stack or cabal commands above.
-To estimate the build time remaining, add `--dry-run`.
-
-#### Using stack
-
-The latest version of stack (2.1.3 as of 2019-07) will likely work best, so we recommend it.
-If you have an older version, you can usually upgrade quickly with `stack upgrade`.
-Versions older than 1.7.1 will definitely not work.
-On Windows, the 64-bit version of stack is recommended.
-
-
-
-
-
-
-
-#### C libraries may be required
-
-A few C libraries, like terminfo, are required but not installed by the commands above.
-When such C libs are missing, the build will fail at the end with a link error
-such as "/bin/ld.gold: error: cannot find -ltinfo".
-To solve this, just install the appropriate system package(s) and run the build command again.
-
-These package names vary by platform. If you don't see your platform below,
-do a web search for the link error message (and send updates for this list):
-
-|
-|-----------------|-------------------------------------------------------------------
-|
-| Debian, Ubuntu: | **`sudo apt install -y libtinfo-dev`**
-| Fedora, RHEL: | **`sudo dnf install -y gmp-devel ncurses-devel`**
-
-
-
-
-#### Platform-specific build issues
-
-Here are some known build issues and workarounds on certain platforms:
-
-
-[nix: nix install on linux can fail with "cloning builder process: Operation not permitted"](https://github.com/simonmichael/hledger/issues/1030)\
-[nix: on Linux, nix-installed hledger won't handle non-ascii data](https://github.com/simonmichael/hledger/issues/1033)\
-[windows: hledger-web fails to start on Windows 7](https://github.com/simonmichael/hledger/issues/1039)\
-[windows: hledger-ui is not available](https://github.com/jtdaugherty/vty/pull/1#issuecomment-297143444)\
-[windows: build hangs using GHC 8.6.3](https://github.com/well-typed/generics-sop/issues/93)\
-[windows: cross-environment non-ascii display issues](https://github.com/simonmichael/hledger/issues/961#issuecomment-471229644)\
-[arch: haskell build advice from Arch wiki](https://wiki.archlinux.org/index.php/Haskell)\
-[arch: No information found for ghc-8.4.2](https://github.com/commercialhaskell/stack/issues/3984)\
-
-[freebsd 12: no cabal file found](https://github.com/simonmichael/hledger/issues/709)\
-[openbsd 6: exec permission denied](https://deftly.net/posts/2017-10-12-using-cabal-on-openbsd.html)\
-[openbsd: how to get stack](https://github.com/commercialhaskell/stack/issues/2822#issuecomment-318892816)\
-
-
-#### Setting $PATH may be required
-
-After building you may see a message about where the executables were installed.
-After installation, make sure this install directory is configured in your shell's \$PATH
-(preferably near the start of it, in case you have older hledger binaries lying around).
-The install directory is:
-
-| | on non-Windows systems | on Windows
-|--------------------|------------------------|------------------------------------------
-| If stack was used | `$HOME/.local/bin` | `%APPDATA%\local\bin` (eg `C:\Users\Joe\AppData\Roaming\local\bin`)
-| If cabal was used | `$HOME/.cabal/bin` | `%APPDATA%\cabal\bin`
-
-How to configure \$PATH is platform- and shell-specific.
-If you are using bash, this should take care of it:
-
- **`echo "export PATH=~/.local/bin:~/.cabal/bin:$PATH" >> ~/.bashrc && source ~/.bashrc`**
-
-#### Test the installation
-
-After a successful build and install, you should be able to run the
-hledger tools (whichever ones you installed) and see the expected versions:
-
- `$`**`hledger --version`**\
- `hledger 1.14.2`\
- `$`**`hledger-ui --version`**\
- `hledger-ui 1.14.2`\
- `$`**`hledger web --version`**\
- `hledger-web 1.14.1`\
- `$`**`hledger iadd --version`**\
- `This is hledger-iadd version 1.3.9`\
-
-And you can check that the unit tests pass (just for fun):
-
- `$`**`hledger test`**\
- `...`\
- `✅ 198 tests passed, no failures! 👍 🎉`\
-
-
-
-### Building the development version
-
-The master branch in hledger's git repo is stable enough for daily use,
-and includes the [latest improvements](https://github.com/simonmichael/hledger/commits/master).
-You'll need [git](https://en.wikipedia.org/wiki/Git) and
-[`stack`](http://haskell-lang.org/get-started) or [cabal](https://www.haskell.org/cabal/).
-This will build and install all of the main hledger tools using stack:
-
- **`git clone https://github.com/simonmichael/hledger`**\
- **`cd hledger`**\
- **`stack install`**\
-
-cabal users may find the `cabal-install.sh` or `cabal.project` files useful.
-
-The --version output of development builds has a .99 suffix meaning "dev".
-So 1.14.99 means "1.15-dev", the in-development version of 1.15.
-
-### Building the development version with docker
-
-You can also build development version in the docker container, which will take care of pulling
-all the necessary tools and dependencies:
-
- **`git clone https://github.com/simonmichael/hledger`**\
- **`cd hledger/docker`**\
- **`./build.sh`**\
-
-This will build image tagged `hledger` with just the latest binaries inside.
-
-If you want to keep all the build artifacts and use the resulting image for hledger development, use
-`build-dev.sh` instead.
diff --git a/site/files/README b/site/files/README
deleted file mode 100644
index d8f4db382..000000000
--- a/site/files/README
+++ /dev/null
@@ -1 +0,0 @@
-Non-revision controlled static content goes here. Downloads, etc.
\ No newline at end of file
diff --git a/site/fonts/glyphicons-halflings-regular.eot b/site/fonts/glyphicons-halflings-regular.eot
deleted file mode 100644
index 423bd5d3a..000000000
Binary files a/site/fonts/glyphicons-halflings-regular.eot and /dev/null differ
diff --git a/site/fonts/glyphicons-halflings-regular.svg b/site/fonts/glyphicons-halflings-regular.svg
deleted file mode 100644
index 446948874..000000000
--- a/site/fonts/glyphicons-halflings-regular.svg
+++ /dev/null
@@ -1,229 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/site/fonts/glyphicons-halflings-regular.ttf b/site/fonts/glyphicons-halflings-regular.ttf
deleted file mode 100644
index a498ef4e7..000000000
Binary files a/site/fonts/glyphicons-halflings-regular.ttf and /dev/null differ
diff --git a/site/fonts/glyphicons-halflings-regular.woff b/site/fonts/glyphicons-halflings-regular.woff
deleted file mode 100644
index d83c539b8..000000000
Binary files a/site/fonts/glyphicons-halflings-regular.woff and /dev/null differ
diff --git a/site/images/balance-q-inc.png b/site/images/balance-q-inc.png
deleted file mode 100644
index 3e5a5bf36..000000000
Binary files a/site/images/balance-q-inc.png and /dev/null differ
diff --git a/site/images/coins.svg b/site/images/coins.svg
deleted file mode 100644
index 529ac5001..000000000
--- a/site/images/coins.svg
+++ /dev/null
@@ -1,4992 +0,0 @@
-
-
-
-
diff --git a/site/images/coins2-248.png b/site/images/coins2-248.png
deleted file mode 100644
index 1b12c204f..000000000
Binary files a/site/images/coins2-248.png and /dev/null differ
diff --git a/site/images/coins2.png b/site/images/coins2.png
deleted file mode 100644
index 29ad9b233..000000000
Binary files a/site/images/coins2.png and /dev/null differ
diff --git a/site/images/data-model.png b/site/images/data-model.png
deleted file mode 100644
index 81c0cc38f..000000000
Binary files a/site/images/data-model.png and /dev/null differ
diff --git a/site/images/hledger-charts-2.png b/site/images/hledger-charts-2.png
deleted file mode 100644
index 725f3d2a1..000000000
Binary files a/site/images/hledger-charts-2.png and /dev/null differ
diff --git a/site/images/hledger-lib-api.png b/site/images/hledger-lib-api.png
deleted file mode 100644
index e061cb56e..000000000
Binary files a/site/images/hledger-lib-api.png and /dev/null differ
diff --git a/site/images/hledger-screen-1.png b/site/images/hledger-screen-1.png
deleted file mode 100644
index f7eb9eb37..000000000
Binary files a/site/images/hledger-screen-1.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png b/site/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png
deleted file mode 100644
index 3f6fa1c28..000000000
Binary files a/site/images/hledger-ui/hledger-ui-bcexample-acc-etrade-cash.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png b/site/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png
deleted file mode 100644
index dff91d997..000000000
Binary files a/site/images/hledger-ui/hledger-ui-bcexample-acc-etrade.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-bcexample-acc.png b/site/images/hledger-ui/hledger-ui-bcexample-acc.png
deleted file mode 100644
index 6e3c8d88e..000000000
Binary files a/site/images/hledger-ui/hledger-ui-bcexample-acc.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-sample-acc-greenterm.png b/site/images/hledger-ui/hledger-ui-sample-acc-greenterm.png
deleted file mode 100644
index 50624a623..000000000
Binary files a/site/images/hledger-ui/hledger-ui-sample-acc-greenterm.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-sample-acc.png b/site/images/hledger-ui/hledger-ui-sample-acc.png
deleted file mode 100644
index 6c3fabfd3..000000000
Binary files a/site/images/hledger-ui/hledger-ui-sample-acc.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-sample-acc2.png b/site/images/hledger-ui/hledger-ui-sample-acc2.png
deleted file mode 100644
index 2e756e2b4..000000000
Binary files a/site/images/hledger-ui/hledger-ui-sample-acc2.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-sample-reg.png b/site/images/hledger-ui/hledger-ui-sample-reg.png
deleted file mode 100644
index 4d812127d..000000000
Binary files a/site/images/hledger-ui/hledger-ui-sample-reg.png and /dev/null differ
diff --git a/site/images/hledger-ui/hledger-ui-sample-txn.png b/site/images/hledger-ui/hledger-ui-sample-txn.png
deleted file mode 100644
index 83bcae2af..000000000
Binary files a/site/images/hledger-ui/hledger-ui-sample-txn.png and /dev/null differ
diff --git a/site/images/hledger-web-journal.png b/site/images/hledger-web-journal.png
deleted file mode 100644
index eb2bf5ee6..000000000
Binary files a/site/images/hledger-web-journal.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/add.png b/site/images/hledger-web/normal/add.png
deleted file mode 100644
index e004f7a3f..000000000
Binary files a/site/images/hledger-web/normal/add.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/help.png b/site/images/hledger-web/normal/help.png
deleted file mode 100644
index 2967e8279..000000000
Binary files a/site/images/hledger-web/normal/help.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/help2.png b/site/images/hledger-web/normal/help2.png
deleted file mode 100644
index afd0b7bf2..000000000
Binary files a/site/images/hledger-web/normal/help2.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/journal-sidebar.png b/site/images/hledger-web/normal/journal-sidebar.png
deleted file mode 100644
index 672001c77..000000000
Binary files a/site/images/hledger-web/normal/journal-sidebar.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/journal.png b/site/images/hledger-web/normal/journal.png
deleted file mode 100644
index 47bda96be..000000000
Binary files a/site/images/hledger-web/normal/journal.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/journal2.png b/site/images/hledger-web/normal/journal2.png
deleted file mode 100644
index 727634668..000000000
Binary files a/site/images/hledger-web/normal/journal2.png and /dev/null differ
diff --git a/site/images/hledger-web/normal/register.png b/site/images/hledger-web/normal/register.png
deleted file mode 100644
index ea06bb94c..000000000
Binary files a/site/images/hledger-web/normal/register.png and /dev/null differ
diff --git a/site/images/hledger-web/small/add.png b/site/images/hledger-web/small/add.png
deleted file mode 100644
index db870dd1e..000000000
Binary files a/site/images/hledger-web/small/add.png and /dev/null differ
diff --git a/site/images/hledger-web/small/help.png b/site/images/hledger-web/small/help.png
deleted file mode 100644
index 20a6cd066..000000000
Binary files a/site/images/hledger-web/small/help.png and /dev/null differ
diff --git a/site/images/hledger-web/small/help2.png b/site/images/hledger-web/small/help2.png
deleted file mode 100644
index ab3e4898b..000000000
Binary files a/site/images/hledger-web/small/help2.png and /dev/null differ
diff --git a/site/images/hledger-web/small/journal-sidebar.png b/site/images/hledger-web/small/journal-sidebar.png
deleted file mode 100644
index da330e06a..000000000
Binary files a/site/images/hledger-web/small/journal-sidebar.png and /dev/null differ
diff --git a/site/images/hledger-web/small/journal-sidebar2.png b/site/images/hledger-web/small/journal-sidebar2.png
deleted file mode 100644
index 978458dc4..000000000
Binary files a/site/images/hledger-web/small/journal-sidebar2.png and /dev/null differ
diff --git a/site/images/hledger-web/small/journal.png b/site/images/hledger-web/small/journal.png
deleted file mode 100644
index 5034e8508..000000000
Binary files a/site/images/hledger-web/small/journal.png and /dev/null differ
diff --git a/site/images/hledger-web/small/journal2.png b/site/images/hledger-web/small/journal2.png
deleted file mode 100644
index 224b5a6ec..000000000
Binary files a/site/images/hledger-web/small/journal2.png and /dev/null differ
diff --git a/site/images/hledger-web/small/register.png b/site/images/hledger-web/small/register.png
deleted file mode 100644
index 502a578fb..000000000
Binary files a/site/images/hledger-web/small/register.png and /dev/null differ
diff --git a/site/images/hledger-web/small/register2.png b/site/images/hledger-web/small/register2.png
deleted file mode 100644
index 086584e0e..000000000
Binary files a/site/images/hledger-web/small/register2.png and /dev/null differ
diff --git a/site/images/linux.png b/site/images/linux.png
deleted file mode 100644
index ea183721a..000000000
Binary files a/site/images/linux.png and /dev/null differ
diff --git a/site/images/mac.png b/site/images/mac.png
deleted file mode 100644
index 0e03986fe..000000000
Binary files a/site/images/mac.png and /dev/null differ
diff --git a/site/images/manual.png b/site/images/manual.png
deleted file mode 100644
index c175c327c..000000000
Binary files a/site/images/manual.png and /dev/null differ
diff --git a/site/images/sshot.png b/site/images/sshot.png
deleted file mode 100644
index 6c8fe06b7..000000000
Binary files a/site/images/sshot.png and /dev/null differ
diff --git a/site/images/watchhours.png b/site/images/watchhours.png
deleted file mode 100644
index f790e5369..000000000
Binary files a/site/images/watchhours.png and /dev/null differ
diff --git a/site/images/windows.png b/site/images/windows.png
deleted file mode 100644
index a62d3a64a..000000000
Binary files a/site/images/windows.png and /dev/null differ
diff --git a/site/index.md b/site/index.md
deleted file mode 100644
index 3c52b0351..000000000
--- a/site/index.md
+++ /dev/null
@@ -1,262 +0,0 @@
----
-title: home
-...
-
-
-
-
-
-
-
hledger
-
-Robust plain text accounting.
-
-
-
-
-
-
-
-hledger
-is an elegant, versatile accounting program, for tracking money, time, or other commodities
-using plain text records.
-It is a fast, dependable, secure alternative to Quicken, Xero, GnuCash etc.,
-
-accessible from command line, terminal or web browser.
-Compared to other plain text accounting tools, it is more robust and intuitive.
-Good docs and real world usefulness are a top priority.
-
-hledger is cross platform GNU GPLv3 free software, written in Haskell.
-The project is led by Simon Michael, with 100+ contributors.
-I've been building and relying on hledger since 2007;
-I hope you too will find it helpful in mastering your time and money.
-Let us know!
-
-
-
-
-
-
-## Introduction
-
-**[What is hledger ?](intro.html)**\
-More about hledger's features.
-
-**[accounting?](Accounting-links.html)**\
-Tracking your use of valuable commodities, such as money or time, for increased awareness and effectiveness.\
-
-**[plain text accounting?](http://plaintextaccounting.org)** →\
-Using plain text data formats and version control for reliable, transparent accounting.\
-
-
-## Reference
-
-**[Release notes](release-notes.html)**\
-What's new in each hledger version.
-
-**[User manual](manual.html)**\
-The main hledger manuals combined on one page for easy searching.
-Includes:
-
-
-[hledger](hledger.html)\
-the command-line UI
-
-[hledger-ui](hledger-ui.html)\
-a curses-style UI
-
-[hledger-web](hledger-web.html)\
-a web UI
-
-[hledger-api](hledger-api.html)\
-a HTTP JSON server
-
-[journal format](journal.html)\
-hledger's native file format
-
-[csv format](csv.html)\
-hledger's CSV import system
-
-[timeclock format](timeclock.html)\
-a file format for precise time logging
-
-[timedot format](timedot.html)\
-a file format for human-friendly approximate time logging
-
-
-
-
-## Contribute
-
-**[Contributor Guide](CONTRIBUTING.html)**\
-What's to do and how to do it
-
-**Help fund hledger!**\
-Making good software and documentation costs a lot.
-
-
-
-
-\
-
-
-
-
diff --git a/site/intro.md b/site/intro.md
deleted file mode 100644
index 092026dc9..000000000
--- a/site/intro.md
+++ /dev/null
@@ -1,167 +0,0 @@
----
-title: intro
-...
-
-
-
-
-
-
-## What is hledger ?
-
-It's a [plain text accounting](http://plaintextaccounting.org) program,
-for tracking money, time, or other commodities,
-on unix, mac and windows.
-
-With simple yet powerful functionality accessed from command line, terminal or web browser,
-it is a dependable, cross-platform alternative to Quickbooks, GnuCash, spreadsheets etc.
-
-
-### plain text ? How does that work ?
-
-**Step 1:**
-Record your transactions in a plain text file.
-(Use hledger's interactive assistant.. the web interface.. any text editor.. a shell alias.. CSV/OFX import..)
-
-
-
-
-**Step 2:**
-Ask hledger about your accounts.. transactions.. balances.. currencies.. monthly averages.. budgets.. market values..
-You can start very simply, and get more sophisticated as you learn more about double-entry accounting.
-
-There is an enthusiastic and growing community practising this way of accounting.
-which can be quite educational and enjoyable.
-If you'd like more background,
-we have collected many useful resources at **[plaintextaccounting.org](http://plaintextaccounting.org)**.
-
-Read on for more about hledger, or if you're keen to get going,
-**[download](download.html)** it and start the **[tutorial](step-by-step.html)** now!
-
-
-
-
-
-
-
-
-
-
-
-### hledger is Free software
-
-
-hledger is Free software, created by [Simon Michael](http://joyful.com)
-and released under GNU GPLv3+.
-
-I have been actively developing and using hledger since 2007,
-together with 80+ other committers and an unknown number of usually happy-sounding users.
-
-
-
-### inspired by Ledger
-
-hledger is a Haskell [reimplementation](https://github.com/simonmichael/hledger/wiki/FAQ#hledger--ledger)
-of the excellent [Ledger](http://ledger-cli.org).
-It remains substantially compatible with Ledger, and if you wish you can keep your data compatible with both.
-Read more about the [differences](https://github.com/simonmichael/hledger/wiki/FAQ#features) in the FAQ.
-
-
-
-
-
-### a command-line tool, that respects your data
-
-
-
-hledger is first a command-line tool.
-Your data lives in a plain text journal file which you can edit
-any way you wish; hledger reads that file and produces reports of
-various kinds, without changing your data. (It can help you add new
-transactions, but does not change existing ones.)
-
-
-
-
-### a console UI
-
-
-hledger also provides a curses-style [console interface](manual#ui)
-that lets you review account balances and transactions quickly and without fuss.
-([screencast](https://asciinema.org/a/29665))
-
-
-
-### a web UI
-
-
-
-And, a zero-setup
-[web app](hledger-web.html) for a more point-and-click experience
-([demo](http://demo.hledger.org)).
-Run it on your local machine, or on a server,
-or set it up with a few clicks on
-[Sandstorm](https://apps.sandstorm.io/app/8x12h6p0x0nrzk73hfq6zh2jxtgyzzcty7qsatkg7jfg2mzw5n90).
-
-There's also a [UI running in the browser](https://hledger.alhur.es) (hledger compiled with GHCJS).
-This is a prototype, but it's nice sandbox for trying out hledger's journal syntax.
-
-
-
-
-### a Haskell application and library
-
-
-
-hledger is written in Haskell, a modern, highly-regarded
-programming language which contributes to hledger's robustness,
-performance and long-term maintainability. Most functionality is
-exposed as
-[reusable](http://hackage.haskell.org/package/hledger-lib)
-[Haskell](http://hackage.haskell.org/package/hledger)
-[libraries](http://hackage.haskell.org/package/hledger-web), making it
-easy to write your own hledger-compatible
-[scripts](more-docs.html#scripting-examples), [add-ons](manual.html#add-ons) and
-applications.
- [](https://travis-ci.org/simonmichael/hledger)
-
-
-
-
-
-
-
-
-
-
-
-
-
-### fully documented
-
-We practice documentation-driven development.
-Every feature must be **[well documented](index.html#reference)**,
-and getting started must be easy.
-
-
-
-
-### focussed on serving users
-
-hledger strives to be usable, practical and to provide real-world value.
-Intuitive features, bug-free operation and complete, accurate documentation are top goals.
-Currently it is particularly suited to techies, ie users who appreciate the
-power of text files, revision control, scriptability and double entry
-accounting.
-
-
").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
diff --git a/site/js/site.js b/site/js/site.js
deleted file mode 100644
index 9423b8915..000000000
--- a/site/js/site.js
+++ /dev/null
@@ -1,49 +0,0 @@
-$(document).ready( function() {
- addDocVersions();
- highlightCurrentDocVersion();
-});
-
-function addDocVersions() {
- var parts = window.location.pathname.split('/');
- var page = parts.length > 0 ? parts[parts.length-1].slice(0,-5) : '';
- var hash = window.location.hash.slice(1);
- var topic = (page=='manual' && hash) ? hash : page;
- var newhash = (page=='manual' && topic!='manual') ? ('#'+topic) : '';
- var newpage = page=='manual' ? page : topic;
- var relpath1 = parts.includes("doc") ? "../../" : "";
- var relpath = parts.includes("doc") ? "../" : "doc/";
- $('.docversions').html('Available versions: \
- dev \
-| 1.14 \
-| 1.13 \
-| 1.12 \
-| 1.11 \
-| 1.10 \
-| 1.9 \
-| 1.5 \
-| 1.4 \
-| 1.3 \
-| 1.2 \
-| 1.1 \
-| 1.0 \
-| 0.27 \
-');
-}
-
-function highlightCurrentDocVersion() {
- $('.docversions').each( function() {
- var parts = window.location.pathname.split('/');
- var dir = parts.length > 1 ? parts[parts.length-2] : '';
- var ver = $.isNumeric(dir) ? dir : 'dev';
- $(this).find('a').each( function() {
- if ($(this).html() == ver)
- $(this)
- // .removeAttr('href')
- // .css('text-decoration', 'none')
- // .css('color', 'initial')
- .css('font-weight','bold')
- // .hide()
- ;
- });
- });
-}
diff --git a/site/ledgertips.md b/site/ledgertips.md
deleted file mode 100644
index 5c1e1248e..000000000
--- a/site/ledgertips.md
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-The [\@LedgerTips](https://twitter.com/LedgerTips) Twitter account posts
-tips and tricks for all the
-[Ledger ports and work-alikes](https://github.com/ledger/ledger/wiki/Ports)
-(inspired by [HaskellTips](https://twitter.com/HaskellTips)).
-
-All *ledger users are invited to post tips! Contact Simon (sm) on
-#ledger with suggestions, or to get login details to become a guest
-host. Posts should include the `#ledgercli` hash tag. Links to longer
-tips are also welcome.
diff --git a/site/release-notes.md b/site/release-notes.md
deleted file mode 100644
index 6c602d10a..000000000
--- a/site/release-notes.md
+++ /dev/null
@@ -1,4163 +0,0 @@
-
-
-
-
-
-# Release notes
-
-
-### hledger-install
-
-The [hledger installer](download.html#b1.-with-hledger-install)
-is updated as needed; here are the
-[latest changes](https://github.com/simonmichael/hledger/commits/master/hledger-install/hledger-install.sh).
-
-
-
-
-## Latest minor release
-
-These packages have had minor updates since the last major release:
-
-\
-\
-\
-\
-
-
-
-## 2019/03/01 hledger 1.14
-
-***inclusive balance assertions, commodities command, --invert option,
-JSON get/add support in hledger-web
-***
-([announcement](https://groups.google.com/d/topic/hledger/f4Mir3PLooI/discussion))
-
- [project](#project-wide-changes-for-1.14)
-| [hledger](#hledger-1.14-1)
-| [hledger-ui](#hledger-ui-1.14)
-| [hledger-web](#hledger-web-1.14)
-| [hledger-api](#hledger-api-1.14)
-| [hledger-lib](#hledger-lib-1.14)
-| [credits](#credits-1.14)
-
-### project-wide changes for 1.14
-
-- hledger.org website: now uses https, home page updates,
- download page improved package list with status badges.
- Also the github wiki pages are now rendered as part of hledger.org,
- like the main site pages (with pandoc markdown and tables of contents).
- Building the site now requires that a copy of the wiki is checked out
- under wiki/.
-
-- bash completion support: removed duplicate options, added new
- options, stopped listing -h as a command, added some completion for
- external addon commands.
-
-- release automation improvements
-
-- makefile cleanups; make site-liverender helps with local site preview
-
-### hledger 1.14
-
-- journal: subaccount-including balance assertions have been
- added, with syntax =* and ==* (experimental) (#290)
-
-- new commodities command lists commodity symbols
-
-- new --invert option flips sign of amounts in reports
-
-### hledger-ui 1.14
-
-- use hledger 1.14
-
-### hledger-web 1.14
-
-- serve the same JSON-providing routes as in hledger-api:
- ```
- /accountnames
- /transactions
- /prices
- /commodities
- /accounts
- /accounttransactions/ACCT
- ```
- And allow adding a new transaction by PUT'ing JSON (similar to the
- output of /transactions) to /add. This requires the `add` capability
- (which is enabled by default). Here's how to test with curl:
- ```
- $ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @in.json; echo
- ```
- (#316)
-
-- fix unbalanced transaction prevention in the add form
-
-- fix transaction-showing tooltips (#927)
-
-- manual updates: document --capabilities/--capabilities-header and
- editing/uploading/downloading.
-
-- use hledger 1.14
-
-### hledger-api 1.14
-
-- use hledger 1.14
-
-### hledger-lib 1.14
-
-- added:
- transaction, [v]post*, balassert* constructors, for tests etc.
-
-- renamed:
- porigin -> poriginal
-
-- refactored:
- transaction balancing & balance assertion checking (#438)
-
-### credits 1.14
-
-Release contributors:
-Simon Michael,
-Jakob Schöttl,
-Jakub Zárybnický.
-
-## 2019/02/01 hledger 1.13
-
-***Unified command CLI help/manuals, bash completions, docker support,
-improved budget report, --transpose, new account types syntax,
-usability & bug fixes.
-***
-([announcement](https://groups.google.com/d/topic/hledger/ffkwwkcHmmU/discussion))
-
- [project](#project-wide-changes-for-1.13)
-| [hledger](#hledger-1.13-1)
-| [hledger-ui](#hledger-ui-1.13)
-| [hledger-web](#hledger-web-1.13)
-| [hledger-api](#hledger-api-1.13)
-| [hledger-lib](#hledger-lib-1.13)
-| [credits](#credits-1.13)
-
-### project-wide changes for 1.13
-
-- packaging: A docker image providing the main hledger tools is now
- linked on the download page. This is another way to get up-to-date
- hledger tools without building them yourself (and, a way to run
- hledger-ui on windows ?) (Dmitry Astapov, Simon Michael)
-
-- doc: fixed pandoc typography conversion in web manuals. Eg `--` was
- being rendered as en-dash. ([#954](https://github.com/simonmichael/hledger/issues/954)).
-
-Developers:
-
-- developer docs have moved from the wiki into CONTRIBUTING.md ([#920](https://github.com/simonmichael/hledger/issues/920))
-
-- new streamlined changelog update process. Shake targets:
-
- ./Shake changelogs
- ./Shake CHANGES.md
- ./Shake CHANGES.md-dry
- ./Shake PKG/CHANGES.md
- ./Shake PKG/CHANGES.md-dry
-
- update the project-wide and/or package changelogs, inserting new
- commits (touching the respective directory, since the tag version or
- commit hash which is the first word in the changelog's previous top
- heading) at the top, formatted as changelog entries.
-
-- ./Shake PKG - builds a package plus its embedded docs.
- ./Shake build - builds all the packages and their embedded docs.
- ("stack build PKG" does not notice changes in embedded doc files.)
-
-- make ghci-shake - loads Shake.hs in ghci
-
-- make tags - includes doc source files, hpack/cabal files, Shake.hs
-
-- make site-livereload - opens a reloading browser view on the website html
- (requires `livereloadx`)
-
-- added a Dockerfile and helper scripts (Dmitry Astapov)
-
-- doc files and hpack/cabal files are included in TAGS again
-
-### hledger 1.13
-
-- cli: reorganised commands list. Addons now have a + prefix.
-
-- cli: the command line help and manual section for all hledger's
- commands are now consistent, and generated from the same source.
-
-- cli: comprehensive bash completion support is now provided (in
- shell-completion/). See how-to in the Cookbook. (Jakob Schöttl)
-
-- balance --budget: budget amounts now aggregate hierarchically, like
- account balances. Unbudgeted accounts can be shown with -E/--empty
- (along with zero-balance accounts), and the --show-budgeted flag has
- been dropped. (Dmitry Astapov)
-
-- balance: new --transpose flag switches the rows and columns of
- tabular balance reports (in txt and csv output formats). (Dmitry
- Astapov)
-
-- close: generated balance assertions now have exact amounts with all
- decimal digits, ignoring display precision. Also, balance assertion
- amounts will no longer contain prices.
- ([#941](https://github.com/simonmichael/hledger/issues/941),
- [#824](https://github.com/simonmichael/hledger/issues/824),
- [#958](https://github.com/simonmichael/hledger/issues/958))
-
-- files: now shows up in the commands list
-
-- import: be silent when there's nothing to import
-
-- roi: percentages smaller than 0.01% are displayed as zero (Dmitry
- Astapov)
-
-- stats, ui: correct file order is preserved when using --auto
- ([#949](https://github.com/simonmichael/hledger/issues/949))
-
-- journal: account directive: the account name can now be followed by
- a comment on the same line
-
-- journal: account directive: account types for the bs/bse/cf/is
- commands can now be set with a `type:` tag, whose value is `Asset`,
- `Liability`, `Equity`, `Revenue`, `Expense`, `A`, `L`, `E`, `R` or
- `X` (case-insensitive). The previous syntax (`account assets A`) is
- now deprecated.
-
-- journal: account directive: account sort codes like `account 1000`
- (introduced in 1.9, deprecated in 1.11) are no longer supported.
-
-- journal: transaction modifiers (auto postings) can affect periodic
- transactions (--auto can add postings to transactions generated with
- --forecast). (Dmitry Astapov)
-
-- journal: balance assertion errors now show exact amounts with all
- decimal digits. Previously it was possible, in case of a commodity
- directive limiting the display precision, to have a balance
- assertion error with asserted and actual amounts looking the
- same. ([#941](https://github.com/simonmichael/hledger/issues/941))
-
-- journal: fixed a periodic transaction parsing failure
- ([#942](https://github.com/simonmichael/hledger/issues/942)) (Dmitry
- Astapov)
-
-### hledger-ui 1.13
-
-- on posix systems, control-z suspends the program
-
-- control-l now works everywhere and redraws more reliably
-
-- the top status info is clearer
-
-- use hledger 1.13
-
-### hledger-web 1.13
-
-- use hledger 1.13
-
-### hledger-api 1.13
-
-- use hledger 1.13
-
-### hledger-lib 1.13
-
-- in Journal's jtxns field, forecasted txns are appended rather than prepended
-
-- API changes:
-
- added:
- +setFullPrecision
- +setMinimalPrecision
- +expectParseStateOn
- +embedFileRelative
- +hereFileRelative
-
- changed:
- - amultiplier -> aismultiplier
- - Amount fields reordered for clearer debug output
- - tpreceding_comment_lines -> tprecedingcomment, reordered
- - Hledger.Data.TransactionModifier.transactionModifierToFunction -> modifyTransactions
- - Hledger.Read.Common.applyTransactionModifiers -> Hledger.Data.Journal.journalModifyTransactions
-
- - HelpTemplate -> CommandDoc
-
-### credits 1.13
-
-Release contributors:
-Simon Michael,
-Jakob Schöttl,
-Dmitry Astapov.
-
-
-## 2018/12/02 hledger 1.12
-
-***Account type declarations,
-complete balance assertions,
-GHC 8.6 support,
-hledger-ui usability updates,
-misc fixes
-***
-([announcement](https://groups.google.com/d/topic/hledger/H7NYdvo0FeQ/discussion))
-
-
- [hledger](#hledger-1.12-1)
-| [hledger-ui](#hledger-ui-1.12)
-| [hledger-web](#hledger-web-1.12)
-| [hledger-api](#hledger-api-1.12)
-| [hledger-lib](#hledger-lib-1.12)
-| [credits](#credits-1.12)
-
-
-
-### hledger 1.12
-
-* install script: ensure a new-enough version of stack; more informative output
-
-* build with GHC 8.6/base-4.12 (Peter Simons)
-
-* add required upper bound for statistics (Samuel May)
-
-* --anon anonymises more thoroughly (including linked original postings) (Moritz Kiefer)
-
-* unbalanced transaction errors now include location info (Mykola Orliuk)
-
-* accounts command: --drop also affects the default flat output, without needing an explicit --flat flag
-
-* accounts command: the --codes flag has been dropped
-
-* accounts command: filtering by non-account-name queries now works
-
-* add command: fix transaction rendering regression during data entry and in journal file
-
-* balance command: fix wrongful eliding of zero-balance parent accounts in tree mode (Dmitry Astapov)
-
-* journal format, bs/bse/cf/is commands: account directives can declare account types ([#877](https://github.com/simonmichael/hledger/issues/877))
- Previously you had to use one of the standard english account names
- (assets, liabilities..) for top-level accounts, if you wanted them to
- appear in the right place in the balancesheet, balancesheetequity,
- cashflow or incomestatement reports.
-
- Now you can use your preferred account names, and use account directives
- to declare which accounting class (Asset, Liability, Equity, Revenue or
- eXpense) an account (and its subaccounts) belongs to, by writing one of
- the letters A, L, E, R, X after the account name, after two or more
- spaces. This syntax may change (see issue). Experimental.
-
- Currently we allow unlimited account type declarations anywhere in the
- account tree. So you could declare a liability account somewhere under
- assets, and maybe a revenue account under that, and another asset account
- even further down. In such cases you start to see oddities like accounts
- appearing in multiple places in a tree-mode report. I have left it this
- way for now in case it helps with, eg, modelling contra accounts, or
- combining multiple files each with their own account type
- declarations. (In that scenario, if we only allowed type declarations on
- top-level accounts, or only allowed a single account of each type,
- complications seem likely.)
-
-* journal format: periodic transaction rules now require a double space separator.
- In periodic transaction rules which specify a transaction description or
- same-line transaction comment, this must be separated from the period
- expression by two or more spaces, to prevent ambiguous parsing. Eg
- this will parse correctly as "monthly" thanks to the double space:
-
- ~ monthly In 2020 we'll end this monthly transaction.
-
-* journal format: exact/complete balance assertions (Samuel May).
- A stronger kind of balance assertion, written with a double equals sign,
- asserts an account's complete account balance, not just the balance in
- one commodity. (But only if it is a single-commodity balance, for now.)
- Eg:
-
- 1/1
- (a) A 1
- (a) B 1
- (a) 0 = A 1 ; commodity A balance assertion, succeeds
- (a) 0 == A 1 ; complete balance assertion, fails
-
-* journal format: account directives now allow whitespace or a comment after the account name
-
-* journal format: using ~ for home directory in include directives now works ([#896](https://github.com/simonmichael/hledger/issues/896)) (Mykola Orliuk)
-
-* journal format: prevent misleading parse error messages with cyclic include directives ([#853](https://github.com/simonmichael/hledger/issues/853)) (Alex Chen)
-
-* journal format: transaction modifier multipliers handle total-priced amounts correctly ([#928](https://github.com/simonmichael/hledger/issues/928)).
- Multipliers (*N) in transaction modifier rules did not multiply
- total-priced amounts properly. Now the total prices are also multiplied,
- keeping the transaction balanced.
-
-* journal format: do amount inference/balance assignments/assertions before transaction modifiers ([#893](https://github.com/simonmichael/hledger/issues/893), [#908](https://github.com/simonmichael/hledger/issues/908)) (Jesse Rosenthal)
- Previously, transaction modifier (auto postings) rules were applied
- before missing amounts were inferred. This meant amount multipliers could
- generate too many missing-amount postings, making the transaction
- unbalanceable ([#893](https://github.com/simonmichael/hledger/issues/893)).
-
- Now, missing amount inference (and balance assignments, and balance
- assertions, which are interdependent) are done earlier, before
- transaction modifier rules are applied ([#900](https://github.com/simonmichael/hledger/issues/900), [#903](https://github.com/simonmichael/hledger/issues/903)).
-
- Also, we now disallow the combination of balance assignments and
- transaction modifier rules which both affect the same account, which
- could otherwise cause confusing balance assertion failures ([#912](https://github.com/simonmichael/hledger/issues/912)).
- (Because assignments now generate amounts to satisfy balance assertions
- before transaction modifier rules are applied ([#908](https://github.com/simonmichael/hledger/issues/908)).)
-
-* journal format: periodic transaction rules are now aware of Y default year directives. ([#892](https://github.com/simonmichael/hledger/issues/892))
- Ie when a default year Y is in effect, they resolve partial or relative
- dates using Y/1/1 as the reference date, rather than today's date.
-
-### hledger-ui 1.12
-
-* fix "Any" build error with GHC < 8.4
-
-* error screen: always show error position properly ([#904](https://github.com/simonmichael/hledger/issues/904)) (Mykola Orliuk)
-
-* accounts screen: show correct balances when there's only periodic transactions
-
-* drop the --status-toggles flag
-
-* periodic transactions and transaction modifiers are always enabled.
- Rule-based transactions and postings are always generated
- (--forecast and --auto are always on).
- Experimental.
-
-* escape key resets to flat mode.
- Flat mode is the default at startup. Probably it should reset to tree
- mode if --tree was used at startup.
-
-* tree mode tweaks: add --tree/-T/-F flags, make flat mode the default,
- toggle tree mode with T, ensure a visible effect on register screen
-
-* hide future txns by default, add --future flag, toggle with F.
- You may have transactions dated later than today, perhaps piped from
- print --forecast or recorded in the journal, which you don't want to
- see except when forecasting.
-
- By default, we now hide future transactions, showing "today's balance".
- This can be toggled with the F key, which is easier than setting a
- date query. --present and --future flags have been added to set the
- initial mode.
-
- (Experimental. Interactions with date queries have not been explored.)
-
-* quick help tweaks; try to show most useful info first
-
-* reorganise help dialog, fit content into 80x25 again
-
-* styling tweaks; cyan/blue -> white/yellow
-
-* less noisy styling in horizontal borders ([#838](https://github.com/simonmichael/hledger/issues/838))
-
-* register screen: positive amounts: green -> black
- The green/red scheme helped distinguish the changes column from the
- black/red balance column, but the default green is hard to read on
- the pale background in some terminals. Also the changes column is
- non-bold now.
-
-* use hledger 1.12
-
-### hledger-web 1.12
-
-* fix duplicate package.yaml keys warned about by hpack
-
-* use hledger 1.12
-
-### hledger-api 1.12
-
-* use hledger 1.12
-
-### hledger-lib 1.12
-
-* switch to megaparsec 7 (Alex Chen)
- We now track the stack of include files in Journal ourselves, since
- megaparsec dropped this feature.
-
-* add 'ExceptT' layer to our parser monad again (Alex Chen)
- This was removed under the assumption that it would be possible to
- write our parser without this capability. However, after a hairy
- backtracking bug, we would now prefer to have the option to prevent
- backtracking.
-
-* more support for location-aware parse errors when re-parsing (Alex Chen)
-
-* make 'includedirectivep' an 'ErroringJournalParser' (Alex Chen)
-
-* drop Ord instance breaking GHC 8.6 build (Peter Simons)
-
-* flip the arguments of (divide|multiply)[Mixed]Amount
-
-* showTransaction: fix a case showing multiple missing amounts
- showTransaction could sometimes hide the last posting's amount even if
- one of the other posting amounts was already implcit, producing invalid
- transaction output.
-
-* plog, plogAt: add missing newline
-
-* split up journalFinalise, reorder journal finalisation steps ([#893](https://github.com/simonmichael/hledger/issues/893)) (Jesse Rosenthal)
- The `journalFinalise` function has been split up, allowing more granular
- control.
-
-* journalSetTime --> journalSetLastReadTime
-
-* journalSetFilePath has been removed, use journalAddFile instead
-
-### credits 1.12
-
-Release contributors:
-Simon Michael,
-Alex Chen,
-Jesse Rosenthal,
-Samuel May,
-Mykola Orliuk,
-Peter Simons,
-Moritz Kiefer,
-Dmitry Astapov,
-Felix Yan,
-Aiken Cairncross,
-Nikhil Jha.
-
-
-## 2018/9/30 hledger 1.11
-
-***Customisable account display order,
-support for other delimiter-separated formats (eg semicolon-separated),
-new files and roi commands,
-fixes
-***
-([announcement](https://groups.google.com/d/topic/hledger/V62txFLaD_U/discussion))
-
-
- [hledger](#hledger-1.11-1)
-| [hledger-ui](#hledger-ui-1.11)
-| [hledger-web](#hledger-web-1.11)
-| [hledger-api](#hledger-api-1.11)
-| [hledger-lib](#hledger-lib-1.11)
-| [credits](#credits-1.11)
-
-
-
-
-### hledger 1.11
-
-* The default display order of accounts is now influenced by
- the order of account directives. Accounts declared by account
- directives are displayed first (top-most), in declaration order,
- followed by undeclared accounts in alphabetical order. Numeric
- account codes are no longer used, and are ignored and considered
- deprecated.
-
- So if your accounts are displaying in a weird order after upgrading,
- and you want them alphabetical like before, just sort your account
- directives alphabetically.
-
-* Account sorting (by name, by declaration, by amount) is now more
- robust and supported consistently by all commands (accounts,
- balance, bs..) in all modes (tree & flat, tabular & non-tabular).
-
-* close: new --opening/--closing flags to print only the opening or
- closing transaction
-
-* files: a new command to list included files
-
-* prices: query arguments are now supported. Prices can be filtered by
- date, and postings providing transaction prices can also be filtered.
-
-* rewrite: help clarifies relation to print --auto ([#745](https://github.com/simonmichael/hledger/issues/745))
-
-* roi: a new command to compute return on investment, based on hledger-irr
-
-* test: has more verbose output, more informative failure messages,
- and no longer tries to read the journal
-
-* csv: We use a more robust CSV lib (cassava) and now support
- non-comma separators, eg --separator ';' (experimental, this flag
- will probably become a CSV rule) ([#829](https://github.com/simonmichael/hledger/issues/829))
-
-* csv: interpolated field names in values are now properly case insensitive, so
- this works:
-
- fields ...,Transaction_Date,...
- date %Transaction_Date
-
-* journal: D (default commodity) directives no longer break multiplier
- amounts in transaction modifiers (AKA automated postings) ([#860](https://github.com/simonmichael/hledger/issues/860))
-
-* journal: "Automated Postings" have been renamed to "Transaction Modifiers".
-
-* journal: transaction comments in transaction modifier rules are now parsed correctly. ([#745](https://github.com/simonmichael/hledger/issues/745))
-
-* journal: when include files form a cycle, we give an error instead
- of hanging.
-
-* upper-case day/month names in period expressions no longer give an error ([#847](https://github.com/simonmichael/hledger/issues/847), [#852](https://github.com/simonmichael/hledger/issues/852))
-
-
-### hledger-ui 1.11
-
-* uses hledger-lib 1.11
-
-
-### hledger-web 1.11
-
-* uses hledger-lib 1.11
-
-
-### hledger-api 1.11
-
-* uses hledger-lib 1.11
-
-
-### hledger-lib 1.11
-
-* compilation now works when locale is unset ([#849](https://github.com/simonmichael/hledger/issues/849))
-
-* all unit tests have been converted from HUnit+test-framework to easytest
-
-* doctests now run quicker by default, by skipping reloading between tests.
- This can be disabled by passing --slow to the doctests test suite
- executable.
-
-* doctests test suite executable now supports --verbose, which shows
- progress output as tests are run if doctest 0.16.0+ is installed
- (and hopefully is harmless otherwise).
-
-* doctests now support file pattern arguments, provide more informative output.
- Limiting to just the file(s) you're interested can make doctest start
- much quicker. With one big caveat: you can limit the starting files,
- but it always imports and tests all other local files those import.
-
-* a bunch of custom Show instances have been replaced with defaults,
- for easier troubleshooting. These were sometimes obscuring
- important details, eg in test failure output. Our new policy is:
- stick with default derived Show instances as far as possible, but
- when necessary adjust them to valid haskell syntax so pretty-show
- can pretty-print them (eg when they contain Day values, cf
- https://github.com/haskell/time/issues/101). By convention, when
- fields are shown in less than full detail, and/or in double-quoted
- pseudo syntax, we show a double period (..) in the output.
-
-* Amount has a new Show instance. Amount's show instance hid
- important details by default, and showing more details required
- increasing the debug level, which was inconvenient. Now it has a
- single show instance which shows more information, is fairly
- compact, and is pretty-printable.
-
- ghci> usd 1
- OLD:
- Amount {acommodity="$", aquantity=1.00, ..}
- NEW:
- Amount {acommodity = "$", aquantity = 1.00, aprice = NoPrice, astyle = AmountStyle "L False 2 Just '.' Nothing..", amultiplier = False}
-
- MixedAmount's show instance is unchanged, but showMixedAmountDebug
- is affected by this change:
-
- ghci> putStrLn $ showMixedAmountDebug $ Mixed [usd 1]
- OLD:
- Mixed [Amount {acommodity="$", aquantity=1.00, aprice=, astyle=AmountStyle {ascommodityside = L, ascommodityspaced = False, asprecision = 2, asdecimalpoint = Just '.', asdigitgroups = Nothing}}]
- NEW:
- Mixed [Amount {acommodity="$", aquantity=1.00, aprice=, astyle=AmountStyle "L False 2 Just '.' Nothing.."}]
-
-* Same-line & next-line comments of transactions, postings, etc.
- are now parsed a bit more precisely (followingcommentp).
- Previously, parsing no comment gave the same result as an empty
- comment (a single newline); now it gives an empty string.
- Also, and perhaps as a consequence of the above, when there's no
- same-line comment but there is a next-line comment, we'll insert an
- empty first line, since otherwise next-line comments would get moved
- up to the same line when rendered.
-
-* Hledger.Utils.Test exports HasCallStack
-
-* queryDateSpan, queryDateSpan' now intersect date AND'ed date spans
- instead of unioning them, and docs are clearer.
-
-* pushAccount -> pushDeclaredAccount
-
-* jaccounts -> jdeclaredaccounts
-
-* AutoTransaction.hs -> PeriodicTransaction.hs & TransactionModifier.hs
-
-* Hledger.Utils.Debug helpers have been renamed/cleaned up
-
-### credits 1.11
-
-Release contributors:
-Simon Michael,
-Joseph Weston,
-Dmitry Astapov,
-Gaith Hallak,
-Jakub Zárybnický,
-Luca Molteni,
-SpicyCat.
-
-
-
-## 2018/6/30 hledger 1.10
-
-***hledger-web edit/upload/download and permissions,
-more expressive periodic transactions,
-more informative parse errors,
-misc fixes
-***
-([announcement](https://groups.google.com/forum/#!msg/hledger/SWFV2n6xMQA/Ss78nil8AQAJ))
-
- [project](#project-wide-changes-for-1.10)
-| [hledger-lib](#hledger-lib-1.10)
-| [hledger](#hledger-1.10-1)
-| [hledger-ui](#hledger-ui-1.10)
-| [hledger-web](#hledger-web-1.10)
-| [hledger-api](#hledger-api-1.10)
-| [credits](#credits-1.10)
-
-### project-wide changes for 1.10
-
-* build cleanly with all supported GHC versions again (7.10 to 8.4)
-
-* support latest deps
-
-* back in Stackage LTS (12.0)
-
-
-### hledger-lib 1.10
-
-* extensive refactoring and cleanup of parsers and related types and utilities
-
-* readJournalFile(s) cleanup, these now use InputOpts
-
-* doctests now run a bit faster ([#802](https://github.com/simonmichael/hledger/issues/802))
-
-
-### hledger 1.10
-
-* journal: many parse error messages have become more informative, and
- some now show the source line and error location.
-
-* journal: `;tag:` is no longer parsed as a tag named ";tag" ([#655](https://github.com/simonmichael/hledger/issues/655))
-
-* journal: transaction price amounts having their own price amounts is
- now a parse error
-
-* journal: amounts with space as digit group separator and trailing whitespace
- now parse correctly ([#780](https://github.com/simonmichael/hledger/issues/780))
-
-* journal: in amounts containing digits and a single space, the space
- is now interpreted as a digit group separator, not a decimal separator ([#749](https://github.com/simonmichael/hledger/issues/749))
-
-* journal: in commodity/format/D directives, the amount must now include a decimal separator.
-
- When more precise control is needed over number parsing, our
- recommended solution is commodity directives. Commodity directives
- that don't specify the decimal separator leave things ambiguous,
- increasing the chance of misparsing numbers. In some cases it could
- cause amounts with a decimal point to be parsed as if with a digit
- group separator, so 1.234 became 1234.
-
- It seems the simple and really only way to do this reliably is to require
- an explicit decimal point character. Most folks probably do this already.
- Unfortunately, it makes another potential incompatiblity with ledger and
- beancount journals. But the error message will be clear and easy to
- work around.
-
-* journal: directives currently have diverse and somewhat tricky
- semantics, especially with multiple files. The manual now describes
- their behaviour precisely.
-
-* journal: `alias` and `apply account` directives now affect `account` directives ([#825](https://github.com/simonmichael/hledger/issues/825))
-
-* journal: periodic transactions can now have all the usual transaction fields
- (status mark, code, description, comment), for generating more expressive
- forecast transactions.
-
-* journal: forecast transactions now have the generating period
- expression attached as a tag named "recur".
-
-* journal: periodic transactions now start on the first instance of the
- recurring date, rather than the day after the last regular transaction ([#750](https://github.com/simonmichael/hledger/issues/750))
-
-* journal: periodic transaction rules now allow period expressions relative to today's date
-
-* csv: amount-in/amount-out errors are more detailed
-
-* balance: --drop is now ignored when not in flat mode,
- rather than producing a corrupted report ([#754](https://github.com/simonmichael/hledger/issues/754))
-
-* budget: --drop now preserves the top-level account in --budget reports
-
-* register: in CSV output, the code field is now included ([#746](https://github.com/simonmichael/hledger/issues/746))
-
-* smart dates now allow the YYYYMM format, and are better documented
-
-* uses hledger-lib 1.10
-
-
-### hledger-ui 1.10
-
-* the effect of --value, --forecast, and --anon flags is now preserved on reload ([#753](https://github.com/simonmichael/hledger/issues/753))
-
-* edit-at-transaction-position is now also supported when $EDITOR is neovim
-
-* support/require fsnotify 0.3.0.1+
-
-* uses hledger-lib 1.10
-
-
-### hledger-web 1.10
-
-* view, add, edit permissions can be set at CLI or by Sandstorm HTTP header
-
-* the edit form has been revived, for whole-journal editing
-
-* the journal can now be uploaded and downloaded
-
-* the e key toggles empty accounts in the sidebar
-
-* multiple -f options, and --auto, work again
-
-* uses hledger-lib 1.10
-
-
-### hledger-api 1.10
-
-* uses hledger-lib 1.10
-
-
-### credits 1.10
-
-Release contributors:
-Simon Michael,
-Alex Chen,
-Everett Hildenbrandt,
-Jakub Zárybnický,
-Nolan Darilek,
-Dmitry Astapov,
-Jacob Weisz,
-Peter Simons,
-Stephen Morgan,
-Pavlo Kerestey,
-Trevor Riles,
-Léo Gaspard,
-Mykola Orliuk,
-Wad,
-Nana Amfo.
-
-
-
-## 2018/3/31 hledger 1.9
-
-***Report cleanups,
-normal-positive reports,
-HTML output,
-account sort codes,
-budget improvements.
-***
-
-([announcement](https://groups.google.com/forum/#!topic/hledger/DifO6UbeKnU))
-
-Release contributors:
-Simon Michael,
-Eli Flanagan,
-Peter Simons,
-Christoph Nicolai,
-agander,
-M Parker,
-Moritz Kiefer,
-Mykola Orliuk.
-
- [project](#project-wide-changes-for-1.9)
-| [hledger-lib](#hledger-lib-1.9)
-| [hledger](#hledger-1.9-1)
-| [hledger-ui](#hledger-ui-1.9)
-| [hledger-web](#hledger-web-1.9)
-| [hledger-api](#hledger-api-1.9)
-
-### project-wide changes for 1.9
-
-* support ghc 8.4, latest deps
-
-
-### hledger-lib 1.9
-
-* when the system text encoding is UTF-8, ignore any UTF-8 BOM prefix
-found when reading files.
-
-* CompoundBalanceReport amounts are now normally positive. (experimental)
-
-### hledger 1.9
-
-* journal: account directives can define a numeric account code to
-customize sorting. bal/bs/cf/is will sort accounts by account code,
-if any, then account name.
-
-* journal: support scientific number notation ([#704](https://github.com/simonmichael/hledger/issues/704), [#706](https://github.com/simonmichael/hledger/issues/706))
-
-* csv: reading a CSV file containing no records is no longer an error
-
-* cli: when the system text encoding is UTF-8, ignore any UTF-8 BOM
-prefix found when reading files. (Paypal's new CSV has this BOM
-prefix, causing a confusing parse error.)
-
-* cli: tabular reports no longer have a trailing blank line added.
-(This allows omitting the ">=0" delimiters in our functional tests,
-making them easier to read and maintain.)
-
-* acc: the accounts command now has --declared and --used flags
-
-* bal: the --invert flag flips all signs
-
-* bal: --drop now works with CSV output
-
-* bal/bs/bse/cf/is: show overall report span in title
-
-* bal/bs/bse/cf/is: show short month names as headings in monthly reports
-
-* bal/bs/bse/cf/is: these commands can now generate HTML output
-
-* bal/bs/is/cf: drop short name and indent fields from multicolumn CSV
-
-* bs/bse/cf/is: these, the "financial statement" commands, now show
-normal income, liability and equity balances as positive numbers.
-Negative numbers now indicate a contra-balance (eg an overdrawn
-checking account), a net loss, or a negative net worth. This makes
-these reports more like conventional financial statements, and easier
-to read and share with others. (Other commands, like balance, have not
-changed.) (experimental)
-
-* bs/cf/is: always show a tabular report, even with no report
-interval. Previously you would get a simple borderless report like
-the original balance command. Less code, fewer bugs.
-
-* bs/bse/cf/is: in CSV output, don't repeat the headings row for each subreport
-
-* budget: warn that CSV output with bal --budget is unimplemented
-
-* budget: bal --budget shows budget goals even with no or zero actual amounts.
-Makes budget reports more intuitive, at the cost of a temporary hack
-which may misorder columns in some cases (if actual and budget
-activity occur in a different range of columns).
-
-* budget: --budget uses only periodic txns with the selected interval.
-Budgets with different interval, eg a daily and weekly budget, are independent.
-
-* budget: show mostly fixed-width columns for readability
-
-* budget: fix bug where a budget report could include budget goals
-ending on the day before the report start date (splitSpan issue)
-
-* close: the equity command has been renamed to close. It now ignores
-any begin date (it always closes historical end balances). It also
-ignores --date2.
-
-### hledger-ui 1.9
-
-* -E/--empty toggles zeroes at startup (with opposite default to cli)
-
-### hledger-web 1.9
-
-* -E/--empty toggles zeroes at startup (with opposite default to cli)
-
-### hledger-api 1.9
-
-
-
-## 2017/12/31 hledger 1.5
-
-***
-***
-
-([announcement](https://groups.google.com/forum/#!topic/hledger/CyNifndzZxk))
-
-Release contributors:
-Simon Michael,
-Dmitry Astapov,
-Mykola Orliuk,
-Eli Flanagan,
-Elijah Caine,
-Sam Jeeves,
-Matthias Kauer,
-Hans-Peter Deifel,
-Mick Dekkers,
-Nadrieril,
-Alvaro Fernando García.
-
- [project](#project-wide-changes-for-1.5)
-| [hledger-lib](#hledger-lib-1.5)
-| [hledger](#hledger-1.5-1)
-| [hledger-ui](#hledger-ui-1.5)
-| [hledger-web](#hledger-web-1.5)
-| [hledger-api](#hledger-api-1.5)
-
-### project-wide changes for 1.5
-
-* remove upper bounds on all but hledger* and base (experimental)
- It's rare that my deps break their api or that newer versions must
- be avoided, and very common that they release new versions which I
- must tediously and promptly test and release hackage revisions for
- or risk falling out of stackage. Trying it this way for a bit.
-
-
-### hledger-lib 1.5
-
-* -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648))
-
-* csv: allow balance assignment (balance assertion only, no amount) in csv records (Nadrieril)
-
-* journal: allow space as digit group separator character, [#330](https://github.com/simonmichael/hledger/issues/330) (Mykola Orliuk)
-
-* journal: balance assertion errors now show line of failed assertion posting, [#481](https://github.com/simonmichael/hledger/issues/481) (Sam Jeeves)
-
-* journal: better errors for directives, [#402](https://github.com/simonmichael/hledger/issues/402) (Mykola Orliuk)
-
-* journal: better errors for included files, [#660](https://github.com/simonmichael/hledger/issues/660) (Mykola Orliuk)
-
-* journal: commodity directives in parent files are inherited by included files, [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk)
-
-* journal: commodity directives limits precision even after -B, [#509](https://github.com/simonmichael/hledger/issues/509) (Mykola Orliuk)
-
-* journal: decimal point/digit group separator chars are now inferred from an applicable commodity directive or default commodity directive. [#399](https://github.com/simonmichael/hledger/issues/399), [#487](https://github.com/simonmichael/hledger/issues/487) (Mykola Orliuk)
-
-* journal: numbers are parsed more strictly (Mykola Orliuk)
-
-* journal: support Ledger-style automated postings, enabled with --auto flag (Dmitry Astapov)
-
-* journal: support Ledger-style periodic transactions, enabled with --forecast flag (Dmitry Astapov)
-
-* period expressions: fix "nth day of {week,month}", which could generate wrong intervals (Dmitry Astapov)
-
-* period expressions: month names are now case-insensitive (Dmitry Astapov)
-
-* period expressions: stricter checking for invalid expressions (Mykola Orliuk)
-
-* period expressions: support "every 11th Nov" (Dmitry Astapov)
-
-* period expressions: support "every 2nd Thursday of month" (Dmitry Astapov)
-
-* period expressions: support "every Tuesday", short for "every th day of week" (Dmitry Astapov)
-
-### hledger 1.5
-
-* --auto adds Ledger-style automated postings to transactions (Dmitry Astapov, Mykola Orliuk)
-
-* --forecast generates Ledger-style periodic transactions in the future (Dmitry Astapov, Mykola Orliuk)
-
-* -V/--value uses today's market prices by default, not those of last transaction date. [#683](https://github.com/simonmichael/hledger/issues/683), [#648](https://github.com/simonmichael/hledger/issues/648)
-
-* add: suggest implied (parent) and declared (by account directives) account names also
-
-* bal: --budget shows performance compared to budget goals defined
- with periodic transactions. Accounts with budget goals are
- displayed folded (depth-clipped) at a depth matching the budget
- specification. Unbudgeted accounts are hidden, or with
- --show-unbudgeted, shown at their usual depth. (Dmitry Astapov)
-
-* import: the output of --dry-run is now valid journal format
-
-* print: -B shows converted amounts again, as in 1.1, even without
- -x. [#551](https://github.com/simonmichael/hledger/issues/551) (Mykola Orliuk, Simon Michael)
-
-* tag: the first argument now filters tag names, additional arguments
- filter transactions ([#261](https://github.com/simonmichael/hledger/issues/261))
-
-### hledger-ui 1.5
-
-* fix help -> view manual (on posix platforms) [#623](https://github.com/simonmichael/hledger/issues/623)
-
-* support -V/--value, --forecast, --auto
-
-### hledger-web 1.5
-
-* add form account fields now suggest implied and declared account names also
-
-* add form date field now uses a datepicker (Eli Flanagan)
-
-* don't write a session file at startup, don't require a writable working directory
-
-* support -V/--value, --forecast, --auto
-
-### hledger-api 1.5
-
-
-## 2017/9/30 hledger 1.4
-
-***easy install script,
-simpler help commands,
-experimental addon commands now built in,
-new balancesheetequity/tags commands,
-new import command for easy CSV merging,
-print can detect new transactions,
-balance reports can sort by amount,
-cli conveniences
-***
-
-([announcement](https://groups.google.com/forum/#!topic/hledger/tdtkhchqg9k))
-
-Release contributors:
-Simon Michael,
-Nicholas Niro,
-Hans-Peter Deifel,
-Jakub Zárybnický,
-Felix Yan,
-Mark Hansen,
-Christian G. Warden,
-Nissar Chababy,
-Peter Simons.
-
- [project](#project-wide-changes-for-1.4)
-| [hledger-lib](#hledger-lib-1.4)
-| [hledger](#hledger-1.4-1)
-| [hledger-ui](#hledger-ui-1.4)
-| [hledger-web](#hledger-web-1.4)
-| [hledger-api](#hledger-api-1.4)
-
-### project-wide changes for 1.4
-
-* update stack configs for the last three GHC versions, add "make
-test-stackage" for finding stackage build problems, switch to GHC
-8.2.1 as default for developer builds
-
-* streamline docs page
-
-* improve changelog/release notes process
-
-* improve makefile help and speed
-
-* Added a new installer script for the hledger tools, which aims to
-dodge common pitfalls and just work. Based on the stack install
-script, this bash script is cross platform, uses cabal or stack,
-installs stack and GHC if needed, and installs the latest release of
-all major hledger packages. See http://hledger.org/download for details.
-
-### hledger-lib 1.4
-
-* add readJournalFile[s]WithOpts, with simpler arguments and support
-for detecting new transactions since the last read.
-
-* query: add payee: and note: query terms, improve description/payee/note docs (Jakub Zárybnický, Simon Michael, [#598](https://github.com/simonmichael/hledger/issues/598), [#608](https://github.com/simonmichael/hledger/issues/608))
-
-* journal, cli: make trailing whitespace significant in regex account aliases
-Trailing whitespace in the replacement part of a regular expression
-account alias is now significant. Eg, converting a parent account to
-just an account name prefix: --alias '/:acct:/=:acct '
-
-* timedot: allow a quantity of seconds, minutes, days, weeks, months
- or years to be logged as Ns, Nm, Nd, Nw, Nmo, Ny
-
-* csv: switch the order of generated postings, so account1 is first.
-This simplifies things and facilitates future improvements.
-
-* csv: show the "creating/using rules file" message only with --debug
-
-* csv: fix multiple includes in one rules file
-
-* csv: add "newest-first" rule for more robust same-day ordering
-
-* deps: allow ansi-terminal 0.7
-
-* deps: add missing parsec lower bound, possibly related to [#596](https://github.com/simonmichael/hledger/issues/596), [fpco/stackage#2835](https://github.com/fpco/stackage/issues/2835)
-
-* deps: drop oldtime flag, require time 1.5+
-
-* deps: remove ghc < 7.6 support, remove obsolete CPP conditionals
-
-* deps: fix test suite with ghc 8.2
-
-
-
-* Fix a bug with -H showing nothing for empty periods ([#583](https://github.com/simonmichael/hledger/issues/583), Nicholas Niro)
-This patch fixes a bug that happened when using the -H option on
-a period without any transaction. Previously, the behavior was no
-output at all even though it should have shown the previous ending balances
-of past transactions. (This is similar to previously using -H with -E,
-but with the extra advantage of not showing empty accounts)
-
-* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594))
-
-* allow megaparsec-6.1 (Hans-Peter Deifel)
-
-* fix test suite with Cabal 2 ([#596](https://github.com/simonmichael/hledger/issues/596))
-
-### hledger 1.4
-
-* cli: a @FILE argument reads flags & args from FILE, one per line
-
-* cli: reorganized commands list, added some new command aliases:
- accounts: a
- balance: b
- print: p, txns
- register: r
-
-* cli: accept -NUM as a shortcut for --depth=NUM (eg: -2)
-
-* cli: improve command-line help for --date2 ([#604](https://github.com/simonmichael/hledger/issues/604))
-
-* cli: make --help and -h the same, drop --man and --info for now ([#579](https://github.com/simonmichael/hledger/issues/579))
-
-* help: offers multiple formats, accepts topic substrings.
- The separate info/man commands have been dropped. help now
- chooses an appropriate documentation format as follows:
- - it uses info if available,
- - otherwise man if available,
- - otherwise $PAGER if defined,
- - otherwise less if available,
- - otherwise it prints on stdout
- - (and it always prints on stdout when piped).
- You can override this with the `--info`/`--man`/`--pager`/`--cat` flags.
- ([#579](https://github.com/simonmichael/hledger/issues/579))
-
-* bal/bs/cf/is: --sort-amount/-S sorts by largest amount instead of
- account name
-
-* bs/cf/is: support --output-file and --output-format=txt|csv
- The CSV output should be reasonably ok for dragging into a
- spreadsheet and reformatting.
-
-* bal/bs/cf/is: consistent double space between columns, consistent
- single final blank line. Previously, amounts wider than the column
- headings would be separated by only a single space.
-
-* bs/is: don't let an empty subreport disable the grand totals (fixes [#588](https://github.com/simonmichael/hledger/issues/588))
-
-* cf: exclude asset accounts with ":fixed" in their name (Christian G. Warden, Simon Michael, [#584](https://github.com/simonmichael/hledger/issues/584))
-
-* new balancesheetequity command: like balancesheet but also shows
- equity accounts (Nicholas Niro)
-
-* new import command: adds new transactions seen in one or more input
- files to the main journal file
-
-* print: --new shows only transactions added since last time
- (saves state in .latest.JOURNALFILE file)
-
-* new tags command: lists tags in matched transactions
-
-* most addons formerly shipped in bin/ are now builtin commands. These
- include: check-dates, check-dupes, equity, prices, print-unique,
- register-match, rewrite.
-
-* refactor: new Commands module and subdirectory.
- Builtin commands are now gathered more tightly in a single module,
- Hledger.Cli.Commands, facilitating change. The legacy "convert"
- command has been dropped.
-
-* refactor: BalanceView -> CompoundBalanceCommand
-
-* deps: drop support for directory < 1.2
-
-* deps: allow ansi-terminal 0.7
-
-* deps: drop oldtime flag, require time 1.5+
-
-* deps: simplify shakespeare bounds
-
-* deps: remove ghc < 7.6 support
-
-
-
-* bs/is: don't let an empty subreport disable the grand totals ([#588](https://github.com/simonmichael/hledger/issues/588))
-
-* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594))
-
-* allow megaparsec-6.1 (Hans-Peter Deifel)
-
-* restore upper bounds on hledger packages
-
-### hledger-ui 1.4
-
-* a @FILE argument reads flags & args from FILE, one per line
-
-* enable --pivot and --anon options, like hledger CLI ([#474](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický)
-
-* accept -NUM as a shortcut for --depth NUM
-
-* deps: allow ansi-terminal 0.7
-
-* deps: drop oldtime flag, require time 1.5+
-
-
-
-* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594), Simon Michael, Hans-Peter Deifel)
-
-* allow megaparsec-6.1 (Hans-Peter Deifel)
-
-* allow vty 5.17 (Felix Yan)
-
-* allow brick 0.24
-
-* restore upper bounds on hledger packages
-
-### hledger-web 1.4
-
-* a @FILE argument reads flags & args from FILE, one per line
-
-* enable --pivot and --anon options, like hledger CLI ([#474](https://github.com/simonmichael/hledger/issues/474)) (Jakub Zárybnický)
-
-* web: Make "Add transaction" button tabbable ([#430](https://github.com/simonmichael/hledger/issues/430)) (Jakub Zárybnický)
-
-* accept -NUM as a shortcut for --depth NUM
-
-* deps: drop oldtime flag, require time 1.5+, remove ghc < 7.6 support
-
-
-
-* remove unnecessary bound to satisfy hackage server
-
-
-
-* allow megaparsec 6 ([#594](https://github.com/simonmichael/hledger/issues/594), Simon Michael, Hans-Peter Deifel)
-
-* allow megaparsec-6.1 (Hans-Peter Deifel)
-
-* restore upper bounds on hledger packages
-
-### hledger-api 1.4
-
-* api: add support for swagger2 2.1.5+ (fixes [#612](https://github.com/simonmichael/hledger/issues/612))
-
-
-
-* require servant-server 0.10+ to fix compilation warning
-
-* restore upper bounds on hledger packages
-
-
-## 2017/6/30 hledger 1.3
-
-***terminology/UI improvements for the status field,
-selection/scrolling/movement improvements in hledger-ui,
-negative amounts shown in red,
-bugfixes.***
-
-([announcement](https://groups.google.com/d/msg/hledger/X4iR1wpaq0E/_v5BLQIXAgAJ))
-
-Release contributors:
-Simon Michael,
-Mykola Orliuk,
-Christian G. Warden,
-Dmitry Astapov,
-Justin Le,
-Joe Horsnell,
-Nicolas Wavrant,
-afarrow,
-Carel Fellinger,
-flip111,
-David Reaver,
-Felix Yan,
-Nissar Chababy,
-Jan Zerebecki.
-
- [project](#project-wide-changes-for-1.3)
-| [hledger-lib](#hledger-lib-1.3)
-| [hledger](#hledger-1.3-1)
-| [hledger-ui](#hledger-ui-1.3)
-| [hledger-web](#hledger-web-1.3)
-| [hledger-api](#hledger-api-1.3)
-
-### project-wide changes for 1.3
-
-
-
-
-
-
-
-
-
-#### Tools
-
-make ghci-prof starts GHCI in profiling mode, enabling stack traces with traceStack
-
-make ghci-web now also creates required symlinks
-
-make site-reload opens an auto-reloading browser on the latest site html
-
-make changelog-draft shows the commits since last tag as org nodes
-
-### hledger-lib 1.3
-
-#### journal format
-
-The "uncleared" transaction/posting status (and associated UI flags
-and keys) has been renamed to "unmarked" to remove ambiguity and
-confusion. See the issue and linked mail list discussion for more
-background. ([#564](https://github.com/simonmichael/hledger/issues/564))
-
-#### csv format
-
-In CSV conversion rules, assigning to the "balance" field name
-creates balance assertions ([#537](https://github.com/simonmichael/hledger/issues/537), Dmitry Astapov).
-
-Doubled minus signs are handled more robustly (fixes [#524](https://github.com/simonmichael/hledger/issues/524), Nicolas
-Wavrant, Simon Michael)
-
-#### Misc
-
-Multiple status: query terms are now OR'd together. ([#564](https://github.com/simonmichael/hledger/issues/564))
-
-Deps: allow megaparsec 5.3.
-
-### hledger 1.3
-
-#### CLI
-
-The "uncleared" transaction/posting status, and associated UI flags
-and keys, have been renamed to "unmarked" to remove ambiguity and
-confusion. This means that we have dropped the `--uncleared` flag,
-and our `-U` flag now matches only unmarked things and not pending
-ones. See the issue and linked mail list discussion for more
-background. ([#564](https://github.com/simonmichael/hledger/issues/564))
-
-Also the -P short flag has been added for --pending, and the -U/-P/-C
-flags can be combined.
-
-bs/is: fix "Ratio has zero denominator" error ([#535](https://github.com/simonmichael/hledger/issues/535))
-
-bs/is/cf: fix --flat ([#552](https://github.com/simonmichael/hledger/issues/552)) (Justin Le, Simon Michael)
-
-bal/bs/is/cf: show negative amounts in red (Simon Michael, Justin Le).
-These commands now show negative amounts in red, when hledger detects
-that ANSI codes are supported, (ie when TERM is not "dumb" and stdout
-is not being redirected or piped).
-
-print: show pending mark on postings (fixes [#563](https://github.com/simonmichael/hledger/issues/563)).
-A pending mark on postings is now displayed, just like a cleared mark.
-Also there will now be a space between the mark and account name.
-
-print: amounts are now better aligned, eg when there are posting
-status marks or virtual postings.
-
-#### Addons
-
-prices: add --inverted-costs flag, sort output, increase precision
-(Mykola Orliuk)
-
-rewrite: add support for rewriting multipler postings into different
-commodities. For example, postings in hours can be used to generate
-postings in USD. ([#557](https://github.com/simonmichael/hledger/issues/557)) (Christian G. Warden)
-
-`make addons` compiles the experimental add-ons.
-
-### hledger-ui 1.3
-
-The register screen now shows transaction status marks.
-
-The "uncleared" status, and associated UI flags and keys, have been
-renamed to "unmarked" to remove ambiguity and confusion. This means
-that we have dropped the `--uncleared` flag, and our `-U` flag now
-matches only unmarked things and not pending ones. See the issue and
-linked mail list discussion for more background. ([#564](https://github.com/simonmichael/hledger/issues/564))
-
-The P key toggles pending mode, consistent with U (unmarked) and C
-(cleared). There is also a temporary --status-toggles flag for testing
-other toggle styles; see `hledger-ui -h`. ([#564](https://github.com/simonmichael/hledger/issues/564))
-
-There is now less "warping" of selection when lists change:
-
-- When the selected account disappears, eg when toggling zero
- accounts, the selection moves to the alphabetically preceding item,
- instead of the first one.
-
-- When the selected transaction disappears, eg when toggling status
- filters, the selection moves to the nearest transaction by date (and
- if several have the same date, by journal order), instead of the
- last one.
-
-In the accounts and register screens, you can now scroll down further
-so that the last item need not always be shown at the bottom of the
-screen. And we now try to show the selected item centered in the
-following situations:
-
-- after moving to the end with Page down/End
-- after toggling filters/display modes (status, real, historical..)
-- on pressing the control-l key (this forces a screen redraw, also)
-- on entering the register screen from the accounts screen
- (except the first time, a known problem).
-
-Items near the top won't be centered because we don't scroll above the
-top of the list.
-
-Emacs movement keys are now supported, as well as VI keys.
-`CTRL-b/CTRL-f/CTRL-n/CTRL-p` and `hjkl` should work wherever unmodified arrow keys work.
-
-In the transaction screen, amounts are now better aligned, eg when
-there are posting status marks or virtual postings.
-
-Deps: allow brick 0.19 ([#575](https://github.com/simonmichael/hledger/issues/575), Felix Yan, Simon Michael)
-
-### hledger-web 1.3
-
-Depends on hledger 1.3.
-
-### hledger-api 1.3
-
-Depends on hledger 1.3.
-
-
-
-## 2017/3/31 hledger 1.2
-
-***new commands list,
-more powerful balancesheet/incomestatement/cashflow commands,
-more parseable print output,
-better --pivot,
-basic automated postings and periodic transactions support,
-more and easier addons,
-bugfixes
-***
-
-
-
-
-Release contributors:
-Simon Michael,
-Mykola Orliuk,
-Justin Le,
-Peter Simons,
-Stefano Rodighiero,
-Moritz Kiefer,
-Pia Mancini,
-Bryan Richter,
-Steven R. Baker,
-Hans-Peter Deifel,
-Joshua Chia,
-Joshua Kehn,
-Michael Walker.
-
- [project](#project-wide-changes-for-1.2)
-| [hledger-lib](#hledger-lib-1.2)
-| [hledger](#hledger-1.2-1)
-| [hledger-ui](#hledger-ui-1.2)
-| [hledger-web](#hledger-web-1.2)
-| [hledger-api](#hledger-api-1.2)
-
-### project-wide changes for 1.2
-
-#### Packaging
-
-bump stack config to latest lts,
-bump brick to 0.15.2 to allow hledger-iadd install in hledger dir,
-update cabal files to latest hpack 0.17.0/stack 1.4 format ([#512](https://github.com/simonmichael/hledger/issues/512)),
-use more accurate license tag in Cabal file (Peter Simons).
-
-#### Finance
-
-set up a hledger open collective (http://opencollective.com/hledger),
-more devguide links to issues with bounties,
-codefund link,
-start tracking and publishing project finances (dogfooding!).
-
-#### Documentation and website
-
-docs page & manual cleanups,
-begin organising a cookbook,
-update addons list,
-move detailed addon docs out of hledger manual,
-document addons installation,
-explain print's CSV output,
-note an issue with balance assertions & multiple -f options,
-clarify tags,
-add github stars widget to home and devguide,
-improve market price docs,
-ui & web screenshots layout fixes,
-fix extra whitespace after synopsis in hledger-web text manuals,
-update accounts directive/budget/rewrite/read-related mockups,
-drop old org notes.
-
-#### Examples
-
-consolidate extra/ and data/ in examples/,
-tarsnap csv rules & reporting example,
-xpensetracker csv rules.
-
-#### Tools
-
-Travis CI now checks functional tests/build warnings/addons,
-temporary workaround for Appveyor CI failures,
-remove accidentally committed pandoc executables,
-some pandoc filter fixes,
-mailmap file to clean up git log authors,
-bench.hs cleanup,
-fix gitignore of generated manuals,
-avoid excessive rebuilding with make [func]test,
-run functional tests more verbosely,
-add alex/happy update step to cabal-install.sh.
-
-### hledger-lib 1.2
-
-#### journal format
-
-A pipe character can optionally be used to delimit payee names in
-transaction descriptions, for more accurate querying and pivoting by
-payee. Eg, for a description like `payee name | additional notes`,
-the two parts will be accessible as pseudo-fields/tags named `payee`
-and `note`.
-
-
-Some journal parse errors now show the range of lines involved, not just the first.
-
-#### ledger format
-
-The experimental `ledger:` reader based on the WIP ledger4 project has
-been disabled, reducing build dependencies.
-
-#### Misc
-
-Fix a bug when tying the knot between postings and their parent transaction, reducing memory usage by about 10% ([#483](https://github.com/simonmichael/hledger/issues/483)) (Mykola Orliuk)
-
-Fix a few spaceleaks ([#413](https://github.com/simonmichael/hledger/issues/413)) (Moritz Kiefer)
-
-Add Ledger.Parse.Text to package.yaml, fixing a potential build failure.
-
-Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503))
-
-Rename optserror -> usageError, consolidate with other error functions
-
-### hledger 1.2
-
-#### CLI
-
-"hledger" and "hledger -h" now print a better organised commands list
-and general usage message respectively ([#297](https://github.com/simonmichael/hledger/issues/297)).
-
-The common reporting flags can now be used anywhere on the command line.
-
-Fixed deduplication of addons in commands list.
-
-Fixed ugly stack traces in command line parse error messages.
-
-The -V/--value flag is now a global report flag, so it works with
-balance, print, register, balancesheet, incomestatement, cashflow,
-etc. (Justin Le)
-
-The `--pivot` global reporting option replaces all account names with
-the value of some other field or tag. It has been improved, eg:
-
-- we don't add the field/tag name name as a prefix
-- when pivoting on a tag, if the tag is missing we show a blank
- (rather than showing mixed tag values and account names)
-- a pipe character delimiter may be used in descriptions to get a more accurate
- and useful payee report (`hledger balance --pivot payee`)
-
-options cleanups
-
-#### Addons
-
-Easier installation:
-move add-ons and example scripts to bin/,
-convert to stack scripts,
-add a build script to install all deps,
-add some functional tests,
-test add-ons with Travis CI,
-add installation docs to download page.
-
-Improved docs:
-all addons now contain their own documentation. Most of them (all but
-hledger-budget) use a new reduced-boilerplate declaration format
-and can show short (-h) and long (--help) command line help.
-(Long help is declared with pre and postambles to the generated
-options help, short help is that truncated at the start of the hledger
-common flags.)
-
-`hledger` now shows a cleaner list of addon commands, showing only the
-compiled version of an addon when both source and compiled versions
-are in $PATH. (Addons with .exe extension or no extension are
-considered compiled. Modification time is not checked, ie, an old
-compiled addon will override a newer source version. If there are
-three or more versions of an addon, all are shown. )
-
-New addons added/included:
-
-- autosync - example symlink to ledger-autosync
-- budget - experimental budget reporting command supporting Ledger-like periodic transactions and automated transactions (Mykola Orliuk)
-- chart - pie-chart-generating prototype, a repackaging of the old hledger-chart tool
-- check - more powerful balance assertions (Michael Walker)
-- check-dupes - find accounts sharing the same leaf name (Stefano Rodighiero)
-- prices - show all market price records (Mykola Orliuk)
-- register-match - a helper for ledger-autosync's deduplication, finds best match for a transaction description
-
-The equity command now always generates a valid journal transaction,
-handles prices better, and adds balance assertions (Mykola Orliuk).
-
-The rewrite command is more robust and powerful (Mykola Orliuk):
-
-- in addition to command-line rewrite options, it understands rewrite rules
- defined in the journal, similar to Ledger's automated transactions ([#99](https://github.com/simonmichael/hledger/issues/99)).
- Eg:
- ```journal
- = ^income
- (liabilities:tax) *.33
-
- = expenses:gifts
- budget:gifts *-1
- assets:budget *1
- ```
-
-- it can generate diff output, allowing easier review of the proposed
- changes, and safe modification of original journal files (preserving
- file-level comments and directives). Eg:
- ```
- hledger-rewrite --diff Agency --add-posting 'Expenses:Taxes *0.17' | patch
- ```
-
-- rewrites can affect multiple postings in a transaction, not just one.
-
-- posting-specific dates are handled better
-
-#### balance
-
-A new --pretty-tables option uses unicode characters for rendering
-table borders in multicolumn reports ([#522](https://github.com/simonmichael/hledger/issues/522)) (Moritz Kiefer)
-
-#### balancesheet/cashflow/incomestatement
-
-These commands are now more powerful, able to show multicolumn reports
-and generally having the same features as the balance command. (Justin Le)
-
-balancesheet has always ignored a begin date specified with a `-b` or
-`-p` option; now it also ignores a begin date specified with a `date:`
-query. (Related discussion at [#531](https://github.com/simonmichael/hledger/issues/531))
-
-#### print
-
-The output of print is now always a valid journal (fixes [#465](https://github.com/simonmichael/hledger/issues/465)) (Mykola Orliuk).
-
-print now tries to preserves the format of implicit/explicit balancing
-amounts and prices, by default. To print with all amounts explicit,
-use the new `--explicit/-x` flag (fixes [#442](https://github.com/simonmichael/hledger/issues/442)). (Mykola Orliuk)
-
-Don't lose the commodity of zero amounts/zero balance assertions (fixes [#475](https://github.com/simonmichael/hledger/issues/475)) (Mykola Orliuk)
-
-#### Misc
-
-Fix a regression in the readability of option parsing errors ([#478](https://github.com/simonmichael/hledger/issues/478)) (Hans-Peter Deifel)
-
-Fix an example in Cli/Main.hs (Steven R. Baker)
-
-Allow megaparsec 5.2 ([#503](https://github.com/simonmichael/hledger/issues/503))
-
-### hledger-ui 1.2
-
-Fix a pattern match failure when pressing E on the transaction screen (fixes [#508](https://github.com/simonmichael/hledger/issues/508))
-
-Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter)
-
-Allow brick 0.16 (Joshua Chia) and brick 0.17/vty 0.15 (Peter Simons)
-
-Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503))
-
-Allow text-zipper 0.10
-
-### hledger-web 1.2
-
-Accounts with ? in name had empty registers (fixes [#498](https://github.com/simonmichael/hledger/issues/498)) (Bryan Richter)
-
-Allow megaparsec 5.2 (fixes [#503](https://github.com/simonmichael/hledger/issues/503))
-
-
-
-
-
-## 2016/12/31 hledger 1.1
-
-***more robust file format detection,
-integration of WIP ledger4 parser,
-balance assignments,
-hledger-ui --watch,
-hledger-iadd integration,
-bugfixes
-***
-
-
-
-
-Release contributors:
-Simon Michael, Johannes Gerer, Mykola Orliuk, Shubham Lagwankar.
-
- [project-wide](#project-wide-changes-for-1.1)
-| [hledger-lib](#hledger-lib-1.1)
-| [hledger](#hledger-1.1-1)
-| [hledger-ui](#hledger-ui-1.1)
-| [hledger-web](#hledger-web-1.1)
-| [hledger-api](#hledger-api-1.1)
-
-### project-wide changes for 1.1
-
-#### misc
-
-- don't show stack trace details in errors
-
-- more predictable [file format detection](/hledger.html#input-files)
-
- When we don't recognise a file's extension, instead of choosing a subset of
- readers to try based on content sniffing, now we just try them all.
- Also, this can be overridden by prepending the reader name and a
- colon to the file path (eg timedot:file.dat, csv:-).
-
-- avoid creating junk CSV rules files when trying alternate readers.
- We now create it only after successfully reading a file as CSV.
-
-- improvements to [-B](/journal.html#transaction-prices) and [-V](/hledger.html#market-value) docs: clearer descriptions, more linkage ([#403](http://bugs.hledger.org/403))
-
-### hledger-lib 1.1
-
-#### journal format
-
-- [balance assignments](/journal.html#balance-assignments) are now supported ([#438](http://bugs.hledger.org/438), [#129](http://bugs.hledger.org/129), [#157](http://bugs.hledger.org/157), [#288](http://bugs.hledger.org/288))
-
- This feature also brings a slight performance drop (~5%);
- optimisations welcome.
-
-- also recognise `*.hledger` files as hledger journal format
-
-#### ledger format
-
-- use ledger-parse from the ledger4 project as an alternate reader for C++ Ledger journals
-
- The idea is that some day we might get better compatibility with Ledger files this way.
- Right now this reader is not very useful and will be used only if you explicitly select it with a `ledger:` prefix.
- It parses transaction dates, descriptions, accounts and amounts, and ignores everything else.
- Amount parsing is delegated to hledger's journal parser, and malformed amounts might be silently ignored.
-
- This adds at least some of the following as new dependencies for hledger-lib:
- parsers, parsec, attoparsec, trifecta.
-
-#### misc
-
-- update base lower bound to enforce GHC 7.10+
-
- hledger-lib had a valid install plan with GHC 7.8, but currently requires GHC 7.10 to compile.
- Now we require base 4.8+ everywhere to ensure the right GHC version at the start.
-
-- Hledger.Read api cleanups
-
-- rename dbgIO to dbg0IO, consistent with dbg0, and document a bug in dbg*IO
-
-- make readJournalFiles [f] equivalent to readJournalFile f ([#437](http://bugs.hledger.org/437))
-
-- more general parser types enabling reuse outside of IO ([#439](http://bugs.hledger.org/439))
-
-### hledger 1.1
-
-#### balance
-
-- with -V, don't ignore market prices in the future ([#453](http://bugs.hledger.org/453), [#403](http://bugs.hledger.org/403))
-
-- with -V and multiple same-date market prices, use the last parsed not the highest price ([#403](http://bugs.hledger.org/403))
-
-#### misc
-
-- fix non-existent "oldtime" dependency ([#431](http://bugs.hledger.org/431))
-
-- [hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs) now generates valid journal format when there are multiple commodities
-
-### hledger-ui 1.1
-
-- with [--watch](/hledger-ui.html#options), the display updates automatically to show file or date changes
-
- hledger-ui --watch will reload data when the journal file (or any included file) changes.
- Also, when viewing a current standard period (ie this day/week/month/quarter/year),
- the period will move as needed to track the current system date.
-
-- the [--change](/hledger-ui.html#options) flag shows period changes at startup instead of historical ending balances
-
-- the A key runs the hledger-iadd tool, if installed
-
-- always reload when g is pressed
-
- Previously it would check the modification time and reload only if
- it looked newer than the last reload.
-
-- mark hledger-ui as "stable"
-
-- allow brick 0.15, vty 5.14, text-zipper 0.9
-
-### hledger-web 1.1
-
-- add [--host](/hledger-web.html#options) option ([#429](http://bugs.hledger.org/429))
-
- This came up in the context of Docker, but it seems it wasn't
- possible for hledger-web to serve remote clients directly (without
- a proxy) because of 127.0.0.1 being hardcoded. That can now be
- changed with --host=IPADDR. Also, the default base url uses this
- address rather than a hard-coded "localhost".
-
-- rename --server to --serve
-
- The --server flag sounded too close in meaning to --host so
- I've renamed it to --serve. The old spelling is still accepted,
- but deprecated and will be removed in the next release.
-
-### hledger-api 1.1
-
-- serves on 127.0.0.1 by default, [--host](/hledger-api.html#options) option added ([#432](http://bugs.hledger.org/432))
-
- Consistent with hledger-web: serves only local requests by default,
- use --host=IPADDR to change this.
-
-- fixed the version string in command-line help and swagger info
-
-
-
-## 2016/10/26 hledger 1.0
-
-***More hledger-ui features,
-better hledger-web layout,
-new hledger-api server,
-new timedot format,
---pivot & --anon,
-reorganized multi-format docs,
-built-in help.
-***
-
-([announcement](https://groups.google.com/d/topic/hledger/WgdTy3-a6sc/discussion))
-
-Release contributors:
-Simon Michael, Dominik Süß, Thomas R. Koll, Moritz Kiefer,
-jungle-boogie, Sergei Trofimovich, Malte Brandy, Sam Doshi,
-Mitchell Rosen, Hans-Peter Deifel, Brian Scott, and Andrew Jones.
-
- [project-wide](#project-wide-changes-for-1.0)
-| [hledger-lib](#hledger-lib-1.0)
-| [hledger](#hledger-1.0-1)
-| [hledger-ui](#hledger-ui-1.0)
-| [hledger-web](#hledger-web-1.0)
-| [hledger-api](#hledger-api-1.0)
-
-### project-wide changes for 1.0
-
-#### misc
-
-- added GHC 8 support, dropped GHC 7.6 and 7.8 support.
-
- GHC 7.8 support could be restored with small code changes and a maintainer.
-
-- a cabal.project file has been added (Moritz Kiefer)
-
-- use hpack for maintaining cabal files ([#371](http://bugs.hledger.org/371)).
-
- Instead of editing cabal files directly, we now edit the less
- verbose and less redundant package.yaml files and let stack (or
- hpack) update the cabal files. We commit both the .yaml and
- .cabal files.
-
-- clean up some old cabal flags
-
-- tools/simplebench has been spun off as the [quickbench](http://hackage.haskell.org/package/quickbench) package.
-
-- add Appveyor CI builds, provide more up-to-date Windows binaries
-
-- extra: add a bunch of CSV rules examples
-
-#### docs
-
-- the website is simpler, clearer, and more mobile-friendly.
-
- Docs are now collected on a single page and organised by type: getting started, reference, more.
-
-- reference docs have been split into one manual for each executable and file format.
-
- This helps with maintenance and packaging and also should make it
- easier to see what's available and to read just what you need.
-
-- manuals are now provided in html, plain text, man and info formats
-
- generated from the same source by a new Shake-based docs build system. ([#292](http://bugs.hledger.org/292))
-
-- versioned manuals are provided on the website, covering recent releases and the latest dev version ([#385](http://bugs.hledger.org/385), [#387](http://bugs.hledger.org/387))
-
-- manuals are built in to the hledger executables, allowing easy offline reading on all platforms.
-
- PROG -h shows PROG's command-line usage
- PROG --help shows PROG's manual (fixed width)
- PROG --man shows PROG's manual with man (formatted/paged)
- PROG --info shows PROG's manual with info (hypertext)
- hledger help [TOPIC] shows any manual
- hledger man [TOPIC] shows any manual with man
- hledger info [TOPIC] shows any manual with info
-
-- the general and reporting options are now listed in all executable manuals.
-
- We assume any of them which are unsupported are harmlessly ignored.
-
-- demo.hledger.org is using beancount's example journal.
-
- This is the somewhat realistic example journal from the beancount
- project, tweaked for hledger.
-
-- minor copyedits (jungle-boogie)
-
-#### cli
-
-- parsing multiple input files is now robust.
-
- When multiple -f options are provided, we now parse each file
- individually rather than just concatenating them, so they can
- have different formats ([#320](http://bugs.hledger.org/320)). Note this also means that
- directives (like \`Y\` or \`alias\`) no longer carry over from one
- file to the next.
-
-- I has been added as the short flag for --ignore-assertions
-
- (this is different from Ledger's CLI, but useful for hledger-ui).
-
-- parsing an argument-less --debug option is more robust
-
-### hledger-lib 1.0
-
-#### timedot format
-
-- new "timedot" format for retroactive/approximate time logging.
-
- Timedot is a plain text format for logging dated, categorised
- quantities (eg time), supported by hledger. It is convenient
- for approximate and retroactive time logging, eg when the
- real-time clock-in/out required with a timeclock file is too
- precise or too interruptive. It can be formatted like a bar
- chart, making clear at a glance where time was spent.
-
-#### timeclock format
-
-- renamed "timelog" format to "timeclock", matching the emacs package
-
-- sessions can no longer span file boundaries (unclocked-out
-
- sessions will be auto-closed at the end of the file).
-
-- transaction ids now count up rather than down ([#394](http://bugs.hledger.org/394))
-
-- timeclock files no longer support default year directives
-
-- removed old code for appending timeclock transactions to journal transactions.
-
- A holdover from the days when both were allowed in one file.
-
-#### csv format
-
-- fix empty field assignment parsing, rule parse errors after megaparsec port ([#407](http://bugs.hledger.org/407)) (Hans-Peter Deifel)
-
-#### journal format
-
-- journal files can now include timeclock or timedot files ([#320](http://bugs.hledger.org/320))
-
- (but not yet CSV files).
-
-- fixed an issue with ordering of same-date transactions included from other files
-
-- the "commodity" directive and "format" subdirective are now supported, allowing
-
- full control of commodity style ([#295](http://bugs.hledger.org/295)) The commodity directive's
- format subdirective can now be used to override the inferred
- style for a commodity, eg to increase or decrease the
- precision. This is at least a good workaround for [#295](http://bugs.hledger.org/295).
-
-- Ledger-style "apply account"/"end apply account" directives are now used to set a default parent account.
-
-- the Ledger-style "account" directive is now accepted (and ignored).
-
-- bracketed posting dates are more robust ([#304](http://bugs.hledger.org/304))
-
- Bracketed posting dates were fragile; they worked only if you
- wrote full 10-character dates. Also some semantics were a bit
- unclear. Now they should be robust, and have been documented
- more clearly. This is a legacy undocumented Ledger syntax, but
- it improves compatibility and might be preferable to the more
- verbose "date:" tags if you write posting dates often (as I do).
- Internally, bracketed posting dates are no longer considered to
- be tags. Journal comment, tag, and posting date parsers have
- been reworked, all with doctests.
-
-- balance assertion failure messages are clearer
-
-- with --debug=2, more detail about balance assertions is shown.
-
-#### misc
-
-- file parsers have been ported from Parsec to Megaparsec \o/ ([#289](http://bugs.hledger.org/289), [#366](http://bugs.hledger.org/366)) (Alexey Shmalko, Moritz Kiefer)
-
-- most hledger types have been converted from String to Text, reducing memory usage by 30%+ on large files
-
-- file parsers have been simplified for easier troubleshooting ([#275](http://bugs.hledger.org/275)).
-
- The journal/timeclock/timedot parsers, instead of constructing
- opaque journal update functions which are later applied to build
- the journal, now construct the journal directly by modifying the
- parser state. This is easier to understand and debug. It also
- rules out the possibility of journal updates being a space
- leak. (They weren't, in fact this change increased memory usage
- slightly, but that has been addressed in other ways). The
- ParsedJournal type alias has been added to distinguish
- "being-parsed" journals and "finalised" journals.
-
-- file format detection is more robust.
-
- The Journal, Timelog and Timedot readers' detectors now check
- each line in the sample data, not just the first one. I think the
- sample data is only about 30 chars right now, but even so this
- fixed a format detection issue I was seeing.
- Also, we now always try parsing stdin as journal format (not just sometimes).
-
-- all file formats now produce transaction ids, not just journal ([#394](http://bugs.hledger.org/394))
-
-- git clone of the hledger repo on windows now works ([#345](http://bugs.hledger.org/345))
-
-- added missing benchmark file ([#342](http://bugs.hledger.org/342))
-
-- our stack.yaml files are more compatible across stack versions ([#300](http://bugs.hledger.org/300))
-
-- use [newer file-embed](https://github.com/snoyberg/file-embed/issues/18) to fix ghci working directory dependence
-
-- report more accurate dates in account transaction report when postings have their own dates
-
- (affects hledger-ui and hledger-web registers).
- The newly-named "transaction register date" is the date to be
- displayed for that transaction in a transaction register, for
- some current account and filter query. It is either the
- transaction date from the journal ("transaction general date"),
- or if postings to the current account and matched by the
- register's filter query have their own dates, the earliest of
- those posting dates.
-
-- simplify account transactions report's running total.
-
- The account transactions report used for hledger-ui and -web
- registers now gives either the "period total" or "historical
- total", depending strictly on the --historical flag. It doesn't
- try to indicate whether the historical total is the accurate
- historical balance (which depends on the user's report query).
-
-- reloading a file now preserves the effect of options, query arguments etc.
-
-- reloading a journal should now reload all included files as well.
-
-- the Hledger.Read.\* modules have been reorganised for better reuse.
-
- Hledger.Read.Utils has been renamed Hledger.Read.Common
- and holds low-level parsers & utilities; high-level read
- utilities are now in Hledger.Read.
-
-- clarify amount display style canonicalisation code and terminology a bit.
-
- Individual amounts still have styles; from these we derive
- the standard "commodity styles". In user docs, we might call
- these "commodity formats" since they can be controlled by the
- "format" subdirective in journal files.
-
-- Journal is now a monoid
-
-- expandPath now throws a proper IO error
-
-- more unit tests, start using doctest
-
-### hledger 1.0
-
-#### add
-
-- suggest only one commodity at a time as default amount ([#383](http://bugs.hledger.org/383))
-
- (since we currently can't input more than one at a time)
-
-#### balance
-
-- added --change flag for consistency
-
-- H/--historical now also affects single-column balance reports with a start date ([#392](http://bugs.hledger.org/392)).
-
- This has the same effect as just omitting the start date, but adds consistency.
-
-- in CSV output, render amounts in one-line format ([#336](http://bugs.hledger.org/336))
-
-#### balancesheet
-
-- fix an infinite loop ([#393](http://bugs.hledger.org/393))
-
-#### print
-
-- in CSV output, fix and rename the transaction id field
-
-#### register
-
-- fix a sorting regression with --date2 ([#326](http://bugs.hledger.org/326))
-
-- --average/-A is now affected by --historical/-H
-
-- added --cumulative flag for consistency
-
-- in CSV output, include the transaction id and rename the total field ([#391](http://bugs.hledger.org/391))
-
-#### stats
-
-- fixed an issue with ordering of include files
-
-#### misc
-
-- --pivot option added, groups postings by tag instead of account ([#323](http://bugs.hledger.org/323)) (Malte Brandy)
-
-- --anon option added, obfuscates account names and descriptions ([#265](http://bugs.hledger.org/265)) (Brian Scott)
-
- (Only affects the hledger tool, for now.)
-
-- try to clarify balance/register's various report modes,
-
- kinds of "balance" displayed, and related options and language.
-
-- with multiple --change/--cumulative/--historical flags, use the last one instead of complaining
-
-- don't add the "d" suffix when displaying day periods
-
-- stack-ify extra/hledger-rewrite.hs
-
-### hledger-ui 1.0
-
-#### accounts screen
-
-- at depth 0, show accounts on one "All" line and show all transactions in the register
-
-- 0 now sets depth limit to 0 instead of clearing it
-
-- always use --no-elide for a more regular accounts tree
-
-#### register screen
-
-- registers can now include/exclude subaccount transactions.
-
- The register screen now includes subaccounts' transactions if the
- accounts screen was in tree mode, or when showing an account
- which was at the depth limit. Ie, it always shows the
- transactions contributing to the balance displayed on the
- accounts screen. As on the accounts screen, F toggles between
- tree mode/subaccount txns included by default and flat
- mode/subaccount txns excluded by default. (At least, it does when
- it would make a difference.)
-
-- register transactions are filtered by realness and status ([#354](http://bugs.hledger.org/354)).
-
- Two fixes for the account transactions report when --real/--cleared/real:/status:
- are in effect, affecting hledger-ui and hledger-web:
-
- 1. exclude transactions which affect the current account via an excluded posting type.
- Eg when --real is in effect, a transaction posting to the current account with only
- virtual postings will not appear in the report.
-
- 2. when showing historical balances, don't count excluded posting types in the
- starting balance. Eg with --real, the starting balance will be the sum of only the
- non-virtual prior postings.
-
- This is complicated and there might be some ways to confuse it still, causing
- wrongly included/excluded transactions or wrong historical balances/running totals
- (transactions with both real and virtual postings to the current account, perhaps ?)
-
-- show more accurate dates when postings have their own dates.
-
- If postings to the register account matched by the register's
- filter query have their own dates, we show the earliest of these
- as the transaction date.
-
-#### misc
-
-- H toggles between showing "historical" or "period" balances ([#392](http://bugs.hledger.org/392)).
-
- By default hledger-ui now shows historical balances, which
- include transactions before the report start date (like hledger
- balance --historical). Use the H key to toggle to "period" mode,
- where balances start from 0 on the report start date.
-
-- shift arrow keys allow quick period browsing
-
- - shift-down narrows to the next smaller standard period
- (year/quarter/month/week/day), shift-up does the reverse
- - when narrowed to a standard period, shift-right/left moves to
- the next/previous period
- - \`t\` sets the period to today.
-
-- a runs the add command
-
-- E runs $HLEDGERUIEDITOR or $EDITOR or a default editor (vi) on the journal file.
-
- When using emacs or vi, if a transaction is selected the cursor will be positioned at its journal entry.
-
-- / key sets the filter query; BACKSPACE/DELETE clears it
-
-- Z toggles display of zero items (like --empty), and they are shown by default.
-
- -E/--empty is now the default for hledger-ui, so accounts with 0 balance
- and transactions posting 0 change are shown by default. The Z key
- toggles this, entering "nonzero" mode which hides zero items.
-
-- R toggles inclusion of only real (non-virtual) postings
-
-- U toggles inclusion of only uncleared transactions/postings
-
-- I toggles balance assertions checking, useful for troubleshooting
-
-- vi-style movement keys are now supported (for help, you must now use ? not h) ([#357](http://bugs.hledger.org/357))
-
-- ESC cancels minibuffer/help or clears the filter query and jumps to top screen
-
-- ENTER has been reserved for later use
-
-- reloading now preserves any options and modes in effect
-
-- reloading on the error screen now updates the message rather than entering a new error screen
-
-- the help dialog is more detailed, includes the hledger-ui manual, and uses the full terminal width if needed
-
-- the header/footer content is more efficient; historical/period and tree/flat modes are now indicated in the footer
-
-- date: query args on the command line now affect the report period.
-
- A date2: arg or --date2 flag might also affect it (untested).
-
-- hledger-ui now uses the quicker-building microlens
-
-### hledger-web 1.0
-
-#### ui
-
-- use full width on large screens, hide sidebar on small screens, more standard bootstrap styling ([#418](http://bugs.hledger.org/418), [#422](http://bugs.hledger.org/422)) (Dominik Süß)
-
-- show the sidebar by default ([#310](http://bugs.hledger.org/310))
-
-- fix the add link's tooltip
-
-- when the add form opens, focus the first field ([#338](http://bugs.hledger.org/338))
-
-- leave the add form's date field blank, avoiding a problem with tab clearing it ([#322](http://bugs.hledger.org/322))
-
-- use transaction id instead of date in transaction urls ([#308](http://bugs.hledger.org/308)) (Thomas R. Koll)
-
-- after following a link to a transaction, highlight it (Thomas R. Koll)
-
-- misc. HTML/CSS/file cleanups/fixes (Thomas R. Koll)
-
-#### misc
-
-- startup is more robust ([#226](http://bugs.hledger.org/226)).
-
- Now we exit if something is already using the specified port,
- and we don't open a browser page before the app is ready.
-
-- termination is more robust, avoiding stray background threads.
-
- We terminate the server thread more carefully on exit, eg on control-C in GHCI.
-
-- more robust register dates and filtering in some situations (see hledger-ui notes)
-
-- reloading the journal preserves options, arguments in effect ([#314](http://bugs.hledger.org/314)).
-
- The initial query specified by command line arguments is now preserved
- when the journal is reloaded. This does not appear in the web UI, it's
- like an invisible extra filter.
-
-- show a proper not found page on 404
-
-- document the special \`inacct:\` query ([#390](http://bugs.hledger.org/390))
-
-### hledger-api 1.0
-
-#### misc
-
-- new hledger-api tool: a simple web API server with example clients ([#316](http://bugs.hledger.org/316))
-
-- start an Angular-based API example client ([#316](http://bugs.hledger.org/316)) (Thomas R. Koll)
-
-
-
-## 2015/10/30 hledger 0.27
-
-***New curses-style interface, market value reporting, wide characters, fast regex aliases, man pages***
-([announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1267))
-
-
-Release contributors:
-Simon Michael,
-Carlos Lopez-Camey.
-
-**hledger 0.27:**
-
-Account aliases:
-
-- Regular expression account aliases are now fast enough that you can
- use lots of them without slowing things down. They now take
- O(aliases x accounts) time, instead of O(aliases x transactions);
- also, regular expressions are no longer recompiled unnecessarily.
-
-Documentation:
-
-- The hledger packages now have man pages, based on the current user
- manual, thanks to the mighty pandoc ([#282](http://bugs.hledger.org/282)).
-
-Journal format:
-
-- Dates must now begin with a digit (not /, eg).
-
-- The comment directive longer requires an end comment, and will
- extend to the end of the file(s) without it.
-
-Command-line interface:
-
-- Output (balance reports, register reports, print output etc.)
- containing wide characters, eg chinese/japanese/korean characters,
- should now align correctly, when viewed in apps and fonts that show
- wide characters as double width ([#242](http://bugs.hledger.org/242)).
-
-- The argument for --depth or depth: must now be positive.
-
-add:
-
-- Journal entries are now saved with all amounts explicit, to avoid
- losing price info ([#283](http://bugs.hledger.org/283)).
-
-- Fixed a bug which sometimes (when the same letter pair was repeated)
- caused it not to pick the most similar past transaction for defaults.
-
-balance:
-
-- There is now a -V/--value flag to report current market value (as in Ledger).
- It converts all reported amounts using their "default market price".
- "Market price" is the new name for "historical prices", defined with the P directive.
- The default market price for a commodity is the most recent one found in the journal on or before the report end date.
-
- Unlike Ledger, hledger's -V uses only the market prices recorded
- with P directives; it does not use the transaction prices
- recorded as part of posting amounts.
- Using both -B and -V at the same time is possible.
-
-- Fixed a bug in amount normalization which caused amount styles
- (commodity symbol placement, decimal point character, etc.) to be
- lost in certain cases ([#230](http://bugs.hledger.org/230), [#276](http://bugs.hledger.org/276)).
-
-- The balance command's --format option can now adjust the rendering
- style of multi-commodity amounts, if you begin the format string
- with one of:
-
- %_ - renders amounts on multiple lines, bottom-aligned (the default)
- %^ - renders amounts on multiple lines, top-aligned
- %, - renders amounts on one line, comma-separated
-
-- The balance report's final total (and the line above it) now adapt
- themselves to a custom --format.
-
-print:
-
-- The --match option prints the journal entry that best matches a
- description (ie whose description field is most similar to the value
- given, and if there are several equally similar, the most recent).
- This was originally an add-on I used to guess account names for
- ledger-autosync. It's nice for quickly looking up a recent
- transaction from a guessed or partial description.
-
-- print now always right-aligns the amounts in an entry, even when
- they are wider than 12 characters. (If there is a price, it's
- considered part of the amount for right-alignment.)
-
-register:
-
-- Amount columns now resize automatically, using more space if it's
- needed and available.
-
-**hledger-ui 0.27:**
-
-- [hledger-ui](manual#ui) is a new curses-style UI, intended to be a standard part
- of the hledger toolset for all users (except on native MS Windows,
- where the vty lib is not [yet](https://github.com/coreyoconnor/vty/pull/1) supported).
-
- The UI is quite simple, allowing just browsing of accounts and
- transactions, but it has a number of improvements over the old
- hledger-vty, which it replaces:
-
- - adapts to screen size
- - handles wide characters
- - shows multi-commodity amounts on one line
- - manages cursor and scroll position better
- - allows depth adjustment
- - allows --flat toggle
- - allows --cleared toggle
- - allows journal reloading
- - shows a more useful transaction register, like hledger-web
- - offers multiple color themes
- - includes some built-in help
-
- hledger-ui is built with brick, a new higher-level UI library based
- on vty, making it relatively easy to grow and maintain.
-
-**hledger-web 0.27:**
-
-- Fix keyboard shortcut for adding a transaction (Carlos Lopez-Camey)
-
-- Clear the form when clicking 'Add a transaction' (just like the shortcut) (Carlos Lopez-Camey)
-
-- Disallow -f- (reading from standard input) which currently doesn't work ([#202](http://bugs.hledger.org/202))
-
-- Fix broken links when using --base-url ([#235](http://bugs.hledger.org/235))
-
-- Fix the --file-url option ([#285](http://bugs.hledger.org/285))
-
-- Show fewer "other accounts" in the account register: to reduce
- clutter in the "other accounts" field, if there are both real and
- virtual postings to other accounts, show only the accounts posted to
- by real postings.
-
-
-## 2015/7/12 hledger 0.26
-
-
-
-***Website & doc updates, account aliases, misc. bugfixes & cleanups, performance.***
-
-Release contributors:
-Simon Michael,
-Imuli,
-Carlos Lopez-Camey,
-Kyle Marek-Spartz,
-Rick Lupton,
-Simon Hengel.
-
-**Changes to hledger.org & docs:**
-
-- examples everywhere, screenshots, content & style updates
-- manual: reorganise topics, add some undocumented things, clarify some things
-- dev guide: more links, put how-tos first, copy diagram from old wiki, update the setup docs
-
-
-**User-visible changes in hledger since 0.25.1:**
-
-Account aliases:
-
-- Account aliases are once again non-regular-expression-based, by default. (#252)
-
- The regex account aliases added in 0.24 tend to trip up people
- switching between hledger and Ledger. (Also they are currently
- slow). We now use the old non-regular-expression aliases again,
- by default; these are unsurprising, useful, and pretty close in
- functionality to Ledger's aliases.
-
- The new regex aliases are still available, but they must now be
- enclosed in forward slashes. (Ledger effectively ignores these.)
-
-Journal format:
-
-- We now parse, and also print, journal entries with no postings, as
- proposed on the mail lists. These are not well-formed General
- Journal entries/transactions, but on the other hand:
- Ledger and beancount parse them;
- if they are parsed, they should be printed;
- they provide a convenient way to record (and report) non-transaction events;
- and they permit more gradual introduction and learning of the concepts
- (so eg a beginner can keep a simple journal before learning about accounts and postings).
-
-- Trailing whitespace after a `comment` directive is now ignored.
-
-Command-line interface:
-
-- The -f/file option may now be used multiple times.
- This is equivalent to concatenating the input files before running hledger.
- The add command adds entries to the first file specified.
-
-Queries:
-
-- real: (no argument) is now a synonym for real:1
-
-- tag: now matches tag names with a regular expression, like most other queries
-
-- empty: is no longer supported, as it overlaps a bit confusingly with
- amt:0. The --empty flag is still available.
-
-- You can now match on pending status (#250)
-
- A transaction/posting status of ! (pending) was effectively equivalent
- to * (cleared). Now it's a separate state, not matched by --cleared.
- The new Ledger-compatible --pending flag matches it, and so does
- --uncleared.
-
- The relevant search query terms are now status:*, status:! and
- status: (the old status:1 and status:0 spellings are deprecated).
-
- Since we interpret --uncleared and status: as "any state except cleared",
- it's not currently possible to match things which are neither cleared
- nor pending.
-
-activity:
-
-- activity no longer excludes 0-amount postings by default.
-
-add:
-
-- Don't show quotes around the journal file path in the "Creating..."
- message, for consistency with the subsequent "Adding..." message.
-
-balancesheet:
-
-- Accounts beginning with "debt" or now also recognised as liabilities.
-
-print:
-
-- We now limit the display precision of inferred prices. (#262)
-
- When a transaction posts to two commodities without specifying the
- conversion price, we generate a price which makes it balance (cf
- http://hledger.org/manual.html#prices). The print command showed
- this with full precision (so that manual calculations with the
- displayed numbers would look right), but this sometimes meant we
- showed 255 digits (when there are multiple postings in the
- commodity being priced, and the averaged unit price is an
- irrational number). In this case we now set the price's display
- precision to the sum of the (max) display precisions of the
- commodities involved. An example:
- ```
- hledger -f- print
- <<<
- 1/1
- c C 10.00
- c C 11.00
- d D -320.00
- >>>
- 2015/01/01
- c C 10.00 @ D 15.2381
- c C 11.00 @ D 15.2381
- d D -320.00
-
- >>>=0
- ```
- There might still be cases where this will show more price decimal
- places than necessary.
-
-- We now show inferred unit prices with at least 2 decimal places.
-
- When inferring prices, if the commodities involved have low
- display precisions, we don't do a good job of rendering
- accurate-looking unit prices. Eg if the journal doesn't use any
- decimal places, any inferred unit prices are also displayed with
- no decimal places, which makes them look wrong to the user. Now,
- we always give inferred unit prices a minimum display precision of
- 2, which helps a bit.
-
-register:
-
-- Postings with no amounts could give a runtime error in some obscure case, now fixed.
-
-stats:
-
-- stats now supports -o/--outputfile, like register/balance/print.
-- An O(n^2) performance slowdown has been fixed, it's now much faster on large journals.
- ```
- +--------------------------------------++--------+--------+
- | || 0.25 | 0.26 |
- +======================================++========+========+
- | -f data/100x100x10.journal stats || 0.10 | 0.16 |
- | -f data/1000x1000x10.journal stats || 0.45 | 0.21 |
- | -f data/10000x1000x10.journal stats || 58.92 | 2.16 |
- +--------------------------------------++--------+--------+
- ```
-
-Miscellaneous:
-
-- The June 30 day span was not being rendered correctly; fixed. (#272)
-- The deprecated shakespeare-text dependency has been removed more thoroughly.
-- The bench script invoked by "cabal bench" or "stack bench" now runs
- some simple benchmarks.
- You can get more accurate benchmark times by running with --criterion.
- This will usually give much the same numbers and takes much longer.
- Or with --simplebench, it benchmarks whatever commands are
- configured in bench/default.bench. This mode uses the first
- "hledger" executable in $PATH.
-
-**User-visible changes in hledger-web since 0.25.1:**
-
-- make the j keybinding respect --base-url (fixes #271)
-- respect command line options (fixes #225)
-- include the unminified jquery source again (#161)
-- fix build breakage from #165 (fixes #268)
-- fix a js error breaking add form in browsers other than firefox (fixes #251)
-- drop deprecated network-conduit dependency
-
-#### 2015/4/29 hledger-web 0.25.1
-
-- support/require base-compat >0.8 (#245)
-
-#### 2015/4/29 hledger 0.25.1
-
-- timelog: support the description field (#247)
-
-#### 2015/4/29 hledger-lib 0.25.1
-
-- support/require base-compat >0.8 (#245)
-
-## 2015/4/7 hledger 0.25
-
-
-[announcement](https://groups.google.com/forum/#!topic/hledger/k2Y_NYZGGJw)
-***GHC 7.10 compatibility, terminal width awareness, useful averages and totals columns, and a more robust hledger-web add form.***
-
-Release contributors:
-Simon Michael,
-Julien Moutinho.
-
-**User-visible changes in hledger since 0.24.1:**
-
-- GHC 7.10 compatibility ([#239](http://bugs.hledger.org/239))
-
-- On POSIX systems, the register command now uses the full terminal width by
- default. Specifically, the output width is set from:
-
- 1. a --width option
- 2. or a COLUMNS environment variable (NB: not the same as a bash shell var)
- 3. or on POSIX (non-windows) systems, the current terminal width
- 4. or the default, 80 characters.
-
- This feature requires the C curses dev libraries, making installation slightly harder.
- If that's a problem you can disable curses support with a cabal flag:
- `cabal install -f-curses ...`.
-
-- register's --width option now accepts an optional
- description column width following the overall width (`--width
- WIDTH[,DESCWIDTH]`). This also sets the account column width, since
- the available space (WIDTH-41) is divided up between these two
- columns. Here's a diagram:
-
-```
- <--------------------------------- width (W) ---------------------------------->
- date (10) description (D) account (W-41-D) amount (12) balance (12)
- DDDDDDDDDD dddddddddddddddddddd aaaaaaaaaaaaaaaaaaa AAAAAAAAAAAA AAAAAAAAAAAA
-```
- Examples:
-```
- $ hledger reg # use terminal width on posix
- $ hledger reg -w 100 # width 100, equal description/account widths
- $ hledger reg -w 100,40 # width 100, wider description
- $ hledger reg -w $COLUMNS,100 # terminal width and set description width
-```
-
-- balance: new -T/--row-total and -A/--average options
-
- In multicolumn balance reports, -T/--row-total now shows a totals
- column and -A/--average shows an averages column.
- This helps eg to see monthly average expenses (hledger bal ^expenses -MA).
-
- NB our use of -T deviates from Ledger's UI, where -T sets a custom
- final total expression.
-
-- balance: -N is now short for --no-total
-- balance: fix partially-visible totals row with --no-total
-
- A periodic (not using --cumulative or --historical) balance report
- with --no-total now hides the totals row properly.
-
-- journal, csv: comment lines can also start with *
-
- As in Ledger. This means you can embed emacs org/outline-mode nodes in
- your journal file and manipulate it like an outline.
-
-**User-visible changes in hledger-web since 0.24.1:**
-
-- GHC 7.10 compatibility ([#239](http://bugs.hledger.org/239))
-
-- fix the add form when there are included files ([#234](http://bugs.hledger.org/234))
-
- NB to make this work, the add form now shows the full file path of
- the main and included journal files.
-
-- improve add form validation ([#223](http://bugs.hledger.org/223), [#234](http://bugs.hledger.org/234))
-
- All add form errors are displayed as form errors, not internal
- server errors, and when there are errors the add form is redisplayed
- (form inputs are not preserved, currently).
-
-- keep the add button right-aligned when pressing ctrl - on the add form
-
-#### 2015/3/15 hledger 0.24.1
-
-- timelog: show hours with 2 decimal places, not 1 ([#237](http://bugs.hledger.org/237))
-- fix balance accumulation through assertions in several commodities ([#195](http://bugs.hledger.org/195))
-- fix rendering of week 52 heading in weekly reports
-- allow utf8-string-1 ([fpco/stackage/#426](https://github.com/fpco/stackage/issues/426))
-
-#### 2015/3/15 hledger-lib 0.24.1
-
-- fix JournalReader "ctx" compilation warning
-- add some type signatures in Utils to help make ghci-web
-
-#### 2015/1/10 hledger-web 0.24.1
-
-- add missing modules to fix cabal tests ([#232](http://bugs.hledger.org/232))
-
-
-## 2014/12/25 hledger 0.24
-
-Release contributors:
-Simon Michael,
-Julien Moutinho,
-Ryan Desfosses,
-Gergely Risko,
-Gwern Branwen.
-
-
-***CSV export,
-a non-floating point number representation,
-more powerful account aliases,
-speedups,
-and
-a streamlined web UI.***
-
-**User-visible changes in hledger since 0.23.3:**
-
-General:
-
-- fix redundant compilation when cabal installing the hledger packages
-- switch to Decimal for representing amounts ([#118](http://bugs.hledger.org/118))
-- report interval headings (eg in balance, register reports) are shown
- compactly when possible
-- general speedups.
-```
-+--------------------------------------------++----------------+--------------+--------+
-| || hledger-0.23.3 | hledger-0.24 | ledger |
-+============================================++================+==============+========+
-| -f data/100x100x10.journal balance || 0.05 | 0.03 | 0.01 |
-| -f data/1000x1000x10.journal balance || 0.34 | 0.21 | 0.04 |
-| -f data/10000x1000x10.journal balance || 2.72 | 1.48 | 0.19 |
-| -f data/10000x1000x10.journal balance aa || 3.16 | 1.55 | 0.14 |
-| -f data/100x100x10.journal register || 0.09 | 0.05 | 0.04 |
-| -f data/1000x1000x10.journal register || 0.66 | 0.32 | 0.30 |
-| -f data/10000x1000x10.journal register || 6.27 | 2.77 | 2.80 |
-| -f data/10000x1000x10.journal register aa || 3.30 | 1.62 | 0.21 |
-| -f data/100x100x10.journal print || 0.06 | 0.05 | 0.01 |
-| -f data/1000x1000x10.journal print || 0.42 | 0.25 | 0.04 |
-| -f data/10000x1000x10.journal print || 3.95 | 2.57 | 0.38 |
-| -f data/10000x1000x10.journal print aa || 3.23 | 1.56 | 0.14 |
-| -f data/100x100x10.journal stat || 0.04 | 0.03 | 0.01 |
-| -f data/1000x1000x10.journal stat || 0.35 | 0.24 | 0.03 |
-| -f data/10000x1000x10.journal stat || 14.84 | 13.29 | 0.20 |
-| -f data/10000x1000x10.journal stat aa || 12.08 | 10.16 | 0.17 |
-+--------------------------------------------++----------------+--------------+--------+
-```
-
-Journal format:
-
-- detect decimal point and digit groups more robustly ([#196](http://bugs.hledger.org/196))
-- check that transaction dates are followed by whitespace or newline
-- check that dates use a consistent separator character
-- balance assertions now are specific to a single commodity, like
- Ledger ([#195](http://bugs.hledger.org/195))
-- support multi-line comments using "comment", "end comment"
- directives, like Ledger
-
-CSV format:
-
-- fix: reading CSV data from stdin now works better
-- the original order of same-day transactions is now usually preserved
- (if the records appear to be in reverse date order, we reverse them
- before finally sorting by transaction date)
-- the rules file include directive is now relative to the current
- file's directory ([#198](http://bugs.hledger.org/198))
-- CSV output is now built in to the balance, print, and register
- commands, controlled by -O/--output-format (and -o/--output-file,
- see below). This means that hledger data can be easily exported,
- eg for spreadsheet reporting or to migrate to a different tool.
-
-CLI:
-
-- the --width and --debug options now require their argument ([#149](http://bugs.hledger.org/149))
-- when an option is repeated, the last value takes precedence ([#219](http://bugs.hledger.org/219)).
- This is helpful eg for customising your reporting command aliases on
- the fly.
-- smart dates (used in -p/-b/-e/date:/date2:) now must use a
- consistent separator character, and must be parseable to the end
-- output destination and format selection is now built in to the
- balance, print and register commands, controlled by -o/--output-file
- and -O/--output-format options. Notes:
- -o - means stdout.
- An output file name suffix matching a supported format will also
- set the output format, unless overridden by --output-format.
- Commands' supported output formats are listed in their
- command-line help. Two formats are currently available:
- txt (the default) and csv.
-- balance assertions can be disabled with --ignore-assertions
-
-Account aliases:
-
-- all matching account aliases are now applied, not just one directive
- and one option
-- account aliases now match by case insensitive regular expressions
- matching anywhere in the account name
-- account aliases can replace multiple occurrences of the pattern
- within an account name
-- an account alias replacement pattern can reference matched groups
- with \\N
-
-Queries:
-
-- date:/date2: with a malformed date now reports an error instead of
- being ignored
-- amt: now supports >= or <=
-- clarify status: docs and behaviour; "*" is no longer a synonym for
- "1" (fixes [#227](http://bugs.hledger.org/227))
-
-balance:
-
-- fix: in tree mode, --drop is ignored instead of showing empty account names
-- a depth limit of 0 now shows summary items with account name "...",
- instead of an empty report ([#206](http://bugs.hledger.org/206))
-- in multicolumn balance reports, -E now also shows posting-less
- accounts with a non-zero balance during the period (in addition to
- showing leading & trailing empty columns)
-- in multicolumn reports, multi-commodity amounts are rendered on one
- line for better layout ([#186](http://bugs.hledger.org/186))
-- multicolumn reports' title now includes the report span
-
-register:
-
-- runs faster with large output
-- supports date2:, and date:/date2: combined with --date2, better (fixes
- [#201](http://bugs.hledger.org/201), [#221](http://bugs.hledger.org/221), [#222](http://bugs.hledger.org/222))
-- a depth limit of 0 now shows summary items (see balance)
-- -A/--average now implies -E/--empty
-- postings with multi-commodity amounts are now top-aligned, like
- Ledger
-
-
-**User-visible changes in hledger-web since 0.23.3:**
-
-General:
-
-- fix: add missing hs/js files to package
-- the web UI has been streamlined, dropping the raw and entries views and
- the edit form
-- the help dialog has been improved
-- keyboard shortcuts are now available
-- the sidebar can be toggled open or closed (press s)
-
-Journal view:
-
-- layout tweaks for less truncation of descriptions and account names
-
-Register view:
-
-- fix: don't show all zero amounts when searching by account within an
- account register view
-- chart improvements: show zero balances with correct commodity; show
- accurate balance at all dates; show transaction events & tooltips;
- show zero/today lines & background colors
-
-Add form:
-
-- parses data more strictly and gives better errors (eg [#194](http://bugs.hledger.org/194))
-- allows any number of postings, not just two
-- after adding a transaction, goes back to the journal
-- keyboard shortcut (a) allows quick access
-
-Dependencies:
-
-- allow warp 3\*, wai-handler-launch 3\*
-- require yesod 1.4* (fixes [#212](http://bugs.hledger.org/212))
-- js updated (jquery, bootstrap, flot), added (typeahead, cookie, hotkeys),
- removed (select2)
-
-
-**API-ish changes in hledger-lib since 0.23.3:**
-
-- fix combineJournalUpdates folding order
-- fix a regexReplaceCI bug
-- fix a splitAtElement bug with adjacent separators
-- mostly replace slow regexpr with regex-tdfa (fixes [#189](http://bugs.hledger.org/189))
-- use the modern Text.Parsec API
-- allow transformers 0.4*
-- regexReplace now supports backreferences
-- Transactions now remember their parse location in the journal file
-- export Regexp types, disambiguate CsvReader's similarly-named type
-- export failIfInvalidMonth/Day (closes [#216](http://bugs.hledger.org/216))
-- track the commodity of zero amounts when possible
- (useful eg for hledger-web's multi-commodity charts)
-- show posting dates in debug output
-- more debug helpers
-
-
-#### 2014/9/12 hledger-web 0.23.3
-
-- remove warp, wai-handler-launch upper bounds (fixes [#205](http://bugs.hledger.org/205))
-
-#### 2014/9/12 hledger 0.23.3
-
-- allow text 1.2+ (fixes [#207](http://bugs.hledger.org/207))
-
-#### 2014/5/8 hledger 0.23.2
-
-- register: also fix date sorting of postings ([#184](http://bugs.hledger.org/184))
-
-#### 2014/5/7 hledger 0.23.1
-
-- register: fix a refactoring-related regression that the tests
- missed: if transactions were not ordered by date in the journal,
- register could include postings before the report start date in the
- output. ([#184](http://bugs.hledger.org/184))
-- add: don't apply a default commodity to amounts on entry ([#138](http://bugs.hledger.org/138))
-- cli: options before the add-on command name are now also passed to it ([#182](http://bugs.hledger.org/182))
-- csv: allow the first name in a fields list to be empty ([#178](http://bugs.hledger.org/178))
-- csv: don't validate fields count in skipped lines ([#177](http://bugs.hledger.org/177))
-
-
-## 2014/5/1 hledger 0.23
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/1028)
-***command-line fixes and polish, a new accounts
-command, and a number of changes to the balance command relating
-to --depth, --flat, and multicolumn mode, which I find has made it much
-more useful.***
-
-Changes since 0.22.2:
-
-Journal format:
-
-- A # (hash) in column 0 is now also supported for starting a top-level journal comment, like Ledger.
-- The "too many missing amounts" error now reminds about the 2-space rule.
-- Fix: . (period) is no longer parsed as a valid amount.
-- Fix: default commodity directives no longer limit the maximum display precision ([#169](http://bugs.hledger.org/169)).
-- Fix: + before an amount is no longer parsed as part of the commodity ([#181](http://bugs.hledger.org/181)).
-
-CLI:
-
-- Command-line help cleanups, layout improvements.
-- Descriptions are shown for known add-ons in the command list.
-- Command aliases have been simplified.
-- Add-ons can now have any of these file extensions:
- none, hs, lhs, pl, py, rb, rkt, sh, bat, com, exe.
-- Add-ons are displayed without their file extensions when possible.
-- Add-ons with the same name as a built-in command or alias are ignored.
-- Fix: add-on detection and invocation now works on windows.
-- Fix: add-ons with digits in the name are now found.
-- Fix: add-on arguments containing a single quote now work.
-- Fix: when -- is used to hide add-on options from the main program,
- it is no longer passed through as an add-on argument.
-
-accounts:
-
-- An accounts command has been added, similar to Ledger's, for listing account names
- in flat or hierarchical mode.
-
-add:
-
-- Tab completion now works at all prompts, and will insert the default if the input area is empty.
-- Account and amount defaults are more robust and useful.
-- Transactions may also be completed by the enter key, when there are no more default postings.
-- Input prompts are displayed in a different colour when supported.
-
-balance:
-
-- Balance reports in flat mode now always show exclusive (subaccount-excluding) balances.
-- Balance reports in flat mode with --depth now aggregate deeper accounts at the depth limit instead of excluding them.
-- Multicolumn reports in flat mode now support --drop.
-- Multicolumn balance reports can now show the account hierarchy with --tree.
-- Multicolumn report start/end dates are adjusted to encompass the displayed
- report periods, so the first and last periods are "full" and comparable to the others.
-- Fix: zero-balance leaf accounts below a non-zero-balance parent are no longer always shown ([#170](http://bugs.hledger.org/170)).
-- Fix: multicolumn reports now support --date2 (cf [#174](http://bugs.hledger.org/174)).
-
-balancesheet, cashflow, incomestatement:
-
-- These commands now support --flat and --drop.
-
-print:
-
-- Tag queries (tag:) will now match a transaction if any of its postings match.
-
-register:
-
-- The --display option has been dropped. To see an accurate running total which
- includes the prior starting balance, use --historical/-H (like balance).
-- With a report interval, report start/end dates are adjusted to encompass the displayed
- periods, so the first and last periods are "full" and comparable to the others.
-- Fix: --date2 now works with report intervals (fixes [#174](http://bugs.hledger.org/174)).
-
-Queries:
-
-- The currency/commodity query prefix (sym:) has been renamed to cur:.
-- Currency/commodity queries are applied more strongly in register and
- balance reports, filtering out unwanted currencies entirely. Eg
- hledger balance cur:'\$' now reports only the dollar amounts even if
- there are multi-currency transactions or postings.
-- Amount queries like amt:N, amt:N, where N is not 0, now do an unsigned
- comparison of the amount and N. That is, they compare the absolute magnitude.
- To do a signed comparison instead, write N with its sign (eg amt:+N, amt:<+N, amt:>-N).
-- Fix: amount queries no longer give false positives on multi-commodity amounts.
-
-Miscellaneous:
-
-- Default report dates now derive from the secondary dates when --date2 is in effect.
-- Default report dates now notice any posting dates outside the transaction dates' span.
-- Debug output improvements.
-- New add-on example: extra/hledger-rewrite.hs, adds postings to matched entries.
-- Compatible with GHC 7.2 ([#155](http://bugs.hledger.org/155)) - GHC 7.8, shakespeare 2
-
-
-## 2014/5/1 hledger-web 0.23
-
-Changes since 0.22.8:
-
-- The --static-root flag has been renamed to --file-url.
-- hledger-web now builds with Cabal's default -O, not -O2,
- so may be a little quicker/less memory-hungry to install.
-
-
-#### 2014/4/29 hledger-web 0.22.8
-
-- allow shakespeare 2.* ([#179](http://bugs.hledger.org/179))
-
-#### 2014/4/17 hledger-web 0.22.7
-
-- add Peter Simons' patch fixing Data.Conduit.Network HostIPv4 error ([#171](http://bugs.hledger.org/171))
-
-#### 2014/4/16 hledger-web 0.22.6
-
-- depend on hledger[-lib] 0.22.2
-
-#### 2014/4/16 hledger 0.22.2
-
-- display years before 1000 with four digits, not three
-- avoid pretty-show to build with GHC < 7.4
-- allow text 1.1, drop data-pprint to build with GHC 7.8.x
-
-#### 2014/4/15 hledger-web 0.22.5
-
-- allow http-client 0.3.*, fixing cabal install again with GHC <= 7.6 (not yet 7.8)
-- use pretty-show only with GHC 7.4+, fixing GHC 7.2 (fixes [#155](http://bugs.hledger.org/155))
-- allow warp 2.1, fixing cabal install
-
-#### 2014/2/10 hledger-web 0.22.4
-
-* web: include the right unminified version of jquery.url.js (1.1) to avoid js breakage
-
-#### 2014/2/10 hledger-web 0.22.3
-
-* web: fix version number reported by --version
-
-#### 2014/2/10 hledger-web 0.22.2
-
-New:
-
-* web: new option `--static-root` to set the base url for static files
-
-Improved:
-
-* web: include unminified source of all javascript to help packagers (fixes [#161](http://bugs.hledger.org/161))
-* web: work around clang-related build failures with OS X mavericks/XCode 5
-* web: allow blaze-html 0.7 (closes [#159](http://bugs.hledger.org/159))
-
-
-#### 2014/1/6 hledger 0.22.1
-
-- require the latest pretty-show so hledger installation no longer
- needs an upgraded version of happy, and the docs build on hackage
-
-- require regex-tdfa directly instead of regex-compat-tdfa,
- simplifying Debian packaging
-
-## 2013/12/13 hledger 0.22
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/5333)
-
-New:
-
-- balance: with a reporting interval (monthly, yearly etc.), the
- [balance command](manual.html#balance) will now show a multi-column report, showing either
- the per-period changes in balance (by default),
- the period ending balances starting from zero (`--cumulative`),
- or the actual period ending balances (`--historical`).
- A more detailed specification of the balance command's behaviour
- has been added to [Hledger.Cli.Balance](http://hackage.haskell.org/package/hledger/docs/Hledger-Cli-Balance.html).
-
-- csv: rules files can now include other rules files, useful for factoring out common rules
-
-- queries: `sym:REGEXP` matches commodity symbols
-
-- register: `--average/-A` shows a running average, like ledger
-
-- in period expressions, `-` (hyphen) can be used as a more compact
- synonym for `from` and `to`. Eg: `-p 2012/12/1-2013/2/1` or `date:aug-`.
-
-- the add-on script examples in extra/ have been updated; get the
- hledger source and add .../hledger/extra/ to your PATH to make them
- available. They include:
-
- - `hledger-accountnames.hs` - print account names
- - `hledger-balance-csv.hs` - print a balance report as CSV
- - `hledger-equity.hs` - print an entry matching all account balances (like ledger)
- - `hledger-print-unique.hs` - print only journal entries unique descriptions
- - `hledger-register-csv.hs` - print a register report as CSV
-
-Improved:
-
-- balancesheet: now shows just assets and liabilities, not equity
-
-- print: comment positions (same line or next line) are now preserved
-
-- queries: `amt` now uses the = operator by default, eg `amt:50` is
- equivalent to `amt:=50`
-
-- command line processing has been overhauled and made more
- consistent, and now has tests and debug output. More flags now work
- both before and after COMMAND: `-f`, `--rule-file`, `--alias`,
- `--help`, `--debug`, `--version`. Command line help, command
- aliases, API docs and code have been improved.
-
-- `--debug` now takes an optional numeric argument to set the debug level
- higher than 1, for more verbose debug output in a few cases.
-
-Fixed:
-
-- csv: CSV data containing non-ascii characters is now supported
-
-- build with latest versions of dependencies (text, warp, http-conduit etc.)
-
-Release contributors:
-
-Marko Kocić, Max Bolingbroke, and a big welcome to first-time committer John Wiegley! :)
-
-#### 2013/7/10 hledger-web 0.21.3
-
- - drop yesod-platform dependency, it is not worthwhile. The other
- yesod dependencies are currently without version ranges, so cabal
- install might require --constraint to restrict them in some cases.
-
-#### 2013/6/23 hledger 0.21.3
-
- - csv: fix wrong application of multiple assignments in a conditional block
-
-#### 2013/6/4 hledger 0.21.2
-
- - web: fix a build failure
-
-#### 2013/6/3 hledger 0.21.1
-
- - web: show proper Y-values in register chart (fixes [#122](http://bugs.hledger.org/122))
- - web: avoid trailing commas in register chart values, in case of trouble with IE
-
-## 2013/6/1 hledger 0.21
-
-Bugs fixed:
-
- - parsing: don't fail when a csv amount has trailing whitespace (fixes [#113](http://bugs.hledger.org/113))
- - web: don't show prices in the accounts sidebar (fixes [#114](http://bugs.hledger.org/114))
- - web: show one line per commodity in charts. Needs more polish, but fixes [#109](http://bugs.hledger.org/109).
- - web: bump yesod-platform dependency to avoid a cabal install failure
-
-Journal reading:
-
- - balance assertions are now checked after reading a journal
-
-web command:
-
- - web: support/require yesod 1.2
- - web: show zero-balance accounts in the sidebar (fixes [#106](http://bugs.hledger.org/106))
- - web: use nicer select2 autocomplete widgets in the add form
-
-Documentation and infrastructure:
-
- - add basic cabal test suites for hledger-lib and hledger
-
-#### 2013/5/4 hledger 0.20.0.1
-
- * web: require at least version 1.1.7 of yesod-core to avoid a potential build error
- * Update the bug tracker and source repository links on hackage
-
-## 2013/5/1 hledger 0.20
-
-Bugs fixed:
-
- * balance: a 0.19 regression which showed wrong total balance with `--flat` has been fixed ([#94](http://bugs.hledger.org/94))
- * register: when `--date2` is used, the register is now sorted by the secondary date
- * web: some missing static & template files have been added to the package, fixing cabal-dev and hackage builds ([#97](http://bugs.hledger.org/97), [#98](http://bugs.hledger.org/98))
- * web: some hardcoded static urls have been fixed
- * Dependencies and code have been updated to support the latest
- libraries and GHC versions. For now, hledger requires GHC 7.2+
- and hledger-web requires GHC 7.4+.
-
-Journal reading:
-
- - DOS-style line-endings are now also supported in journal and rules files.
- - `!` is now accepted in the status field as well as `*`, like ledger
- - The *actual date* and *effective date* terminology has changed to *primary date* and *secondary date*.
- Use `--date2` to select the secondary date for reports. (`--aux-date` or `--effective` are also accepted
- for ledger and backwards compatibility).
- - Per-posting dates are supported, using hledger tags or ledger's posting date syntax
- - Comment and tag handling has been improved
-
-CSV reading:
-
- - CSV conversion rules have a simpler, more flexible [syntax](manual.html#csv).
- Existing rules files will need to be updated manually:
- - the filename is now `FILE.csv.rules` instead of `FILE.rules`
- - `FIELD-field N` is now `FIELD %N+1` (or set them all at once with a `fields` rule)
- - `base-currency` is now `currency`
- - `base-account` is now `account1`
- - account-assigning rules:
- add `if` before the list of regexps,
- add indented `account2 ` before the account name
- - parenthesised amounts are parsed as negative
-
-Querying:
-
- - Use `code:` to match the transaction code (check number) field
- - Use `amt:` followed by `<`, `=` or `>` and a number N to match
- amounts by magnitude. Eg `amt:<0` or `amt:=100`. This works only
- with single-commodity amounts (multi-commodity amounts are
- always matched).
- - `tag:` can now match (exact, case sensitive) tag values. Eg `tag:TAG=REGEXP`.
-
-add comand:
-
- - Transaction codes and comments (which may contain tags) can now be entered, following a date or amount respectively. ([#45](http://bugs.hledger.org/45))
- - The current entry may be restarted by entering `<` at any prompt. ([#47](http://bugs.hledger.org/47))
- - Entries are displayed and confirmed before they are written to the journal.
- - Default values may be specified for the first entry by providing them as command line arguments.
- - Miscellaneous UI cleanups
-
-register command:
-
- - The `--related`/`-r` flag shows the other postings in each transaction, like ledger.
- - The `--width`/`-w` option increases or sets the output width.
-
-web command:
-
- - The web command now also starts a browser, and auto-exits when unused, by default ("local ui mode").
- With `--server`, it keeps running and logs requests to the console ("server mode").
- - Bootstrap is now used for styling and layout
- - A favicon is served
- - The search field is wider
- - yesod devel is now supported; it uses `$LEDGER_FILE` or `~/.hledger.journal`
- - the `blaze_html_0_5` build flag has been reversed and renamed to `blaze_html_0_4`
-
-Add-ons:
-
- - The hledger-interest and hledger-irr commands have been released/updated.
- - hledger-chart and hledger-vty remain unmaintained and deprecated.
-
-Documentation and infrastructure:
-
- - The hledger docs and website have been reorganised and updated
- - Manuals for past releases are provided as well as the latest dev version
- - hledger has moved from darcs and darcs hub to git and github (!)
- - The bug tracker has moved from google code to github
- - Feature requests and project planning are now managed on trello
- - A build bot builds against multiple GHC versions on each commit
-
-Release contributors:
-
-- Sascha Welter commissioned register enhancements (--related and --width)
-- David Patrick contributed a bounty for add enhancements
-- Joachim Breitner added support for ! in status field
-- Xinruo Sun provided hledger-web build fixes
-- Peter Simons provided hledger-web build fixes, and a build bot
-- Marko Kocić provided hledger-web fixes
-
-
-
-
-
-#### 2012/11/24 hledger-web 0.19.3
-
- * web: fix "Prelude.read: no parse" errors with GHC >= 7.6
- * web & lib refactoring
-
-## 2012/11/16 hledger-web 0.19
-
- * builds with yesod 1.1.3
- * obeys command-line query options at startup again
- * the autogenerated session file is now a dot file
- (.hledger-web_client_session.aes)
-
-#### 2012/11/16 hledger 0.19.1
-
- * [87](http://bugs.hledger.org/87): fix an arithmetic and transaction balancing bug with multiple
- total-priced amounts ( @@ PRICE )
- * parsing: ignore ledger-style balance assertions ( = BAL ) and fixed
- lot price declarations ( {= PRICE} )
-
-
-## 2012/10/21 hledger 0.19
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/4190)
-***a much faster balance command, and support for the latest GHC and libs.***
-
- * hledger, hledger-lib: support GHC 7.6 and latest cmdargs, haskeline, split
- * balance report no longer has an O(n^2) slowdown with large numbers of accounts,
- and is generally more speedy. Benchmark on a 2010 macbook:
-
- ```
- +-------------------------------------------++--------------+--------------+--------+
- | || hledger-0.18 | hledger-0.19 | ledger |
- +===========================================++==============+==============+========+
- | -f data/100x100x10.journal balance || 0.21 | 0.07 | 0.09 |
- | -f data/1000x1000x10.journal balance || 10.13 | 0.47 | 0.62 |
- | -f data/1000x10000x10.journal balance || 40.67 | 0.67 | 1.01 |
- | -f data/10000x1000x10.journal balance || 15.01 | 3.22 | 2.36 |
- | -f data/10000x1000x10.journal balance aa || 4.77 | 4.40 | 2.33 |
- +-------------------------------------------++--------------+--------------+--------+
- ```
-
- * build version is set with CPP instead of cabal-file-th
-
-#### 2012/7/7 hledger 0.18.2
-
- * web: fix compilation error with -fblaze_html_0_5 flag
- * bump base lower bound to 4.3 to enforce GHC 7 requirement
-
-#### 2012/6/29 hledger 0.18.1
-
- * register, print: fix reverse ordering of same-day transactions
- * balance: respect all query terms, not just acct
- * combine command-line flags like --depth properly with non-flag query patterns
- * web: don't auto-create a missing journal file at startup
- * stats: list included journal files
- * support tilde (~) in journal and rules file paths
- * expose more utilities from CsvReader
- * remove ensureRulesFile debug trace
-
-## 2012/5/29 hledger 0.18
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/3736)
-
- * web: hledger-web is now based on yesod 1.0
- * web: fix js error breaking second use of add form ([#72](http://bugs.hledger.org/72))
- * web: make `yesod devel` work
- * the command-line now supports a more powerful [query language](manual.html#queries), consistent with the web UI
- * hledger now fully supports [tags](manual.html#tags) (aka metadata) on both transactions and postings, and querying by tag or tag value
- * new [commands](manual.html#incomestatement) `incomestatement`, `balancesheet`, and `cashflow` provide basic financial statements under certain conditions
- * format conversion is now done on demand, and the convert command has been dropped. So instead of
- `hledger convert FILE.csv` just do `hledger -f FILE.csv print` or any other command.
- You can also pipe any supported format into `hledger -f- CMD` and hledger will try to do the right thing.
- * support for GHC 6.12 has been dropped; this release has been tested with GHC 7.0.4, 7.2.2, and 7.4.1
- * unicode is now handled properly on all supported GHC versions
- * API and internal cleanups
-
-#### 2012/3/3 hledger-web 0.17.1
-
- * set more upper bounds to fix cabal install issues with latest packages
-
-## 2012/2/1 hledger 0.17
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/3149)
-***fixes bugs and updates dependencies***
-
- * support HP 2011.4.0.0
- * support and require cmdargs 0.9
- * allow non-threaded builds, supporting more debian architectures
- * parsing: give a clearer error when journal file path contains ~
- * parsing: -B/--cost now ignores P historical prices, like ledger
- * parsing: inferred amounts now use the cost commodity if known, like ledger ([#69](http://bugs.hledger.org/69))
- * balance: report differently-priced lots in an account as a single amount, like ledger
- * web: support and require yesod >= 0.9.4
- * web: use the main aeson package again
- * web: fix a regression with dollar signs in hamlet templates
- * web: add form allowed blank account names ([#81](http://bugs.hledger.org/81))
- * chart, vty: hledger-chart and hledger-vty demoted to non-maintained extras for now
-
-#### 2011/10/26 hledger-web 0.16.5
-
- * web: fix a ghc 6.12 incompatibility in Settings.hs
-
-#### 2011/10/24 hledger-web 0.16.4
-
- * web: yet another cabal install fix, fix AppConfig name clash
-
-#### 2011/10/4 hledger-web 0.16.3
-
- * web: another cabal install fix, disable favicon.ico since it's not easily embeddable
-
-#### 2011/10/4 hledger-web 0.16.2
-
- * web: more cabal install fixes (remove bad path, add routes and models) ([#63](http://bugs.hledger.org/63))
-
-#### 2011/10/4 hledger 0.16.1
-
- * parsing: show correct line number for posting parse errors ([#67](http://bugs.hledger.org/67))
- * web: declare static files as extra-source-files to fix cabal install ([#63](http://bugs.hledger.org/63))
- * web: add a threaded flag for debian ([#68](http://bugs.hledger.org/68))
- * web: fewer build warnings by default
-
-## 2011/10/1 hledger 0.16
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/521)
-***a stability/bugfix/polish release (which may become the pattern for
-even-numbered releases in future.)***
-
- * cli: strip the -- when calling add-on commands, so their options work ([#64](http://bugs.hledger.org/64))
- * cli: hledger ADDON --version now shows add-on command's version
- * cli: only the add and web commands auto-create the journal file
- * cli: give a non-confusing error if LEDGER_FILE contains a literal tilde
- * add: clearer prompts, more validation, use . to end also
- * add: use unix line endings consistently, avoiding parse error on windows ([#51](http://bugs.hledger.org/51))
- * add: avoid excess whitespace between transactions ([#46](http://bugs.hledger.org/46))
- * balance: ledger compatibility fix: don't elide parent accounts with multiple displayed subaccounts
- * convert: always order converted transactions by date
- * convert: rename currency -> base-currency, in-field, out-field -> amount-in-field, amount-out-field
- * convert: give an error, not a zero when date or amount-in-field/amount-out-field parsing fails
- * register: show more useful range of intervals with --empty and a query pattern
- * print, web: always show both dates, ignoring --effective ([#42](http://bugs.hledger.org/42))
- * web: production builds (the default with cabal) have all web content embedded (dev builds use ./static/) ([#63](http://bugs.hledger.org/63))
- * web: update to yesod 0.9
- * web: obey at least some of the general reporting options, like --cost
- * web: adjust the default base url when a custom port is specified
- * web: prevent an infinite redirect when custom base url has a trailing slash
- * web: fix "not:'multi word'" patterns
- * web: hide old title and search form when adding/editing
- * web: adjust --help to indicate command-line arguments are not expected
- * web: don't bother running cli unit tests at startup
-
-#### 2011/9/12 hledger 0.15.2, hledger-web 0.15.3
-
- * handle multiple filter patterns on the command-line again
- * don't pass an add-on command's name to it as an extra argument
- * don't give a confusing error with -f and no command
- * fix a regression balancing a transaction containing different prices
- * web: fix journal edit form
- * web: fix wrong transaction amount in account register with virtual postings
- * web: fix some invalid html
-
-#### 2011/9/2 hledger 0.15.1, hledger-web 0.15.2
-
- * fix a parsec 2 incompatibility
- * web: add missing Hledger.Web.Options to cabal file
- * web: tighten up dependencies to reduce build problems
-
-## 2011/9/1 hledger 0.15
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/2748)
-
- * hledger's options are now modal, providing better help (using cmdargs)
- * hledger now lists and runs any hledger-* add-ons found in the user's path
- * case insensitivity of filter patterns has been fixed
- * parsing: `alias`/`end aliases` directives, for renaming accounts, are supported, like ledger's but a bit more powerful; also an `--alias` option for renaming on the fly
- * parsing: the `account` directive now preserves posting type (normal/virtual/balanced virtual)
- * parsing: the `pop` directive is supported as an alias for `end tag`, like ledger
- * parsing: `P` (historical price) directives can contain a (ignored) numeric time zone, like ledger
- * parsing: the leading `!` in directives is now optional and deprecated, like ledger
- * parsing: entries with a negative amount in the first posting now infer the correct balancing amount
- * parsing: bad date checking is more accurate
- * balance: collapsing of boring accounts to one line can be disabled with `--no-elide`
- * balance: fix a wrong precision regression from last release
- * convert: standard input can be converted
- * convert: an alternate rules file can be specified with `--rules`
- * convert: `account2-field` can be used when the CSV file specifies both accounts
- * convert: `description-field` can have a custom format and combine multiple CSV fields
- * convert: `in-field` and `out-field` support CSV files that use two amount columns
- * convert: don't fail when there's no default journal file
- * web: the web interface has been overhauled/cleaned up
- * web: account register views are now transaction-based, like gnucash etc., and show accurate historical balances when possible
- * web: simple balance charts are displayed (using flot)
- * web: more expressive and consistent search patterns, using a new matching engine
- * web: add form uses currently focussed account as default, redirects to itself, formats status messages better
- * web: sidebar now shows empty/boring accounts too
- * web: now uses warp and a newer yesod
- * api simplifications
- * importable Hledger, Hledger.Web, Hledger.Vty and Hledger.Chart modules
- * the basic reports are now provided by hledger-lib for easier reuse
- * new api use examples: `equity.hs`, `uniquify.hs`
- * some old base 3 support has been dropped
- * the old -s flag has been dropped
-
-## 2011/4/22 hledger 0.14
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/383)
-
- * remove the specific process dependency that caused too many cabal install problems
- * treat arguments as possibly-encoded platform strings, do not assume UTF-8
- * hledger now always reads and writes data as UTF-8, ignoring the system locale ([#34](http://bugs.hledger.org/34))
- * look at the LEDGER_FILE env var for the journal path, otherwise LEDGER, like ledger
- * handle a blank LEDGER_FILE or LEDGER value more gracefully (use the default file path)
- * the default journal file path is now ~/.hledger.journal, to avoid breaking mac filevault ([#41](http://bugs.hledger.org/41))
- * amounts with different prices are now aggregated, like ledger
- * zero amounts now have no sign or commodity, like ledger
- * parsing: assume current year when transaction dates have no year and there is no default year
- * parsing: more careful validation of eg leap years in transaction dates
- * parsing: better international number format support, allowing comma as decimal point and flexible digit groups ([#32](http://bugs.hledger.org/32))
- * parsing: support @@ syntax specifying total price
- * parsing: infer the conversion price in transactions involving two unpriced commodities
- * parsing: support per-posting cleared status
- * parsing: more reporting interval syntax: biweekly, bimonthly, every N days/weeks/months/quarters/years, every Nst/nd/rd/th day of month/week
- * add: avoid offering account names for completion in inappropriate contexts
- * add: remember default account even if user submits a different amount.
- * convert: account-field directive specifies a field containing the base account name
- * convert: effective-date-field directive specifies a field containing the effective date
- * convert: date-format directive specifies custom date formats
- * convert: allow amount fields containing "AMT @@ PRICE"
- * histogram: honour the specified start or end dates
- * print: don't show a trailing space when description is blank
- * web: allow filter patterns with spaces if quoted, like command line
- * web: make edit form more cross-browser compatible, fixing it in firefox ([#38](http://bugs.hledger.org/38))
- * web: move hidden add/edit/import forms below main content to help text-mode browsers a bit ([#33](http://bugs.hledger.org/33))
-
-Release contributors: Simon Michael, Dmitry Astapov, Eric Kow, Max Bolingbroke, Omari Norman.
-Stats:
-137 days, 113 commits, 11 end-user features and 15 end-user bugfixes since last release.
-189 unit & functional tests and 59% unit test coverage (hledger, hledger-lib packages).
-5540 lines of code (all packages).
-
-## 2010/12/6 hledger 0.13
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/296)
-***readline editing and tab completion
-from Judah Jacobson, more ledger compatibility, a more robust and
-installable web interface, bugfixes, and a much-deliberated package split.***
-
- * move web, vty, chart commands into separate hledger-web, hledger-vty,
- hledger-chart packages. This both simplifies (no more build flags) and
- complicates (more room for dependency hassles), but I hope overall it
- will be easier and more scalable.
- * all packages but chart are now marked "beta", ie "not finished but
- suitable for everyday use"
- * parsing: ledger compatibility: support D default commodity directive
- * parsing: ledger compatibility: ignore metadata tags on transactions and postings
- * parsing: ledger compatibility: ignore cleared flags at the start of postings
- * parsing: ledger compatibility: ignore C commodity conversion directives
- * parsing: price precisions no longer affect commodities' display precisions
- * add: readline-style editing
- * add: tab-completion for account names
- * add: add the default commodity, if any, to commodity-less amounts ([#26](http://bugs.hledger.org/26))
- * add: misc. commodity/precision/defaults-related bugfixes
- * chart: give a meaningful error message for empty journals
- * chart: update for current Chart lib (0.14)
- * web: support files now live in ./.hledger/web/ and will be auto-created at startup
- * web: page layout is more robust with wide content
- * web: allow editing of included files
- * web: handle multiple filter patterns correctly
- * web: allow single- or double-quoted filter patterns containing spaces
- * web: update for current yesod lib (0.6.*)
- * transaction balancing is now based on display precision ([#23](http://bugs.hledger.org/23))
- * briefer, more informative usage error messages
-
-#### 2010/9/6 hledger 0.12.1
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/272)
-
- * web: fix account filtering breakage
- * installing: tighten up utf8-string dependency
-
-## 2010/9/5 hledger 0.12
-
- * web: new, better web ui; accounts are now a permanent sidebar; add form uses auto-completing combo fields
- * installing: fix a build error with parsec 3 ([#22](http://bugs.hledger.org/22))
- * installing: require exactly matching hledger-lib version for more robust builds
- * installing: explicit data-object dependency to ensure hledger and hledger-lib use the same time version
- * installing: explicit hamlet dependency for more robust building
- * installing: build threaded and with warnings
- * installing: drop -fweb610 flag
- * installing: add gtk2hs-buildtools dependency needed to build with -fchart
- * installing: require cabal 1.6 or greater
- * add -D/--daily flag
- * register: with --depth, clip account names or aggregate postings rather than excluding them
- * fix !include with deeply nested directories ([#21](http://bugs.hledger.org/21))
- * fix obscured date parse errors with parsec 3
- * handle unicode better in errors
- * fix a ghc 6.12.3 error when running interpreted
-
-Stats: 50 days and 90 commits since last release, now at 5741
-lines of code with 136 tests and 41% unit test coverage.
-
-#### 2010/07/17 hledger 0.11.1
-
- * fix --version output
-
-## 2010/07/17 hledger 0.11
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/253)
-
- * split --help, adding --help-options and --help-all/-H, and make
- it the default command
- * use "journal" instead of "ledger file"; default suffix is
- .journal, default file is \~/.journal
- * auto-create missing journal files rather than giving an error
- * new format-detecting file reader (mixed journal transactions
- and timelog entries are no longer supported)
- * work around for first real-world rounding issue (test zero to 8
- decimal places instead of 10)
- * when reporting a balancing error, convert the error amount to
- cost
- * parsing: support double-quoted commodity symbols, containing
- anything but a newline or double quote
- * parsing: allow minus sign before commodity symbol as well as
- after (also fixes a convert bug)
- * parsing: fix wrong parse error locations within postings
- * parsing: don't let trailing whitespace in a timelog description
- mess up account names
- * add: allow blank descriptions
- * balance: --flat provides a simple non-hierarchical format
- * balance: --drop removes leading account name components from a
- --flat report
- * print, register, balance: fix layout issues with
- mixed-commodity amounts
- * print: display non-simple commodity names with double-quotes
- * stats: layout tweaks, add payee/description count
- * stats: don't break on an empty file
- * stats: -p/--period support; a reporting interval generates
- multiple reports
- * test: drop verbose test runner and testpack dependency
- * web: a new web ui based on yesod, requires ghc 6.12; old ghc
- 6.10-compatible version remains as -fweb610
- * web: allow wiki-like journal editing
- * web: warn and keep running if reloading the journal gives an
- error
- * web: --port and --base-url options set the webserver's tcp port
- and base url
- * web: slightly better browser opening on microsoft windows,
- should find a standard firefox install now
- * web: in a web-enabled build on microsoft windows, run the web
- ui by default
-
-Stats: 55 days and 136 commits since last release. Now at 5552
-lines of code with 132 tests and 54% unit test coverage.
-
-## 2010/05/23 hledger 0.10
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/242)
-***installation and bug fixes and api improvements***
-
- * fix too-loose testpack dependency, missing safe dependency
- * fix ghc 6.12 compatibility with -fweb
- * fix handling of non-ascii arguments with ghc 6.12
- * fix "0.8" in --version output
- * fix an occasional stack overflow error due to infinite
- recursion in Posting/Transaction equality tests
- * the -fwebhappstack build flag is gone for now, to avoid a cabal
- problem
- * parsing: if there is no description, don't require a space
- after the transaction date
- * parsing: balance balanced-virtual postings separately, allow
- them to have an implicit amount
- * parsing: timelog entries now generate balanced transactions,
- using virtual postings
- * parsing: simpler high-level parse error message
- * parsing: clearer bad date errors
- * add: fix wrongful program exit on bad dates
- * print: negative account patterns now exclude transactions
- containing any posting to a matched account
- * vty: rename the ui command to vty for consistency
- * vty: fix restricted account scope when backing up to top level
- * web: fix non-ascii handling with ghc 6.12
- * web: fix a bug possibly affecting reload-on-change
- * consolidate module namespace under Hledger, api cleanups
-
-Stats: 44 days, 81 commits since last release. Now at 4904 lines of
-code including tests, 144 tests, 53% coverage.
-
-## 2010/04/10 hledger 0.9
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/239)
-***many bugfixes and small improvements, GHC 6.12 support, and a separate library package
-to make building (h)ledger-compatible tools easier.***
-
- * ghc 6.12 support
- * split off hledger-lib package, containing core types & utils
- * parsing: ignore D, C, N, tag, end tag directives; we should now
- accept any ledger 2.6 file
- * parsing: allow numbers in commodities if double-quoted, like
- ledger
- * parsing: allow transactions with empty descriptions
- * parsing: show a better error for illegal month/day numbers in
- dates
- * parsing: don't ignore trailing junk in a smart date, eg in web
- add form
- * parsing: don't ignore unparsed text following an amount
- * parsing: @ was being treated as a currency symbol
- * add: fix precision handling in default amounts ([#19](http://bugs.hledger.org/19))
- * add: elide last amount in added transactions
- * convert: keep original description by default, allow
- backreferences in replace pattern
- * convert: basic csv file checking, warn instead of dying when it
- looks wrong
- * convert: allow blank/comment lines at end of rules file
- * print: always show zero amounts as 0, hiding any
- commodity/decimal places/price, like ledger
- * register: fix bad layout with years < 1000
- * register: fix a Prelude.head error with reporting interval,
- --empty, and --depth
- * register: fix a regression, register should not show posting
- comments
- * register: with --empty, intervals should continue to ends of
- the specified period
- * stats: better output when last transaction is in the future
- * stats: show commodity symbols, account tree depth, reorder
- slightly
- * web: -fweb now builds with simpleserver; to get happstack, use
- -fwebhappstack instead
- * web: pre-fill the add form with today's date
- * web: help links, better search form wording
- * web: show a proper error for a bad date in add form ([#17](http://bugs.hledger.org/17))
- * web: fix for unicode search form values
- * web: fix stack overflow caused by regexpr, and handle requests
- faster ([#14](http://bugs.hledger.org/14))
- * web: look for more-generic browser executables
- * web: more robust browser starting ([#6](http://bugs.hledger.org/6))
- * error message cleanups
- * more tests, refactoring, docs
-
-Stats: 58 days, 2 contributors, 102 commits since last release. Now
-at 3983 lines of non-test code, 139 tests, 53% coverage.
-
-## 2010/02/11 hledger 0.8
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/210)
-***Bug fixes, refactoring and Hi-Res Graphical Charts.***
-
- * parsing: in date=date2, use first date's year as a default for
- the second
- * add: ctrl-d doesn't work on windows, suggest ctrl-c instead
- * add: --no-new-accounts option disallows new accounts (Roman
- Cheplyaka)
- * add: re-use the previous transaction's date as default (Roman
- Cheplyaka)
- * add: a command-line argument now filters by account during
- history matching (Roman Cheplyaka)
- * chart: new command, generates balances pie chart (requires
- -fchart flag, gtk2hs) (Roman Cheplyaka, Simon Michael)
- * register: make reporting intervals honour a display expression
- ([#18](http://bugs.hledger.org/18))
- * web: fix help link
- * web: use today as default when adding with a blank date
- * web: re-enable account/period fields, they seem to be fixed,
- along with file re-reading ([#16](http://bugs.hledger.org/16))
- * web: get static files from the cabal data dir, or the current
- dir when using make ([#13](http://bugs.hledger.org/13))
- * web: preserve encoding during add, assuming it's utf-8 ([#15](http://bugs.hledger.org/15))
- * fix some non-utf8-aware file handling ([#15](http://bugs.hledger.org/15))
- * filter ledger again for each command, not just once at program
- start
- * refactoring, clearer data types
-
-Stats: 62 days, 2 contributors, 76 commits since last release. Now
-at 3464 lines of non-test code, 97 tests, 53% test coverage.
-
-## 2009/12/11 hledger 0.7
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/193)
-
- * price history support (first cut): P directives now work,
- though differently from ledger. Each posting amount takes its
- fixed unit price from the price history (or
- @) when available. This is simple and useful for things like
- foreign currency expenses (but not investment tracking). Like
- ledger, balance and register don't show amount prices any more, and
- don't separate differently-priced amounts. Unlike ledger, print
- shows all amount prices, and supports -B.
- * --effective option, will use transactions' effective dates if
- any
- * convert: new rules file format, find/create rules file
- automatically, more robust parsing, more useful --debug output
- * print: always sort by date, fix long account name truncation,
- align amounts, show end of line comments, show all amounts for
- clarity (don't elide the final balancing amount)
- * ui: use vty 4, fixes non-ascii and gnome terminal problems
- (issues [#3](http://bugs.hledger.org/3), [#4](http://bugs.hledger.org/4))
- * web: allow data entry, react to data file changes, better
- layout, help links, remove histogram command and filter fields for
- now, fix bad localhost redirect, filter form did not work in eg
- firefox (issue [#7](http://bugs.hledger.org/7)), reset link did not work in all browsers
- * parsing: require whitespace between date and status code, allow
- (and ignore) a time in price records, better error messages,
- non-zero exit code on parse failure
- * display non-ascii error messages properly (issue [#5](http://bugs.hledger.org/5))
- * fix an arithmetic bug that occasionally rejected valid
- transactions
- * fix a regex bug in showtree
- * don't break if HOME is undefined
- * --debug now implies --verbose
- * add functional tests like ledger's, use test-framework for
- speedy running, release shelltestrunner as a separate package
- * many hlint cleanups (Marko Kocić)
- * many site and documentation updates
-
-Stats: 60 days, 1 contributor, 50 commits since last release. Now
-at 3377 lines of non-test code, 97 tests, 53% test coverage.
-
-#### 2009/06/22 hledger 0.6.1
-
- * avoid use of exitSuccess which was breaking ghc 6.8/base 3
- compatibility (issue [#2](http://bugs.hledger.org/2))
-
-## 2009/06/13 hledger 0.6
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/1215)
-***Some pre-built binaries are now available. cabal install works on gnu/linux, mac and windows. Hurrah!***
-
- * now cabal-installable on unix, mac, and windows, with Haskell
- Platform
- * provide experimental platform binaries
- * parsing: fix a silly failure to open ledger file paths
- containing \~
- * parsing: show better errors for unbalanced transaction and
- missing default year
- * parsing: allow parentheses and brackets inside account names,
- as ledger does
- * parsing: fail on empty account name components, don't just
- ignore
- * add: description passed as arguments now affects first
- transaction only
- * add: better handling of virtual postings and default amounts
- * print, register: show virtual accounts bracketed/parenthesised
- * web: improved web ui supporting full patterns & period
- expressions
- * new "stats" command reports some ledger statistics
- * many dev/doc/deployment infrastructure improvements
- * move website into darcs repo, update home page
- * move issue tracker to google code
-
-Release stats:
-
- * Contributors: Simon Michael
- * Days since last release: 21
- * Commits: 94
- * Lines of non-test code: 2865
- * Tests: 82
- * Test coverage: 53% expressions
- * Known errors: 3 (inconsistent eliding, vty-related failures)
- * Performance: similar
- (http://hledger.org/profs/200906131120.bench)
-
-#### 2009/05/23 hledger 0.5.1
-
- * two fixes: really disable vty flag by default, and include
- ConvertCommand in cabal file
-
-## 2009/05/23 hledger 0.5
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/1181)
-
- * the vty flag is disabled by default again, to ease installation
- on windows
- * use ledger 3 terminology: a ledger contains transactions which
- contain postings
- * new "add" command prompts for transactions interactively and
- adds them to the ledger
- * new "convert" command transforms bank CSV exports to ledger
- format, with rule-based cleanup
- * new "histogram" command shows transaction counts per day or
- other reporting interval
- * most commands now work properly with UTF8-encoded text (Sergey
- Astanin)
- * invoking as "hours" is now less different: it just uses your
- timelog, not your ledger
- * ..quarterly/-Q option summarises by quarter
- * ..uncleared/-U option looks only at uncleared transactions
- * be more accurate about checking balanced amounts, don't rely on
- display precision
- * enforce balancing for bracketed virtual postings
- * fix bug in eliding of posting amounts
- * don't show trailing spaces on amountless postings
- * parse null input as an empty ledger
- * don't treat comments as part of transaction descriptions
- * require some postings in ledger transactions
- * require a non-empty description in ledger transactions
- * don't fail when matching an empty pattern, as in "not:"
- * make the web server handle the null path
- * code, api and documentation updates
- * add a contributor agreement/list
-
-Release stats:
-
- * Contributors: Simon Michael, Sergey Astanin
- * Days since last release: 51
- * Commits: 101
- * Lines of non-test code: 2795
- * Tests: 76
- * Known errors: 0
-
-## 2009/04/03 hledger 0.4
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/1097)
-***There is also a new website at hledger.org, with screenshots (textual!),
-a demo (will it survive!?), and docs (not too many!) ...
-I wrote it because I did not want to hack on c++ and because haskell seemed a good fit ...
-new happstack-based web interface.***
-
- * new "web" command serves reports in a web browser (install with
- -f happs to build this)
- * make the vty-based curses ui a cabal build option, which will
- be ignored on MS windows
- * drop the ..options-anywhere flag, that is now the default
- * patterns now use not: and desc: prefixes instead of \^ and \^\^
- * patterns are now case-insensitive, like ledger
- * !include directives are now relative to the including file (Tim
- Docker)
- * "Y2009" default year directives are now supported, allowing m/d
- dates in ledger
- * individual transactions now have a cleared status
- * unbalanced entries now cause a proper warning
- * balance report now passes all ledger compatibility tests
- * balance report now shows subtotals by default, like ledger 3
- * balance report shows the final zero total when -E is used
- * balance report hides the final total when ..no-total is used
- * ..depth affects print and register reports (aggregating with a
- reporting interval, filtering otherwise)
- * register report sorts transactions by date
- * register report shows zero-amount transactions when -E is used
- * provide more convenient timelog querying when invoked as
- "hours"
- * multi-day timelog sessions are split at midnight
- * unterminated timelog sessions are now counted. Accurate time
- reports at last!
- * the test command gives better ..verbose output
- * ..version gives more detailed version numbers including
- patchlevel for dev builds
- * new make targets include: ghci, haddocktest, doctest, unittest,
- view-api-docs
- * a doctest-style framework for functional/shell tests has been
- added
-
-Release stats:
-
- * Contributors: Simon Michael, Tim Docker; thanks to the HAppS,
- happstack and testpack developers
- * Days since release: 76
- * Commits: 144
- * Lines of non-test code: 2367
- * Tests: 56
- * Known errors: 0
-
-## 2009/01/17 hledger 0.3
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.hledger/67)
-
- * count timelog sessions on the day they end, like ledger, for
- now
- * when options are repeated, use the last instead of the first
- * builds with ghc 6.10 as well as 6.8
- * a simple ui for interactive report browsing: hledger ui
- * accept smart dates everywhere (YYYYMMDD, Y/M/D, Y, M/D, D, jan,
- today, last week etc.)
- * ..period/-p flag accepting period expressions like "in 2008",
- "weekly from last month"..
- * -W/-M/-Y convenience flags to summarise register weekly,
- monthly, yearly
- * ..depth and -E flags also affect summarised register reports
- (including depth=0)
- * ..display/-d flag supporting date predicates (like "d<[DATE]",
- "d\>=[DATE]")
- * !include directive to include additional ledger files
- * !account directive to set a default parent account
- * Added support for reading historical prices from files
- * timelog and ledger entries can be intermixed in one file
- * modifier and periodic entries can appear anywhere (but are
- still ignored)
- * help and readme improvements
- * runs much faster than 0.2
-
-Release stats:
-
- * Contributors: Simon Michael, Nick Ingolia, Tim Docker; thanks
- to Corey O'Connor & the vty team
- * Lines of non-test code: 2123
- * Tests: 58
- * Known errors: 1
-
-## 2008/11/23 hledger 0.2
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/826)
-
- * fix balance report totals when filtering by account
- * fix balance report selection of accounts when filtering by
- account
- * fix a bug with account name eliding in balance report
- * if we happen to be showing a not-yet-auto-balanced entry, hide
- the AUTO marker
- * fix print command filtering by account
- * omit transactions with zero amount from register report
- * Fix bug in parsing of timelogs
- * rename ..showsubs to ..subtotal, like ledger
- * drop ..usage flag
- * don't require quickcheck
- * priced amounts (eg "10h @ $50") and ..basis/..cost/-B flag to
- show them with cost basis
- * easy ..depth option, equivalent to ledger's -d 'l<=N'
- * smarter y/m/d date parsing for -b and -e (any number of digits,
- month and day default to 1, separator can be / - or .)
- * -n flag for balance command
- * ..empty/-E flag
- * build a library, as well as the exe
- * new home page url (http://joyful.com/hledger)
- * publish html and pdf versions of README
- * detect display preferences for each commodity like ledger
- * support amounts with multiple currencies/commodities
- * support ..real/-R flag
- * support -C/..cleared flag to filter by entry status (not
- transaction status)
- * support virtual and balanced virtual transactions
- * parse comment lines beginning with a space, as from M-; in
- emacs ledger-mode
- * allow any non-whitespace in account names, perhaps avoiding
- misleading missing amounts errors
- * clearer error message when we can't balance an entry
- * when we fail because of more than one missing amount in an
- entry, show the full entry
- * document the built-in test runner in ..help
- * add a ..verbose/-v flag, use it to show more test-running
- detail
-
-Release stats:
-
- * Contributors: Simon Michael, Tim Docker
- * Lines of non-test code: 1350
- * Tests: 43
- * Known errors: 0
-
-## 2008/10/15 hledger 0.1
-
-[announcement](http://thread.gmane.org/gmane.comp.finance.ledger.general/775)
-***I'm pleased to announce the first release of hledger, a command-line
-accounting tool similar to John Wiegley's c++ ledger. hledger generates
-simple ledger-compatible transaction & account balance reports from a
-plain text ledger file. It's simple to use, at least for techies.
-This has been my "learning Haskell" project, but I think it's also
-useful. It is much less featureful than ledger, and not quite as fast,
-but it has the virtue of being fun for haskellers to hack on. I am
-documenting the code, the app is simple, and I'm not too far up the
-haskell learning curve, so I think other people learning haskell might
-enjoy a look. It is currently ~1100 lines of haskell excluding tests.
-My thanks to John Wiegley for help with compatibility and for his very
-useful ledger tool. I use it (and now, both of them) daily to track time
-and money. This is of course a hot topic around our planet. I hope you
-find it useful or intriguing.***
-
-Release stats:
-
- * Contributors: Simon Michael
diff --git a/site/site.tmpl b/site/site.tmpl
deleted file mode 100644
index 0b241f5b3..000000000
--- a/site/site.tmpl
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
-
-
-
- hledger: $title$
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-