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                  # show commands | ||||||
|  ./Shake site             # generate things needed for the website |  ./Shake site             # generate things needed for the website | ||||||
|  ./Shake manpages         # generate nroff files for man |  ./Shake manpages         # generate nroff files for man | ||||||
|  |  ./Shake txtmanpages      # generate text man pages for embedding | ||||||
|  ./Shake webmanpages      # generate web man pages for hakyll |  ./Shake webmanpages      # generate web man pages for hakyll | ||||||
|  ./Shake webmanual        # generate combined web man page for hakyll |  ./Shake webmanual        # generate combined web man page for hakyll | ||||||
| |] | |] | ||||||
| @ -52,6 +53,7 @@ pandoc = | |||||||
|   -- "stack exec -- pandoc" -- use the pandoc required above |   -- "stack exec -- pandoc" -- use the pandoc required above | ||||||
|   "pandoc"                  -- use pandoc in PATH (faster) |   "pandoc"                  -- use pandoc in PATH (faster) | ||||||
| hakyllstd = "site/hakyll-std/hakyll-std" | hakyllstd = "site/hakyll-std/hakyll-std" | ||||||
|  | nroff = "nroff" | ||||||
| 
 | 
 | ||||||
| main = do | main = do | ||||||
| 
 | 
 | ||||||
| @ -79,7 +81,8 @@ main = do | |||||||
| 
 | 
 | ||||||
|     phony "docs" $ do |     phony "docs" $ do | ||||||
|       need [ |       need [ | ||||||
|          "manpages" |           "manpages" | ||||||
|  |          ,"txtmanpages" | ||||||
|          ] |          ] | ||||||
| 
 | 
 | ||||||
|     let webmanual = "site/manual.md" |     let webmanual = "site/manual.md" | ||||||
| @ -157,6 +160,13 @@ main = do | |||||||
|         "--filter doc/pandoc-drop-notes" |         "--filter doc/pandoc-drop-notes" | ||||||
|         "-o" out |         "-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 |     -- adjust man page mds for (hakyll) web output, with pandoc | ||||||
|     let webmanpages = ["site" </> manpageNameToUri m <.>".md" | m <- manpageNames] -- site/hledger.md, site/journal.md |     let webmanpages = ["site" </> manpageNameToUri m <.>".md" | m <- manpageNames] -- site/hledger.md, site/journal.md | ||||||
|     phony "webmanpages" $ need webmanpages |     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