From 6fb09109961a300c8e863d60483e897973e4a1e7 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 16 May 2015 08:05:44 -0700 Subject: [PATCH] doc: dev guide: put how-tos first, copy diagram from old wiki --- doc/developer-guide.md | 292 +++++++++++++++++---------------- doc/site/images/data-model.png | Bin 0 -> 55857 bytes 2 files changed, 147 insertions(+), 145 deletions(-) create mode 100644 doc/site/images/data-model.png diff --git a/doc/developer-guide.md b/doc/developer-guide.md index f98d68f07..e10309c70 100644 --- a/doc/developer-guide.md +++ b/doc/developer-guide.md @@ -145,152 +145,7 @@ Here's the original [proposal](http://article.gmane.org/gmane.comp.finance.ledge ---- -## Implementation notes - -### hledger - -There are two core cabal packages: - -**[hledger-lib](http://hackage.haskell.org/package/hledger-lib)** - data model, parsing, manipulation, standard reports -([github](https://github.com/simonmichael/hledger/tree/master/hledger-lib))\ -**[hledger](http://hackage.haskell.org/package/hledger)** - command line interface, reusable cli options & helpers -([github](https://github.com/simonmichael/hledger/tree/master/hledger)) - -Most data types are defined in hledger-lib:Hledger.Data.Types, -while functions that operate on them are defined in -hledger-lib:Hledger.Data.TYPENAME. -Here's a diagram of the main data model: - - -hide empty members -hide circle -skinparam packageStyle Rect - -Ledger *-- Journal -Ledger *-- "*" Account -note top of Ledger: A Journal and all its accounts with their balances.\nUsed for balance report -note top of Journal: A journal file and parsed transactions & directives.\nUsed for print & register reports -note bottom of Account: An account's name, balance (inclusive &\nexclusive), parent and child accounts -Account o-- "*" Account :subaccounts, parent -Journal o-- File -File o-- "*" File :include -Journal *-- "*" HistoricalPrice -Journal *-- "*" Transaction -HistoricalPrice -- Date -HistoricalPrice -- Amount -Transaction -- Date -Transaction *-- "*" Posting -Transaction o-- "*" Tag -Posting o- "*" Tag -Posting -- "0..1" Date -Account -- AccountName -Posting -- AccountName -Account -- "2" MixedAmount -Posting -- MixedAmount -MixedAmount *-- "*" Amount -Amount -- Commodity -Amount -- Quantity -Amount -- Price -Amount -- AmountStyle - - -hledger parses the journal file into a -[Journal](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Journal), -which contains a list of -[Transactions](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Transaction), -each containing multiple -[Postings](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Posting) -of some -[MixedAmount](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:MixedAmount) -(multiple -single-[Commodity](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Commodity) -[Amounts](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Amount)) -to some -[AccountName](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:AccountName). -Commands get and render -[Reports](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Reports.html) -from the Journal, or sometimes from a -[Ledger](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Ledger), -which contains -[Accounts](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Account) -representing the summed balances and other details of each account. - -After surveying the packages, modules, and data types, try tracing the execution of a hledger command: - -1. CLI stuff is in [hledger:Hledger.Cli](https://github.com/simonmichael/hledger/tree/master/hledger/Hledger/Cli). -2. [hledger:Hledger.Cli.Main:main](https://github.com/simonmichael/hledger/blob/master/hledger/Hledger/Cli/Main.hs#L179) -parses the command line to select a command, then -3. gives it to -[hledger:Hledger.Cli.Utils:withJournalDo](https://github.com/simonmichael/hledger/blob/master/hledger/Hledger/Cli/Utils.hs#L61), -which runs it after doing all the initial parsing. -4. Parsing code is under -[hledger-lib:Hledger.Read](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Read.hs), -eg the -[hledger-lib:Hledger.Read.JournalReader](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Read/JournalReader.hs). -5. Commands extract useful information from the parsed data model using -[hledger-lib:Hledger.Reports](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Reports), -and -6. render it to the console. -7. Everything uses the types and data -utilities under -[hledger-lib:Hledger.Data](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Data), -and the general helpers from -[hledger-lib:Hledger.Utils](https://github.com/simonmichael/hledger/blob/master/hledger-lib/Hledger/Utils.hs) -and below. - -### hledger-web - -hledger-web is in a third cabal package: - -**[hledger-web](http://hackage.haskell.org/package/hledger-web)** - web interface -([github](https://github.com/simonmichael/hledger/tree/master/hledger-web)) - -It is a single-executable web application using the -[yesod](http://yesodweb.com) framework. It runs a built-in web server -serving some views of the journal file, reading it at startup and -again whenever it changes. It can also append new transactions to the journal file. -There are two main views, which can be filtered with [query arguments](manual#query-arguments): - -- [/journal](http://demo.hledger.org/journal), showing general journal entries (like `hledger print`) - -- [/register](http://demo.hledger.org/register?q=inacct:Assets:Bank:Checking), - showing transactions affecting an account (slightly different from - `hledger register`, which shows postings). - -There is also: - -- a sidebar (toggled by pressing `s`) showing the chart of accounts (like `hledger balance`) -- an [add form](http://demo.hledger.org/journal?add=1) for adding new transactions (press `a`) -- a help dialog showing quick help and keybindings (press `h` or click ?) - -Most of the action is in - -- [config/routes](https://github.com/simonmichael/hledger/tree/master/hledger-web/config/routes) -- [templates/default-layout-wrapper.hamlet](https://github.com/simonmichael/hledger/tree/master/hledger-web/templates/default-layout-wrapper.hamlet) -- [Foundation](https://github.com/simonmichael/hledger/tree/master/hledger-web/Foundation.hs) -- [Handler.*](https://github.com/simonmichael/hledger/tree/master/hledger-web/Handler) -- [static/hledger.js](https://github.com/simonmichael/hledger/tree/master/hledger-web/static/hledger.js) -- [static/hledger.css](https://github.com/simonmichael/hledger/tree/master/hledger-web/static/hledger.css) - -Handler module and function names end with R, like the Yesod-generated route type they deal with. - -Dynamically generated page content is mostly inline hamlet. -Lucius/Julius files and widgets generally are not used, except for the default layout. - -The quickest way to test changes is `make ghciweb`, `:main --serve`, control-C, `:r`, repeat. -No linking is required, and changes to static files like hledger.js are visible after reloading a page. - -Another way is `yesod devel`, which rebuilds automatically when files -change, including config files, templates and static files (but only in the hledger-web package). - -A third way is `make autoweb`, if you can get it working (see the -makefile for instructions). This rebuilds automatically when haskell -files change in any of the hledger{-lib,,-web} packages. - - ---- ## How to.. @@ -560,3 +415,150 @@ don't run make setversion. Use make -n if unsure. 11. announce - [email hledger] - [tweet] + + +## Implementation notes + +### hledger + +There are two core cabal packages: + +**[hledger-lib](http://hackage.haskell.org/package/hledger-lib)** - data model, parsing, manipulation, standard reports +([github](https://github.com/simonmichael/hledger/tree/master/hledger-lib))\ +**[hledger](http://hackage.haskell.org/package/hledger)** - command line interface, reusable cli options & helpers +([github](https://github.com/simonmichael/hledger/tree/master/hledger)) + +Most data types are defined in hledger-lib:Hledger.Data.Types, +while functions that operate on them are defined in +hledger-lib:Hledger.Data.TYPENAME. +Here's a diagram of the main data model: + + + +hledger parses the journal file into a +[Journal](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Journal), +which contains a list of +[Transactions](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Transaction), +each containing multiple +[Postings](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Posting) +of some +[MixedAmount](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:MixedAmount) +(multiple +single-[Commodity](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Commodity) +[Amounts](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Amount)) +to some +[AccountName](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:AccountName). +Commands get and render +[Reports](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Reports.html) +from the Journal, or sometimes from a +[Ledger](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Ledger), +which contains +[Accounts](http://hackage.haskell.org/package/hledger-lib-0.23.2/docs/Hledger-Data-Types.html#t:Account) +representing the summed balances and other details of each account. + +After surveying the packages, modules, and data types, try tracing the execution of a hledger command: + +1. CLI stuff is in [hledger:Hledger.Cli](https://github.com/simonmichael/hledger/tree/master/hledger/Hledger/Cli). +2. [hledger:Hledger.Cli.Main:main](https://github.com/simonmichael/hledger/blob/master/hledger/Hledger/Cli/Main.hs#L179) +parses the command line to select a command, then +3. gives it to +[hledger:Hledger.Cli.Utils:withJournalDo](https://github.com/simonmichael/hledger/blob/master/hledger/Hledger/Cli/Utils.hs#L61), +which runs it after doing all the initial parsing. +4. Parsing code is under +[hledger-lib:Hledger.Read](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Read.hs), +eg the +[hledger-lib:Hledger.Read.JournalReader](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Read/JournalReader.hs). +5. Commands extract useful information from the parsed data model using +[hledger-lib:Hledger.Reports](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Reports), +and +6. render it to the console. +7. Everything uses the types and data +utilities under +[hledger-lib:Hledger.Data](https://github.com/simonmichael/hledger/tree/master/hledger-lib/Hledger/Data), +and the general helpers from +[hledger-lib:Hledger.Utils](https://github.com/simonmichael/hledger/blob/master/hledger-lib/Hledger/Utils.hs) +and below. + +### hledger-web + +hledger-web is in a third cabal package: + +**[hledger-web](http://hackage.haskell.org/package/hledger-web)** - web interface +([github](https://github.com/simonmichael/hledger/tree/master/hledger-web)) + +It is a single-executable web application using the +[yesod](http://yesodweb.com) framework. It runs a built-in web server +serving some views of the journal file, reading it at startup and +again whenever it changes. It can also append new transactions to the journal file. +There are two main views, which can be filtered with [query arguments](manual#query-arguments): + +- [/journal](http://demo.hledger.org/journal), showing general journal entries (like `hledger print`) + +- [/register](http://demo.hledger.org/register?q=inacct:Assets:Bank:Checking), + showing transactions affecting an account (slightly different from + `hledger register`, which shows postings). + +There is also: + +- a sidebar (toggled by pressing `s`) showing the chart of accounts (like `hledger balance`) +- an [add form](http://demo.hledger.org/journal?add=1) for adding new transactions (press `a`) +- a help dialog showing quick help and keybindings (press `h` or click ?) + +Most of the action is in + +- [config/routes](https://github.com/simonmichael/hledger/tree/master/hledger-web/config/routes) +- [templates/default-layout-wrapper.hamlet](https://github.com/simonmichael/hledger/tree/master/hledger-web/templates/default-layout-wrapper.hamlet) +- [Foundation](https://github.com/simonmichael/hledger/tree/master/hledger-web/Foundation.hs) +- [Handler.*](https://github.com/simonmichael/hledger/tree/master/hledger-web/Handler) +- [static/hledger.js](https://github.com/simonmichael/hledger/tree/master/hledger-web/static/hledger.js) +- [static/hledger.css](https://github.com/simonmichael/hledger/tree/master/hledger-web/static/hledger.css) + +Handler module and function names end with R, like the Yesod-generated route type they deal with. + +Dynamically generated page content is mostly inline hamlet. +Lucius/Julius files and widgets generally are not used, except for the default layout. + +The quickest way to test changes is `make ghciweb`, `:main --serve`, control-C, `:r`, repeat. +No linking is required, and changes to static files like hledger.js are visible after reloading a page. + +Another way is `yesod devel`, which rebuilds automatically when files +change, including config files, templates and static files (but only in the hledger-web package). + +A third way is `make autoweb`, if you can get it working (see the +makefile for instructions). This rebuilds automatically when haskell +files change in any of the hledger{-lib,,-web} packages. + diff --git a/doc/site/images/data-model.png b/doc/site/images/data-model.png new file mode 100644 index 0000000000000000000000000000000000000000..81c0cc38f1af571d2639dd9c70d45443c0944127 GIT binary patch literal 55857 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