Introduction
There's also a blog post:KMyMoney to HLedger conversion.
WAIT!
Just use isabekov / kmymoney2ledgers by Altynbek Isabekov instead of my conversion program! (It's much better!)
Usage
From Releases copy kmymoney2hledger
and kmymoney2hledger.jar
to a subdirectory and make kmymoney2hledger
executable. Put the subdirectory in your path (if it isn't already). Also a Java runtime environment (JRE) is required.
Prior to running the program make a backup of your data; then decompress the KMyMoney file, e.g. using the following commands:
cp yourkmymoneyinputfile.kmy yourdecompressedkmymoneyinputfile.kmy.gz
gzip -d yourdecompressedkmymoneyinputfile.kmy.gz
kmymoney2hledger yourdecompressedkmymoneyinputfile.kmy
It writes the converted output to yourdecompressedkmymoneyinputfile.kmy.journal
.
CSV importers
See the following repositories for import of CSV-files into HLedger journals: Rabobank CSV-export to HLedger converter N26 CSV-export to HLedger converter
Technical information
KMyMoney
Available at: https://kmymoney.org/
HLedger
Available at: https://hledger.org/
- deps.edn See A little bit of Clojure development info.
Libraries
Tupelo Forest
Have you ever wanted to manipulate tree-like data structures such as hiccup or HTML? If so, then the tupelo.forest library is for you! Forest allows you to:
- Easily search for tree nodes based on the path from the tree root.
- Search for tree nodes based on content.
- Limit a search to nodes in an arbitrary sub-tree.
- Find parents and siblings of a node found in a search.
- Chain searches together, so that nodes found in one search are used to limit the scope of sub-searches.
- In addition, tupelo.forest allows you to update the tree by adding, changing, or deleting nodes. Since tupelo.forest allows one to easily find parent and/or sibling nodes, this is a powerful feature missing in most other tree-processing libraries.
Tupelo Forest - One Tree To Rule Them All
Development
nREPL
Start nrepl: nREPL Middleware Setup.
Add the following to ~/.clojure/deps.edn
:
;; https://docs.cider.mx/cider/basics/middleware_setup.html
;; Use `clj -A:clj-nREPL` to start an nREPL and in Emacs `cider-connect-clj` or
;; `clj -A:cljs-nREPL` to start an nREPL and in Emacs `cider-connect-cljs`.
:aliases {:clj-nREPL {:extra-deps {cider/cider-nrepl {:mvn/version "0.24.0"}
nrepl/nrepl {:mvn/version "0.7.0"}}
:main-opts ["-m" "nrepl.cmdline" "--middleware" "[cider.nrepl/cider-middleware]"]}
:cljs-nREPL {:extra-deps {org.clojure/clojurescript {:mvn/version "1.10.339"}
cider/cider-nrepl {:mvn/version "0.22.4"}
cider/piggieback {:mvn/version "0.5.0"}}
:main-opts ["-m" "nrepl.cmdline" "--middleware"
"[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]}}
Then the following can be used to start an clj-nREPL or cljs-nREPL server:
clj -A:clj-nREPL
clj -A:cljs-nREPL
Emacs: cider-connect-clj
or cider-connect-cljs
on localhost; with reported port.