Skip to content

Commit c019e56

Browse files
committed
Add API documentation
1 parent d64d4a9 commit c019e56

File tree

4 files changed

+81
-14
lines changed

4 files changed

+81
-14
lines changed

.github/workflows/build_and_deploy.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ jobs:
3232
cp result/share/doc/ledger/ledger* build/doc
3333
nix build .#doc-ledger-mode
3434
cp result/ledger-mode.* build/doc
35+
nix build .#doc-ledger-api
36+
cp -R result/share/doc/ledger/html build/doc/api/
3537
- name: Upload artifact
3638
uses: actions/upload-pages-artifact@v1
3739
with:

flake.lock

Lines changed: 48 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
nixConfig.bash-prompt = "ledger-cli.org$ ";
55

66
inputs = {
7-
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
7+
nixpkgs.url = "nixpkgs/nixpkgs-unstable"; # provides doxygen 1.9.6
88
flake-utils.url = "github:numtide/flake-utils";
99
# NOTA BENE: When a new release of ledger or ledger-mode is available, update
1010
# the tag in the url below and run `nix flake update`, so that GitHub Actions
@@ -13,9 +13,11 @@
1313
ledger.url = "github:ledger/ledger/master";
1414
ledger-mode.url = "github:ledger/ledger-mode/v4.0.0";
1515
ledger-mode.flake = false;
16+
doxygen-awesome.url = "github:jothepro/doxygen-awesome-css/v2.2.0";
17+
doxygen-awesome.flake = false;
1618
};
1719

18-
outputs = { self, nixpkgs, flake-utils, ledger, ledger-mode }:
20+
outputs = { self, nixpkgs, flake-utils, ledger, ledger-mode, doxygen-awesome }:
1921
flake-utils.lib.eachDefaultSystem( system:
2022
let
2123
pkgs = import nixpkgs { inherit system; };
@@ -52,6 +54,32 @@
5254
'';
5355
};
5456

57+
doc-ledger-api = pkgs.stdenvNoCC.mkDerivation rec {
58+
name = "ledger-api";
59+
60+
src = ledger;
61+
62+
nativeBuildInputs = with pkgs; [
63+
cmake doxygen graphviz # doxygen uses dot from graphviz to create diagrams
64+
];
65+
66+
enableParallelBuilding = false;
67+
68+
preConfigure = "cd doc";
69+
70+
cmakeFlags = [
71+
"-Wno-dev"
72+
"-DUSE_DOXYGEN:BOOL=ON"
73+
"-DDOXYGEN_EXTRA_CSS:STRING=${doxygen-awesome}/doxygen-awesome.css"
74+
];
75+
76+
# Ensure the "generated on date at time" footer shows the actual date and time
77+
# when the API documentation was generated.
78+
preBuild = "export SOURCE_DATE_EPOCH=$(date +'%s')";
79+
80+
buildFlags = "doc.doxygen";
81+
};
82+
5583
doc-ledger = pkgs.stdenvNoCC.mkDerivation rec {
5684
name = "ledger";
5785

source/docs.html.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ title: Documentation - Ledger
66

77
* [**Ledger 3 manual**](doc/ledger3.html) and [pdf](doc/ledger3.pdf) ([changes](https://git.ledger-cli.org/ledger/commits/master/doc/ledger3.texi))
88
* [Ledger 3 man page](doc/ledger.1.html) and [pdf](doc/ledger.1.pdf) ([changes](https://git.ledger-cli.org/ledger/commits/master/doc/ledger.1))
9+
* [Ledger 3 API documentation](doc/api)
910
* [ledger-mode manual](doc/ledger-mode.html) and [pdf](doc/ledger-mode.pdf) ([changes](https://git.ledger-cli.org/ledger-mode/commits/master/doc/ledger-mode.texi))
1011

1112
## External links

0 commit comments

Comments
 (0)