doc: generate (and commit) text-rendred man pages
Intended for embedding in executables. Quick implementation, hopefully these are fixed-width and compatible with all terminals.
This commit is contained in:
parent
7a53895cdf
commit
bfa5e14373
12
Shake.hs
12
Shake.hs
@ -44,6 +44,7 @@ usage = [i|Usage:
|
||||
./Shake # show commands
|
||||
./Shake site # generate things needed for the website
|
||||
./Shake manpages # generate nroff files for man
|
||||
./Shake txtmanpages # generate text man pages for embedding
|
||||
./Shake webmanpages # generate web man pages for hakyll
|
||||
./Shake webmanual # generate combined web man page for hakyll
|
||||
|]
|
||||
@ -52,6 +53,7 @@ pandoc =
|
||||
-- "stack exec -- pandoc" -- use the pandoc required above
|
||||
"pandoc" -- use pandoc in PATH (faster)
|
||||
hakyllstd = "site/hakyll-std/hakyll-std"
|
||||
nroff = "nroff"
|
||||
|
||||
main = do
|
||||
|
||||
@ -79,7 +81,8 @@ main = do
|
||||
|
||||
phony "docs" $ do
|
||||
need [
|
||||
"manpages"
|
||||
"manpages"
|
||||
,"txtmanpages"
|
||||
]
|
||||
|
||||
let webmanual = "site/manual.md"
|
||||
@ -157,6 +160,13 @@ main = do
|
||||
"--filter doc/pandoc-drop-notes"
|
||||
"-o" out
|
||||
|
||||
-- render man page nroffs as fixed-width text, for embedding
|
||||
let txtmanpages = [m <.> "txt" | m <- manpages] -- hledger/doc/hledger.1.txt, hledger-lib/doc/journal.5.txt
|
||||
phony "txtmanpages" $ need txtmanpages
|
||||
txtmanpages |%> \out -> do
|
||||
let nroffsrc = dropExtension out -- hledger/doc/hledger.1
|
||||
cmd Shell nroff "-man" nroffsrc ">" out
|
||||
|
||||
-- adjust man page mds for (hakyll) web output, with pandoc
|
||||
let webmanpages = ["site" </> manpageNameToUri m <.>".md" | m <- manpageNames] -- site/hledger.md, site/journal.md
|
||||
phony "webmanpages" $ need webmanpages
|
||||
|
||||
71
hledger-api/doc/hledger-api.1.txt
Normal file
71
hledger-api/doc/hledger-api.1.txt
Normal file
@ -0,0 +1,71 @@
|
||||
|
||||
hledger-api(1) hledger User Manuals hledger-api(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
hledger-api - web API server for the hledger accounting tool
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
hledger-api [OPTIONS]
|
||||
hledger api -- [OPTIONS]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
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 it's evolution.
|
||||
|
||||
Data is served from the usual hledger journal file: ~/.hledger.journal,
|
||||
$LEDGER_FILE, or another file specified with -f. For more about the
|
||||
format, see hledger(1) or hledger_journal(5).
|
||||
|
||||
The server listens for requests on 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.
|
||||
|
||||
EENNVVIIRROONNMMEENNTT
|
||||
LLEEDDGGEERR__FFIILLEE sets the default journal file path. If not set, it is
|
||||
~/.hledger.journal.
|
||||
|
||||
FFIILLEESS
|
||||
Reads data from a hledger journal file ($LEDGER_FILE or
|
||||
~/.hledger.journal by default), or a CSV file plus associated CSV rules
|
||||
file.
|
||||
|
||||
BBUUGGSS
|
||||
The need to precede options with -- when invoked from hledger is awk-
|
||||
ward.
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
January 2016 hledger-api(1)
|
||||
169
hledger-lib/doc/hledger_csv.5.txt
Normal file
169
hledger-lib/doc/hledger_csv.5.txt
Normal file
@ -0,0 +1,169 @@
|
||||
|
||||
hledger_csv(5) hledger User Manuals hledger_csv(5)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
CSV - how hledger reads CSV data, and the CSV rules file format
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
hledger can read CSV 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.
|
||||
|
||||
To learn about _e_x_p_o_r_t_i_n_g CSV, see CSV output.
|
||||
|
||||
CCSSVV RRUULLEESS
|
||||
The following six kinds of rule can appear in the rules file, in any
|
||||
order. Blank lines and lines beginning with # or ; are ignored.
|
||||
|
||||
sskkiipp
|
||||
skip_N
|
||||
|
||||
Skip this number of CSV records at the beginning. You'll need this
|
||||
whenever your CSV data contains header lines. Eg:
|
||||
|
||||
# ignore the first CSV line
|
||||
skip 1
|
||||
|
||||
ddaattee--ffoorrmmaatt
|
||||
date-format_D_A_T_E_F_M_T
|
||||
|
||||
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, which must parse the date
|
||||
field values completely. Examples:
|
||||
|
||||
# for dates like "6/11/2013":
|
||||
date-format %-d/%-m/%Y
|
||||
|
||||
# for dates like "11/06/2013":
|
||||
date-format %m/%d/%Y
|
||||
|
||||
# for dates like "2013-Nov-06":
|
||||
date-format %Y-%h-%d
|
||||
|
||||
# for dates like "11/6/2013 11:32 PM":
|
||||
date-format %-m/%-d/%Y %l:%M %p
|
||||
|
||||
ffiieelldd lliisstt
|
||||
fields_F_I_E_L_D_N_A_M_E_1_, _F_I_E_L_D_N_A_M_E_2_._._.
|
||||
|
||||
This (a) names the CSV fields, in order (names may not contain white-
|
||||
space, but may be omitted), and (b) assigns them to journal entry
|
||||
fields if you use any of these standard field names: date, date2, sta-
|
||||
tus, code, description, comment, account1, account2, amount, amount-in,
|
||||
amount-out, currency. Eg:
|
||||
|
||||
# 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
|
||||
|
||||
ffiieelldd aassssiiggnnmmeenntt
|
||||
_E_N_T_R_Y_F_I_E_L_D_N_A_M_E _F_I_E_L_D_V_A_L_U_E
|
||||
|
||||
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:
|
||||
|
||||
# set the amount to the 4th CSV field with "USD " prepended
|
||||
amount USD %4
|
||||
|
||||
# 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.
|
||||
|
||||
ccoonnddiittiioonnaall bblloocckk
|
||||
if _P_A_T_T_E_R_N
|
||||
_F_I_E_L_D_A_S_S_I_G_N_M_E_N_T_S_._._.
|
||||
|
||||
if
|
||||
_P_A_T_T_E_R_N
|
||||
_P_A_T_T_E_R_N_._._.
|
||||
_F_I_E_L_D_A_S_S_I_G_N_M_E_N_T_S_._._.
|
||||
|
||||
This applies one or more field assignments, only to those CSV records
|
||||
matched by one of the PATTERNs. The patterns are case-insensitive reg-
|
||||
ular 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 should be written on separate lines, unindented.
|
||||
The field assignments are on separate lines indented by at least one
|
||||
space. Examples:
|
||||
|
||||
# if the CSV record contains "groceries", set account2 to "expenses:groceries"
|
||||
if groceries
|
||||
account2 expenses:groceries
|
||||
|
||||
# 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
|
||||
|
||||
iinncclluuddee
|
||||
include_R_U_L_E_S_F_I_L_E
|
||||
|
||||
Include another rules file at this point. RULESFILE is either an abso-
|
||||
lute file path or a path relative to the current file's directory. Eg:
|
||||
|
||||
# rules reused with several CSV files
|
||||
include common.rules
|
||||
|
||||
TTIIPPSS
|
||||
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.
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
April 2016 hledger_csv(5)
|
||||
668
hledger-lib/doc/hledger_journal.5.txt
Normal file
668
hledger-lib/doc/hledger_journal.5.txt
Normal file
@ -0,0 +1,668 @@
|
||||
|
||||
hledger_journal(5) hledger User Manuals hledger_journal(5)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
Journal - hledger's default file format, representing a General Journal
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
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. 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, so hledger can work with compatible 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 get-
|
||||
ting.
|
||||
|
||||
You can use hledger without learning any more about this file; just use
|
||||
the add or 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:
|
||||
|
||||
; 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
|
||||
|
||||
FFIILLEE FFOORRMMAATT
|
||||
TTrraannssaaccttiioonnss
|
||||
Transactions are represented by journal entries. Each begins with a
|
||||
simple date in column 0, followed by three optional fields with spaces
|
||||
between them:
|
||||
|
||||
+o a status flag, which can be empty or ! or * (meaning "uncleared",
|
||||
"pending" and "cleared", or whatever you want)
|
||||
|
||||
+o a transaction code (eg a check number),
|
||||
|
||||
+o and/or a description
|
||||
|
||||
then some number of postings, of some amount to some account, each on
|
||||
its own line. Usually there are at least two postings, though one or
|
||||
even none is possible.
|
||||
|
||||
The (real) 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.
|
||||
|
||||
DDaatteess
|
||||
SSiimmppllee ddaatteess
|
||||
Within a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D)
|
||||
Leading zeroes are optional. The year may be omitted, in which case it
|
||||
defaults to the current year, or you can set the default year with a
|
||||
default year directive.
|
||||
|
||||
Some examples: 2010/01/31, 1/31, 2010-01-31, 2010.1.31.
|
||||
|
||||
SSeeccoonnddaarryy ddaatteess
|
||||
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, write both dates
|
||||
separated by an equals sign. The _p_r_i_m_a_r_y _d_a_t_e, on the left, is used by
|
||||
default; the _s_e_c_o_n_d_a_r_y _d_a_t_e, on the right, is used when the --date2
|
||||
flag is specified (For Ledger compatibility, --aux-date or --effective
|
||||
also work.)
|
||||
|
||||
Their meaning 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.
|
||||
|
||||
2010/2/23=2/19 movie ticket
|
||||
expenses:cinema $10
|
||||
assets:checking
|
||||
|
||||
$ hledger register checking
|
||||
2010/02/23 movie ticket assets:checking $-10 $-10
|
||||
|
||||
$ 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. Arguably they are now obsolete, superseded
|
||||
by...
|
||||
|
||||
PPoossttiinngg ddaatteess
|
||||
You can give individual postings a different date from their parent
|
||||
transaction, by adding a posting tag (see below) like date:DATE, where
|
||||
DATE is a simple date. This is probably the best way to control post-
|
||||
ing 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:
|
||||
|
||||
2015/5/30
|
||||
expenses:food $10 ; food purchased on saturday 5/30
|
||||
assets:checking ; bank cleared it on monday, date:6/1
|
||||
|
||||
$ hledger -f tt.j register food
|
||||
2015/05/30 expenses:food $10 $10
|
||||
|
||||
$ hledger -f tt.j register checking
|
||||
2015/06/01 assets:checking $-10 $-10
|
||||
|
||||
A posting date will use the year of the transaction date if unspeci-
|
||||
fied.
|
||||
|
||||
You can also set the secondary date, with date2:DATE2. For compatibil-
|
||||
ity, Ledger's older posting date syntax is also supported: [DATE],
|
||||
[DATE=DATE2] or [=DATE2] in a posting comment.
|
||||
|
||||
When using any of these forms, be sure to provide a valid simple date
|
||||
or you'll get a parse error. Eg a date: tag with no value is not
|
||||
allowed.
|
||||
|
||||
AAccccoouunntt nnaammeess
|
||||
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 receiv-
|
||||
able. Because of this, they must always be followed by at least two
|
||||
spaces (or newline).
|
||||
|
||||
Account names can be aliased.
|
||||
|
||||
AAmmoouunnttss
|
||||
After the account name, there is usually an amount. Important: between
|
||||
account name and amount, there must be ttwwoo oorr mmoorree spaces.
|
||||
|
||||
The amount is a number, optionally with a currency symbol or commodity
|
||||
name on either the left or right. Negative amounts may have the minus
|
||||
sign either before or after the currency symbol (-$1 or $-1). Commod-
|
||||
ity names which contain more than just letters should be enclosed in
|
||||
double quotes (1 "person hours").
|
||||
|
||||
DDeecciimmaall ppooiinnttss aanndd ddiiggiitt ggrroouuppss
|
||||
hledger supports flexible decimal point and digit group separator
|
||||
styles, to support international variations. Numbers can use either a
|
||||
period (.) or a comma (,) as decimal point. They can also have digit
|
||||
group separators at any position (eg thousands separators) which can be
|
||||
comma or period - whichever one you did not use as a decimal point. If
|
||||
you use digit group separators, you must also include a decimal point
|
||||
in at least one number in the same commodity, so that hledger knows
|
||||
which character is which. Eg, write $1,000.00 or $1.000,00.
|
||||
|
||||
AAmmoouunntt ddiissppllaayy ssttyylleess
|
||||
Based on how you format amounts, hledger will infer canonical display
|
||||
styles for each commodity, and use these when displaying amounts in
|
||||
that commodity. Amount styles include:
|
||||
|
||||
+o the position (left or right) and spacing (space or no separator) of
|
||||
the commodity symbol
|
||||
|
||||
+o the digit group separator character (comma or period) and digit group
|
||||
sizes, if any
|
||||
|
||||
+o the decimal point character (period or comma)
|
||||
|
||||
+o the display precision (number of decimal places displayed)
|
||||
|
||||
The canonical style is generally the style of the first posting amount
|
||||
seen in a commodity. However the display precision will be the highest
|
||||
precision seen in all posting amounts in that commmodity.
|
||||
|
||||
The precisions used in a price amount, or a D directive, don't affect
|
||||
the canonical display precision directly, but they can affect it indi-
|
||||
rectly, eg when D's default commodity is applied to a commodity-less
|
||||
amount or when an amountless posting is balanced using a price's com-
|
||||
modity (actually this last case does not influence the canonical dis-
|
||||
play precision but probably should).
|
||||
|
||||
VViirrttuuaall PPoossttiinnggss
|
||||
When you parenthesise the account name in a posting, that posting is
|
||||
considered _v_i_r_t_u_a_l, which means:
|
||||
|
||||
+o it is ignored when checking that the transaction is balanced
|
||||
|
||||
+o 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:
|
||||
|
||||
1/1 special unbalanced posting to set initial balance
|
||||
(assets:checking) $1000
|
||||
|
||||
BBaallaanncceedd VViirrttuuaall PPoossttiinnggss
|
||||
When the account name is bracketed, the posting is _b_a_l_a_n_c_e_d _v_i_r_t_u_a_l,
|
||||
which is just like a virtual posting except the balanced virtual post-
|
||||
ings 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.
|
||||
|
||||
Virtual postings are a feature inherited from Ledger can can occasion-
|
||||
ally be useful, but they can be a crutch and you should think twice or
|
||||
three times before using them. You can almost always find an equiva-
|
||||
lent journal entry using two or more real postings that will be more
|
||||
correct and more error-proof.
|
||||
|
||||
BBaallaannccee AAsssseerrttiioonnss
|
||||
hledger supports ledger-style 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:
|
||||
|
||||
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 pro-
|
||||
tect 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.
|
||||
|
||||
AAsssseerrttiioonnss aanndd oorrddeerriinngg
|
||||
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 dif-
|
||||
ferent from Ledger, which sorts assertions only by parse order. (Also,
|
||||
Ledger assertions do not see the accumulated effect of repeated post-
|
||||
ings to the same account within a transaction.)
|
||||
|
||||
So, hledger balance assertions keep working if you reorder differ-
|
||||
ently-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 con-
|
||||
trol over the order of postings and assertions within a day, so you can
|
||||
assert intra-day balances.
|
||||
|
||||
With included files, things are a little more complicated. Including
|
||||
preserves the ordering of postings and assertions. If you have multi-
|
||||
ple 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.
|
||||
|
||||
AAsssseerrttiioonnss aanndd ccoommmmooddiittiieess
|
||||
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 par-
|
||||
tial balance assertion. This is compatible with Ledger, and makes it
|
||||
possible to make assertions about accounts containing multiple commodi-
|
||||
ties.
|
||||
|
||||
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.)
|
||||
|
||||
AAsssseerrttiioonnss aanndd ssuubbaaccccoouunnttss
|
||||
Balance assertions do not count the balance from subaccounts; they
|
||||
check the posted account's exclusive balance. For example:
|
||||
|
||||
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:
|
||||
|
||||
$ hledger bal checking --flat
|
||||
1 checking
|
||||
1 checking:fund
|
||||
--------------------
|
||||
2
|
||||
|
||||
AAsssseerrttiioonnss aanndd vviirrttuuaall ppoossttiinnggss
|
||||
Balance assertions are checked against all postings, both real and vir-
|
||||
tual. They are not affected by the --real/-R flag or real: query.
|
||||
|
||||
PPrriicceess
|
||||
TTrraannssaaccttiioonn pprriicceess
|
||||
When recording a transaction, you can also record an amount's price in
|
||||
another commodity. This documents the exchange rate, cost (of a pur-
|
||||
chase), or selling price (of a sale) that was in effect within this
|
||||
particular transaction (or more precisely, within the particular post-
|
||||
ing). These transaction prices are fixed, and do not change.
|
||||
|
||||
Such priced amounts can be displayed in their transaction price's com-
|
||||
modity, 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:
|
||||
|
||||
2009/1/1
|
||||
assets:foreign currency ^a~100 @ $1.35 ; one hundred euros at $1.35 each
|
||||
assets:cash
|
||||
|
||||
2. Or write the total price, as @@ TOTALPRICE after the amount:
|
||||
|
||||
2009/1/1
|
||||
assets:foreign currency ^a~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:
|
||||
|
||||
2009/1/1
|
||||
assets:foreign currency ^a~100 ; one hundred euros
|
||||
assets:cash $-135 ; exchanged for $135
|
||||
|
||||
With any of the above examples we get:
|
||||
|
||||
$ 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.
|
||||
|
||||
MMaarrkkeett pprriicceess
|
||||
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 com-
|
||||
mand.
|
||||
|
||||
You record market prices (Ledger calls them historical prices) with a P
|
||||
directive, in the journal or perhaps in a separate included file. Mar-
|
||||
ket price directives have the format:
|
||||
|
||||
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).
|
||||
|
||||
P 2009/1/1 ^a~ $1.35
|
||||
P 2010/1/1 ^a~ $1.40
|
||||
|
||||
Example use for market prices: tracking the value of stocks.
|
||||
|
||||
CCoommmmeennttss
|
||||
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 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 post-
|
||||
ings). Similarly, you can attach comments to an individual posting by
|
||||
writing them after the amount and/or indented on the following lines.
|
||||
|
||||
Some examples:
|
||||
|
||||
# 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)
|
||||
|
||||
TTaaggss
|
||||
A _t_a_g is a word followed by a full colon inside a transaction or post-
|
||||
ing comment. You can write multiple tags, comma separated. Eg:
|
||||
; a comment containing sometag:, anothertag:. You can search for tags
|
||||
with the tag: query.
|
||||
|
||||
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):
|
||||
|
||||
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 feature, except hledger's tag values
|
||||
are always simple strings.
|
||||
|
||||
DDiirreeccttiivveess
|
||||
AAccccoouunntt aalliiaasseess
|
||||
You can define aliases which rewrite your account names (after reading
|
||||
the journal, before generating reports). hledger's account aliases can
|
||||
be useful for:
|
||||
|
||||
+o expanding shorthand account names to their full form, allowing easier
|
||||
data entry and a less verbose journal
|
||||
|
||||
+o adapting old journals to your current chart of accounts
|
||||
|
||||
+o experimenting with new account organisations, like a new hierarchy or
|
||||
combining two accounts into one
|
||||
|
||||
+o customising reports
|
||||
|
||||
See also How to use account aliases.
|
||||
|
||||
BBaassiicc aalliiaasseess
|
||||
To set an account alias, use the alias directive in your journal file.
|
||||
This affects all subsequent journal entries in the current file or its
|
||||
included files. The spaces around the = are optional:
|
||||
|
||||
alias OLD = NEW
|
||||
|
||||
Or, you can use the --alias 'OLD=NEW' option on the command line. This
|
||||
affects all entries. It's useful for trying out aliases interactively.
|
||||
|
||||
OLD and NEW are full account names. hledger will replace any occur-
|
||||
rence of the old account name with the new one. Subaccounts are also
|
||||
affected. Eg:
|
||||
|
||||
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"
|
||||
|
||||
RReeggeexx aalliiaasseess
|
||||
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):
|
||||
|
||||
alias /REGEX/ = REPLACEMENT
|
||||
|
||||
or --alias '/REGEX/=REPLACEMENT'.
|
||||
|
||||
REGEX is a case-insensitive regular expression. Anywhere it matches
|
||||
inside an account name, the matched part will be replaced by REPLACE-
|
||||
MENT. If REGEX contains parenthesised match groups, these can be ref-
|
||||
erenced by the usual numeric backreferences in REPLACEMENT. Note, cur-
|
||||
rently regular expression aliases may cause noticeable slow-downs.
|
||||
(And if you use Ledger on your hledger file, they will be ignored.) Eg:
|
||||
|
||||
alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
|
||||
# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
|
||||
|
||||
MMuullttiippllee aalliiaasseess
|
||||
You can define as many aliases as you like using directives or com-
|
||||
mand-line options. Aliases are recursive - each alias sees the result
|
||||
of applying previous ones. (This is different from Ledger, where
|
||||
aliases are non-recursive by default). Aliases are applied in the fol-
|
||||
lowing order:
|
||||
|
||||
1. alias directives, most recently seen first (recent directives take
|
||||
precedence over earlier ones; directives not yet seen are ignored)
|
||||
|
||||
2. alias options, in the order they appear on the command line
|
||||
|
||||
eenndd aalliiaasseess
|
||||
You can clear (forget) all currently defined aliases with the
|
||||
end aliases directive:
|
||||
|
||||
end aliases
|
||||
|
||||
aaccccoouunntt ddiirreeccttiivvee
|
||||
The account directive predefines account names, as in Ledger and Bean-
|
||||
count. This may be useful for your own documentation; hledger doesn't
|
||||
make use of it yet.
|
||||
|
||||
; account ACCT
|
||||
; OPTIONAL COMMENTS/TAGS...
|
||||
|
||||
account assets:bank:checking
|
||||
a comment
|
||||
acct-no:12345
|
||||
|
||||
account expenses:food
|
||||
|
||||
; etc.
|
||||
|
||||
aappppllyy aaccccoouunntt ddiirreeccttiivvee
|
||||
You can specify a parent account which will be prepended to all
|
||||
accounts within a section of the journal. Use the apply account and
|
||||
end apply account directives like so:
|
||||
|
||||
apply account home
|
||||
|
||||
2010/1/1
|
||||
food $10
|
||||
cash
|
||||
|
||||
end apply account
|
||||
|
||||
which is equivalent to:
|
||||
|
||||
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:
|
||||
|
||||
apply account business
|
||||
include biz.journal
|
||||
end apply account
|
||||
apply account personal
|
||||
include personal.journal
|
||||
|
||||
Prior to hledger 0.28, legacy account and end spellings were also sup-
|
||||
ported.
|
||||
|
||||
MMuullttii--lliinnee ccoommmmeennttss
|
||||
A line containing just comment starts a multi-line comment, and a line
|
||||
containing just end comment ends it. See comments.
|
||||
|
||||
DDeeffaauulltt ccoommmmooddiittyy
|
||||
You can set a default commodity, to be used for amounts without one.
|
||||
Use the D directive with a sample amount. The commodity (and the sam-
|
||||
ple amount's display style) will be applied to all subsequent commod-
|
||||
ity-less amounts, up to the next D directive. (Note this is different
|
||||
from Ledger's default commodity directive.)
|
||||
|
||||
Also note the directive itself does not influence the commodity's
|
||||
default display style, but the amount it is applied to might. Here's
|
||||
an example:
|
||||
|
||||
; set ^A-L as the default commodity
|
||||
D ^A-L1,000.00
|
||||
|
||||
2010/1/1
|
||||
a 2340
|
||||
b
|
||||
|
||||
2014/1/1
|
||||
c ^A-L1000
|
||||
d
|
||||
|
||||
$ hledger print
|
||||
2010/01/01
|
||||
a ^A-L2,340.00
|
||||
b ^A-L-2,340.00
|
||||
|
||||
2014/01/01
|
||||
c ^A-L1,000.00
|
||||
d ^A-L-1,000.00
|
||||
|
||||
DDeeffaauulltt yyeeaarr
|
||||
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:
|
||||
|
||||
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
|
||||
|
||||
IInncclluuddiinngg ootthheerr ffiilleess
|
||||
You can pull in the content of additional journal files by writing an
|
||||
include directive, like this:
|
||||
|
||||
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 may only be used in journal files, and currently
|
||||
it may only include other journal files (eg, not CSV or timeclock
|
||||
files.)
|
||||
|
||||
EEDDIITTOORR SSUUPPPPOORRTT
|
||||
Add-on modes exist for various text editors, to make working with jour-
|
||||
nal files easier. They add colour, navigation aids and helpful com-
|
||||
mands. 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:
|
||||
|
||||
|
||||
tab(@); lw(16.5n) lw(51.5n). T{ Emacs T}@T{
|
||||
http://www.ledger-cli.org/3.0/doc/ledger-mode.html T} T{ Vim T}@T{
|
||||
https://github.com/ledger/ledger/wiki/Getting-started T} T{ Sublime
|
||||
Text T}@T{ https://github.com/ledger/ledger/wiki/Using-Sublime-Text T}
|
||||
T{ Textmate T}@T{ https://github.com/ledger/ledger/wiki/Using-Text-
|
||||
Mate-2 T} T{ Text Wrangler T}@T{
|
||||
https://github.com/ledger/ledger/wiki/Editing-Ledger-files-with-Tex-
|
||||
tWrangler T}
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
April 2016 hledger_journal(5)
|
||||
83
hledger-lib/doc/hledger_timeclock.5.txt
Normal file
83
hledger-lib/doc/hledger_timeclock.5.txt
Normal file
@ -0,0 +1,83 @@
|
||||
|
||||
hledger_timeclock(5) hledger User Manuals hledger_timeclock(5)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
Timeclock - the time logging format of timeclock.el, as read by hledger
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
hledger can read timeclock files. As with Ledger, these are (a subset
|
||||
of) timeclock.el's format, containing clock-in and clock-out entries as
|
||||
in the example below. The date is a simple date (also, default year
|
||||
directives work). 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).
|
||||
|
||||
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:
|
||||
|
||||
$ 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 to download and some queries to try:
|
||||
|
||||
$ 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:
|
||||
|
||||
+o use emacs and the built-in timeclock.el, or the extended time-
|
||||
clock-x.el and perhaps the extras in ledgerutils.el
|
||||
|
||||
+o at the command line, use these bash aliases:
|
||||
|
||||
alias ti="echo i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG"
|
||||
alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
|
||||
|
||||
+o or use the old ti and to scripts in the ledger 2.x repository. These
|
||||
rely on a "timeclock" executable which I think is just the ledger 2
|
||||
executable renamed.
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
April 2016 hledger_timeclock(5)
|
||||
125
hledger-lib/doc/hledger_timedot.5.txt
Normal file
125
hledger-lib/doc/hledger_timedot.5.txt
Normal file
@ -0,0 +1,125 @@
|
||||
|
||||
hledger_timedot(5) hledger User Manuals hledger_timedot(5)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
Timedot - hledger's human-friendly time logging format
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
Timedot is a plain text format for logging dated, categorised quanti-
|
||||
ties (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, per-
|
||||
haps slightly more conveniently than with hledger_journal(5) format.
|
||||
|
||||
FFIILLEE FFOORRMMAATT
|
||||
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 (see hledger_journal(5)). Cate-
|
||||
gories 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 quar-
|
||||
ter" - 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 exam-
|
||||
ple:
|
||||
|
||||
# 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:
|
||||
|
||||
2016/2/3
|
||||
inc:client1 4
|
||||
fos:hledger 3
|
||||
biz:research 1
|
||||
|
||||
Reporting:
|
||||
|
||||
$ hledger -f t.timedot print date:2016/2/2
|
||||
2016/02/02 *
|
||||
(inc:client1) 2.00
|
||||
|
||||
2016/02/02 *
|
||||
(biz:research) 0.25
|
||||
|
||||
$ 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:
|
||||
|
||||
2016/2/4
|
||||
fos.hledger.timedot 4
|
||||
fos.ledger ..
|
||||
|
||||
$ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
|
||||
4.50 fos
|
||||
4.00 hledger:timedot
|
||||
0.50 ledger
|
||||
--------------------
|
||||
4.50
|
||||
|
||||
default year directives may be used.
|
||||
|
||||
Here is a sample.timedot.
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
April 2016 hledger_timedot(5)
|
||||
258
hledger-ui/doc/hledger-ui.1.txt
Normal file
258
hledger-ui/doc/hledger-ui.1.txt
Normal file
@ -0,0 +1,258 @@
|
||||
|
||||
hledger-ui(1) hledger User Manuals hledger-ui(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
hledger-ui - curses-style interface for the hledger accounting tool
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
hledger-ui [OPTIONS] [QUERYARGS]
|
||||
hledger ui -- [OPTIONS] [QUERYARGS]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
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. It reads a
|
||||
hledger journal file
|
||||
|
||||
(~/.hledger.journal, $LEDGER_FILE, or -f FILE; see hledger(1) or
|
||||
hledger_journal(5))
|
||||
|
||||
and provides a simple full-screen console interface for viewing account
|
||||
balances and transactions.
|
||||
|
||||
It is simpler and more convenient for browsing than the command-line
|
||||
interface, but lighter and faster than hledger-web.
|
||||
|
||||
The journal file is ~/.hledger.journal, $LEDGER_FILE, or another file
|
||||
specified with -f. For more about the format, see hledger(1) or
|
||||
hledger_journal(5).
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
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.
|
||||
|
||||
----ffllaatt show full account names, unindented
|
||||
|
||||
----nnoo--eelliiddee
|
||||
don't compress empty parent accounts on one line
|
||||
|
||||
----rreeggiisstteerr==AACCCCTTRREEGGEEXX
|
||||
start in the (first) matched account's register screen
|
||||
|
||||
----tthheemmee==ddeeffaauulltt||tteerrmmiinnaall||ggrreeeenntteerrmm
|
||||
use this custom display theme
|
||||
|
||||
--VV ----vvaalluuee
|
||||
show amounts as their current market value in their default val-
|
||||
uation commodity (accounts screen only)
|
||||
|
||||
--hh ----hheellpp
|
||||
show help
|
||||
|
||||
----vveerrssiioonn
|
||||
show version information
|
||||
|
||||
hhlleeddggeerr ooppttiioonnss
|
||||
The following common hledger options should also work:
|
||||
|
||||
--ff FFIILLEE ----ffiillee==FFIILLEE
|
||||
use a different input file. For stdin, use -
|
||||
|
||||
----rruulleess--ffiillee==RRUULLEESSFFIILLEE
|
||||
Conversion rules file to use when reading CSV (default:
|
||||
FILE.rules)
|
||||
|
||||
----aalliiaass==OOLLDD==NNEEWW
|
||||
display accounts named OLD as NEW
|
||||
|
||||
----iiggnnoorree--aasssseerrttiioonnss
|
||||
ignore any failing balance assertions in the journal
|
||||
|
||||
----ddeebbuugg==NN
|
||||
show debug output if N is 1-9 (default: 0)
|
||||
|
||||
--bb ----bbeeggiinn==DDAATTEE
|
||||
include postings/txns on or after this date
|
||||
|
||||
--ee ----eenndd==DDAATTEE
|
||||
include postings/txns before this date
|
||||
|
||||
--pp ----ppeerriioodd==PPEERRIIOODDEEXXPP
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
(overrides the flags above)
|
||||
|
||||
----ddaattee22 ----aauuxx--ddaattee
|
||||
use postings/txns' secondary dates instead
|
||||
|
||||
--CC ----cclleeaarreedd
|
||||
include only cleared postings/txns
|
||||
|
||||
----ppeennddiinngg
|
||||
include only pending postings/txns
|
||||
|
||||
--UU ----uunncclleeaarreedd
|
||||
include only uncleared (and pending) postings/txns
|
||||
|
||||
--RR ----rreeaall
|
||||
include only non-virtual postings
|
||||
|
||||
----ddeepptthh==NN
|
||||
hide accounts/postings deeper than N
|
||||
|
||||
--EE ----eemmppttyy
|
||||
show empty/zero things which are normally omitted
|
||||
|
||||
--BB ----ccoosstt
|
||||
show amounts in their cost price's commodity
|
||||
|
||||
KKEEYYSS
|
||||
Generally 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.
|
||||
|
||||
g gets the latest data and reloads the screen (and any previous
|
||||
screens). There may be a noticeable pause.
|
||||
|
||||
q quits the application.
|
||||
|
||||
Some screens have additional key bindings, described below.
|
||||
|
||||
SSCCRREEEENNSS
|
||||
AAccccoouunnttss ssccrreeeenn
|
||||
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. if you specify a query
|
||||
on the command line, it shows just the matched accounts and the bal-
|
||||
ances from matched transactions.
|
||||
|
||||
When not in flat mode, indentation indicates the account hierarchy. F
|
||||
toggles flat mode on and off.
|
||||
|
||||
By default, all subaccounts are displayed. To see less detail, set a
|
||||
depth limit by pressing a number key, 1 to 9. Or, adjust the depth
|
||||
limit by pressing - or + (= also works). 0 removes the depth limit.
|
||||
|
||||
C toggles cleared mode. In cleared mode, the accounts and balances are
|
||||
derived only from transactions which are marked cleared (*).
|
||||
|
||||
Press right or enter to view an account's transactions register.
|
||||
|
||||
RReeggiisstteerr ssccrreeeenn
|
||||
This screen lists all transactions affecting a particular account (like
|
||||
a check register). In cleared mode (press C) it lists only transac-
|
||||
tions which are marked cleared. It does not otherwise filter by query.
|
||||
|
||||
Note this screen shows transactions, not postings (unlike hledger's
|
||||
register command). This means:
|
||||
|
||||
+o Each line represents a whole transaction.
|
||||
|
||||
+o For each transaction, it 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.)
|
||||
|
||||
+o It shows the overall change to the current account's balance from
|
||||
each transaction; positive for an inflow to this account, negative
|
||||
for an outflow.
|
||||
|
||||
+o When no query other than a date limit is in effect, it shows the cur-
|
||||
rent account's historic balance as of the transaction date. Other-
|
||||
wise it shows a running total starting from zero. Eg, these will
|
||||
show historic balances:
|
||||
|
||||
$ hledger-ui
|
||||
$ hledger-ui --begin 'this month'
|
||||
$ hledger-ui --register checking date:2015/10
|
||||
|
||||
while these will show a running total, since the queries are not just
|
||||
date limits:
|
||||
|
||||
$ hledger-ui checking
|
||||
$ hledger-ui --begin 'this month' desc:market
|
||||
$ hledger-ui --register checking --cleared
|
||||
|
||||
Press right or enter to view the selected transaction in full detail.
|
||||
|
||||
TTrraannssaaccttiioonn ssccrreeeenn
|
||||
This screen shows a single transaction, as a general journal entry,
|
||||
similar to hledger's print command and journal format (hledger_jour-
|
||||
nal(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 trans-
|
||||
actions appear in multiple account registers). The #N number preceding
|
||||
them is the transaction's position within the complete unfiltered jour-
|
||||
nal, which is a more stable id (at least until the next reload).
|
||||
|
||||
EErrrroorr ssccrreeeenn
|
||||
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 described,
|
||||
press g again to reload and restore normal operation.
|
||||
|
||||
EENNVVIIRROONNMMEENNTT
|
||||
LLEEDDGGEERR__FFIILLEE sets the default journal file path. If not set, it is
|
||||
~/.hledger.journal.
|
||||
|
||||
CCOOLLUUMMNNSS sets the screen width to use (normally the full terminal
|
||||
width).
|
||||
|
||||
FFIILLEESS
|
||||
Reads data from a hledger journal file ($LEDGER_FILE or
|
||||
~/.hledger.journal by default), or a CSV file plus associated CSV rules
|
||||
file.
|
||||
|
||||
BBUUGGSS
|
||||
The need to precede options with -- when invoked from hledger is awk-
|
||||
ward.
|
||||
|
||||
-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.
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
October 2015 hledger-ui(1)
|
||||
204
hledger-web/doc/hledger-web.1.txt
Normal file
204
hledger-web/doc/hledger-web.1.txt
Normal file
@ -0,0 +1,204 @@
|
||||
|
||||
hledger-web(1) hledger User Manuals hledger-web(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
hledger-web - web interface for the hledger accounting tool
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
hledger-web [OPTIONS]
|
||||
hledger web -- [OPTIONS]
|
||||
|
||||
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
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 appli-
|
||||
cation 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.
|
||||
|
||||
The journal file is ~/.hledger.journal, $LEDGER_FILE, or another file
|
||||
specified with -f. For more about the format, see hledger(1) or
|
||||
hledger_journal(5).
|
||||
|
||||
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 win-
|
||||
dow, and will exit after two minutes of inactivity (no requests and no
|
||||
browser windows viewing it).
|
||||
|
||||
$ 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/host-
|
||||
name/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.
|
||||
|
||||
With journal and timeclock files (but not CSV files, currently) the web
|
||||
app detects changes 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.
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
Note: if invoking hledger-web as a hledger subcommand, write -- before
|
||||
options as shown above.
|
||||
|
||||
----sseerrvveerr
|
||||
disable browser-opening and auto-exit-on-idle, and log all
|
||||
requests to stdout
|
||||
|
||||
----ppoorrtt==PPOORRTT
|
||||
set the TCP port to listen on (default: 5000)
|
||||
|
||||
----bbaassee--uurrll==UURRLL
|
||||
set the base url (default: http://localhost:PORT). You would
|
||||
change this when sharing over the network, or integrating within
|
||||
a larger website.
|
||||
|
||||
----ffiillee--uurrll==UURRLL
|
||||
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.
|
||||
|
||||
--hh ----hheellpp
|
||||
show help
|
||||
|
||||
----vveerrssiioonn
|
||||
show version information
|
||||
|
||||
hhlleeddggeerr ooppttiioonnss
|
||||
The following common hledger options should also work:
|
||||
|
||||
--ff FFIILLEE ----ffiillee==FFIILLEE
|
||||
use a different input file. For stdin, use -
|
||||
|
||||
----rruulleess--ffiillee==RRUULLEESSFFIILLEE
|
||||
Conversion rules file to use when reading CSV (default:
|
||||
FILE.rules)
|
||||
|
||||
----aalliiaass==OOLLDD==NNEEWW
|
||||
display accounts named OLD as NEW
|
||||
|
||||
----iiggnnoorree--aasssseerrttiioonnss
|
||||
ignore any failing balance assertions in the journal
|
||||
|
||||
----ddeebbuugg==NN
|
||||
show debug output if N is 1-9 (default: 0)
|
||||
|
||||
--bb ----bbeeggiinn==DDAATTEE
|
||||
include postings/txns on or after this date
|
||||
|
||||
--ee ----eenndd==DDAATTEE
|
||||
include postings/txns before this date
|
||||
|
||||
--pp ----ppeerriioodd==PPEERRIIOODDEEXXPP
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
(overrides the flags above)
|
||||
|
||||
----ddaattee22 ----aauuxx--ddaattee
|
||||
use postings/txns' secondary dates instead
|
||||
|
||||
--CC ----cclleeaarreedd
|
||||
include only cleared postings/txns
|
||||
|
||||
----ppeennddiinngg
|
||||
include only pending postings/txns
|
||||
|
||||
--UU ----uunncclleeaarreedd
|
||||
include only uncleared (and pending) postings/txns
|
||||
|
||||
--RR ----rreeaall
|
||||
include only non-virtual postings
|
||||
|
||||
----ddeepptthh==NN
|
||||
hide accounts/postings deeper than N
|
||||
|
||||
--EE ----eemmppttyy
|
||||
show empty/zero things which are normally omitted
|
||||
|
||||
--BB ----ccoosstt
|
||||
show amounts in their cost price's commodity
|
||||
|
||||
EENNVVIIRROONNMMEENNTT
|
||||
LLEEDDGGEERR__FFIILLEE sets the default journal file path. If not set, it is
|
||||
~/.hledger.journal.
|
||||
|
||||
FFIILLEESS
|
||||
Reads data from a hledger journal file ($LEDGER_FILE or
|
||||
~/.hledger.journal by default), or a CSV file plus associated CSV rules
|
||||
file.
|
||||
|
||||
BBUUGGSS
|
||||
The need to precede options with -- when invoked from hledger is awk-
|
||||
ward.
|
||||
|
||||
-f- doesn't work (hledger-web can't read from stdin).
|
||||
|
||||
Query arguments and some applicable hledger options probably aren't
|
||||
supported.
|
||||
|
||||
Does not work in text-mode browsers.
|
||||
|
||||
Does not work well on small screens.
|
||||
|
||||
The auto-exit feature was added to avoid leaving stray processes, eg on
|
||||
Windows. It is not well tested.
|
||||
|
||||
If you start two instances on the same port, the second one will appear
|
||||
to run normally, but you will be seeing pages served from the first
|
||||
one.
|
||||
|
||||
|
||||
|
||||
RREEPPOORRTTIINNGG BBUUGGSS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
AAUUTTHHOORRSS
|
||||
Simon Michael <simon@joyful.com> and contributors
|
||||
|
||||
|
||||
CCOOPPYYRRIIGGHHTT
|
||||
Copyright (C) 2007-2016 Simon Michael.
|
||||
Released under GNU GPL v3 or later.
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
http://hledger.org
|
||||
|
||||
|
||||
|
||||
October 2015 hledger-web(1)
|
||||
1628
hledger/doc/hledger.1.txt
Normal file
1628
hledger/doc/hledger.1.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user