diff --git a/.circleci/config.yml b/.circleci/config.yml
index 0f9cbca7..20b62f62 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -69,6 +69,21 @@ jobs:
name: Build
command: yarn build
+ generate-docs:
+ docker:
+ - image: cimg/node:<< pipeline.parameters.node-image-tag >>
+ resource_class: << pipeline.parameters.resource-class >>
+ steps:
+ - checkout
+ - install-yarn
+ - install-dependencies
+ - run:
+ name: Build
+ command: yarn build
+ - run:
+ name: Generate Docs
+ command: yarn generate-docs
+
run-example:
docker:
- image: cimg/node:<< pipeline.parameters.node-image-tag >>
@@ -90,4 +105,5 @@ workflows:
- lint
- build
- coverage
+ - generate-docs
- run-example
diff --git a/package.json b/package.json
index c9a8d1c8..908af191 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"example": "yarn workspace @evolvedbinary/lwdita-xdita run example",
"test": "mocha",
"test:watch": "mocha -w",
+ "generate-docs": "yarn workspaces foreach --parallel --recursive --from '@evolvedbinary/lwdita-*' run docs",
"lint": "eslint",
"coverage": "rimraf coverage && nyc yarn mocha",
"coveralls": "nyc --reporter=text-lcov report | coveralls"
diff --git a/packages/lwdita-ast/package.json b/packages/lwdita-ast/package.json
index 0c054876..6a36776f 100644
--- a/packages/lwdita-ast/package.json
+++ b/packages/lwdita-ast/package.json
@@ -10,7 +10,8 @@
"scripts": {
"build": "tsc",
"clean": "rimraf dist",
- "prepack": "yarn run build"
+ "prepack": "yarn run build",
+ "docs": "typedoc --options typedoc.config.mjs --entryPoints src/index.ts --out dist/doc"
},
"keywords": [
"LwDITA",
@@ -30,6 +31,7 @@
},
"devDependencies": {
"rimraf": "^6.1.0",
+ "typedoc": "^0.28.14",
"typescript": "5.9.3"
},
"packageManager": "yarn@4.2.2"
diff --git a/packages/lwdita-ast/typedoc.config.mjs b/packages/lwdita-ast/typedoc.config.mjs
new file mode 100644
index 00000000..459e0bbf
--- /dev/null
+++ b/packages/lwdita-ast/typedoc.config.mjs
@@ -0,0 +1,29 @@
+/*!
+Copyright (C) 2020 Evolved Binary
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+
+import { OptionDefaults } from "typedoc";
+
+/** @type {Partial} */
+const config = {
+ tsconfig: "./tsconfig.json",
+ modifierTags: [...OptionDefaults.modifierTags, "@decorator"],
+ highlightLanguages: ["ts", "js", "xml", "json", "bash"],
+ treatWarningsAsErrors: true,
+ treatValidationWarningsAsErrors: true,
+};
+
+export default config;
\ No newline at end of file
diff --git a/packages/lwdita-xdita/package.json b/packages/lwdita-xdita/package.json
index 1ddebdbe..47efa84d 100644
--- a/packages/lwdita-xdita/package.json
+++ b/packages/lwdita-xdita/package.json
@@ -11,6 +11,7 @@
"build": "tsc",
"clean": "rimraf dist",
"prepack": "yarn run build",
+ "docs": "typedoc --options typedoc.config.mjs --entryPoints src/index.ts --out dist/doc",
"example": "ts-node ./example.ts"
},
"keywords": [
@@ -40,6 +41,7 @@
"@types/node": "^24.9.2",
"rimraf": "^6.1.0",
"ts-node": "^10.9.2",
+ "typedoc": "^0.28.14",
"typescript": "5.9.3"
},
"packageManager": "yarn@4.2.2"
diff --git a/packages/lwdita-xdita/typedoc.config.mjs b/packages/lwdita-xdita/typedoc.config.mjs
new file mode 100644
index 00000000..459e0bbf
--- /dev/null
+++ b/packages/lwdita-xdita/typedoc.config.mjs
@@ -0,0 +1,29 @@
+/*!
+Copyright (C) 2020 Evolved Binary
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+
+import { OptionDefaults } from "typedoc";
+
+/** @type {Partial} */
+const config = {
+ tsconfig: "./tsconfig.json",
+ modifierTags: [...OptionDefaults.modifierTags, "@decorator"],
+ highlightLanguages: ["ts", "js", "xml", "json", "bash"],
+ treatWarningsAsErrors: true,
+ treatValidationWarningsAsErrors: true,
+};
+
+export default config;
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index a45dfb0c..890b8780 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -378,6 +378,7 @@ __metadata:
resolution: "@evolvedbinary/lwdita-ast@workspace:packages/lwdita-ast"
dependencies:
rimraf: "npm:^6.1.0"
+ typedoc: "npm:^0.28.14"
typescript: "npm:5.9.3"
languageName: unknown
linkType: soft
@@ -391,6 +392,7 @@ __metadata:
"@types/node": "npm:^24.9.2"
rimraf: "npm:^6.1.0"
ts-node: "npm:^10.9.2"
+ typedoc: "npm:^0.28.14"
typescript: "npm:5.9.3"
languageName: unknown
linkType: soft
@@ -419,6 +421,19 @@ __metadata:
languageName: unknown
linkType: soft
+"@gerrit0/mini-shiki@npm:^3.12.0":
+ version: 3.14.0
+ resolution: "@gerrit0/mini-shiki@npm:3.14.0"
+ dependencies:
+ "@shikijs/engine-oniguruma": "npm:^3.14.0"
+ "@shikijs/langs": "npm:^3.14.0"
+ "@shikijs/themes": "npm:^3.14.0"
+ "@shikijs/types": "npm:^3.14.0"
+ "@shikijs/vscode-textmate": "npm:^10.0.2"
+ checksum: 10c0/9539688aec140f2167203b424078d34deec016c8418c497146c6c24920d0590d10b2cd5eec721668a56cb5d42fb278f6f0502bc340274398bb690317ded563b2
+ languageName: node
+ linkType: hard
+
"@humanfs/core@npm:^0.19.1":
version: 0.19.1
resolution: "@humanfs/core@npm:0.19.1"
@@ -636,6 +651,51 @@ __metadata:
languageName: node
linkType: hard
+"@shikijs/engine-oniguruma@npm:^3.14.0":
+ version: 3.14.0
+ resolution: "@shikijs/engine-oniguruma@npm:3.14.0"
+ dependencies:
+ "@shikijs/types": "npm:3.14.0"
+ "@shikijs/vscode-textmate": "npm:^10.0.2"
+ checksum: 10c0/6dab2310c910fedd89046299c4423b2100c8c771822e487070d9eb158907782f195f1b9dd560b6b84f74432bdd1ca4e4429f4af76d30c0e45f8448f100094996
+ languageName: node
+ linkType: hard
+
+"@shikijs/langs@npm:^3.14.0":
+ version: 3.14.0
+ resolution: "@shikijs/langs@npm:3.14.0"
+ dependencies:
+ "@shikijs/types": "npm:3.14.0"
+ checksum: 10c0/59ed3b0e9f893a57c8e88b77e9280d993b0dfe219b91db2f8143a65728ef47b02e17056a029f710753184e1c077dfa589cbc5491253d791472a94dca9f598fa3
+ languageName: node
+ linkType: hard
+
+"@shikijs/themes@npm:^3.14.0":
+ version: 3.14.0
+ resolution: "@shikijs/themes@npm:3.14.0"
+ dependencies:
+ "@shikijs/types": "npm:3.14.0"
+ checksum: 10c0/3326482f081e313957c3e74ae86721d18efb32c022b31936f7da1b4782f4c970dea71989934baf9ab8adbeafea07235834b2e6ab83b67e71dc87fb328a1caa58
+ languageName: node
+ linkType: hard
+
+"@shikijs/types@npm:3.14.0, @shikijs/types@npm:^3.14.0":
+ version: 3.14.0
+ resolution: "@shikijs/types@npm:3.14.0"
+ dependencies:
+ "@shikijs/vscode-textmate": "npm:^10.0.2"
+ "@types/hast": "npm:^3.0.4"
+ checksum: 10c0/154ec7a79e3c155ed47a14d14ccf91ea09909779993f999cf3d7e424c2f732cd7d7faf8074441a543445f64af1ef9456dcf9ddd4edad96615b68ca60eca2b7bc
+ languageName: node
+ linkType: hard
+
+"@shikijs/vscode-textmate@npm:^10.0.2":
+ version: 10.0.2
+ resolution: "@shikijs/vscode-textmate@npm:10.0.2"
+ checksum: 10c0/36b682d691088ec244de292dc8f91b808f95c89466af421cf84cbab92230f03c8348649c14b3251991b10ce632b0c715e416e992dd5f28ff3221dc2693fd9462
+ languageName: node
+ linkType: hard
+
"@tsconfig/node10@npm:^1.0.7":
version: 1.0.11
resolution: "@tsconfig/node10@npm:1.0.11"
@@ -695,6 +755,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/hast@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "@types/hast@npm:3.0.4"
+ dependencies:
+ "@types/unist": "npm:*"
+ checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7
+ languageName: node
+ linkType: hard
+
"@types/json-schema@npm:^7.0.15":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
@@ -718,6 +787,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/unist@npm:*":
+ version: 3.0.3
+ resolution: "@types/unist@npm:3.0.3"
+ checksum: 10c0/2b1e4adcab78388e088fcc3c0ae8700f76619dbcb4741d7d201f87e2cb346bfc29a89003cfea2d76c996e1061452e14fcd737e8b25aacf949c1f2d6b2bc3dd60
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/eslint-plugin@npm:8.46.2":
version: 8.46.2
resolution: "@typescript-eslint/eslint-plugin@npm:8.46.2"
@@ -1562,6 +1638,13 @@ __metadata:
languageName: node
linkType: hard
+"entities@npm:^4.4.0":
+ version: 4.5.0
+ resolution: "entities@npm:4.5.0"
+ checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250
+ languageName: node
+ linkType: hard
+
"env-paths@npm:^2.2.0":
version: 2.2.1
resolution: "env-paths@npm:2.2.1"
@@ -2744,6 +2827,15 @@ __metadata:
languageName: node
linkType: hard
+"linkify-it@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "linkify-it@npm:5.0.0"
+ dependencies:
+ uc.micro: "npm:^2.0.0"
+ checksum: 10c0/ff4abbcdfa2003472fc3eb4b8e60905ec97718e11e33cca52059919a4c80cc0e0c2a14d23e23d8c00e5402bc5a885cdba8ca053a11483ab3cc8b3c7a52f88e2d
+ languageName: node
+ linkType: hard
+
"locate-path@npm:^5.0.0":
version: 5.0.0
resolution: "locate-path@npm:5.0.0"
@@ -2823,6 +2915,13 @@ __metadata:
languageName: node
linkType: hard
+"lunr@npm:^2.3.9":
+ version: 2.3.9
+ resolution: "lunr@npm:2.3.9"
+ checksum: 10c0/77d7dbb4fbd602aac161e2b50887d8eda28c0fa3b799159cee380fbb311f1e614219126ecbbd2c3a9c685f1720a8109b3c1ca85cc893c39b6c9cc6a62a1d8a8b
+ languageName: node
+ linkType: hard
+
"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2":
version: 3.1.0
resolution: "make-dir@npm:3.1.0"
@@ -2868,6 +2967,29 @@ __metadata:
languageName: node
linkType: hard
+"markdown-it@npm:^14.1.0":
+ version: 14.1.0
+ resolution: "markdown-it@npm:14.1.0"
+ dependencies:
+ argparse: "npm:^2.0.1"
+ entities: "npm:^4.4.0"
+ linkify-it: "npm:^5.0.0"
+ mdurl: "npm:^2.0.0"
+ punycode.js: "npm:^2.3.1"
+ uc.micro: "npm:^2.1.0"
+ bin:
+ markdown-it: bin/markdown-it.mjs
+ checksum: 10c0/9a6bb444181d2db7016a4173ae56a95a62c84d4cbfb6916a399b11d3e6581bf1cc2e4e1d07a2f022ae72c25f56db90fbe1e529fca16fbf9541659dc53480d4b4
+ languageName: node
+ linkType: hard
+
+"mdurl@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "mdurl@npm:2.0.0"
+ checksum: 10c0/633db522272f75ce4788440669137c77540d74a83e9015666a9557a152c02e245b192edc20bc90ae953bbab727503994a53b236b4d9c99bdaee594d0e7dd2ce0
+ languageName: node
+ linkType: hard
+
"merge2@npm:^1.3.0":
version: 1.4.1
resolution: "merge2@npm:1.4.1"
@@ -3480,6 +3602,13 @@ __metadata:
languageName: node
linkType: hard
+"punycode.js@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "punycode.js@npm:2.3.1"
+ checksum: 10c0/1d12c1c0e06127fa5db56bd7fdf698daf9a78104456a6b67326877afc21feaa821257b171539caedd2f0524027fa38e67b13dd094159c8d70b6d26d2bea4dfdb
+ languageName: node
+ linkType: hard
+
"punycode@npm:^2.1.0, punycode@npm:^2.1.1":
version: 2.3.1
resolution: "punycode@npm:2.3.1"
@@ -4086,6 +4215,23 @@ __metadata:
languageName: node
linkType: hard
+"typedoc@npm:^0.28.14":
+ version: 0.28.14
+ resolution: "typedoc@npm:0.28.14"
+ dependencies:
+ "@gerrit0/mini-shiki": "npm:^3.12.0"
+ lunr: "npm:^2.3.9"
+ markdown-it: "npm:^14.1.0"
+ minimatch: "npm:^9.0.5"
+ yaml: "npm:^2.8.1"
+ peerDependencies:
+ typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x
+ bin:
+ typedoc: bin/typedoc
+ checksum: 10c0/a8727134991ba3f9a982e9f6ceecfbcf0fac531e4865e4865cdee68ea6fe1a594228b8654011d38ffa2332b7e84e4eaa3d0dac04a8bdf36a0686d1c3f327e80b
+ languageName: node
+ linkType: hard
+
"typescript-eslint@npm:^8.46.2":
version: 8.46.2
resolution: "typescript-eslint@npm:8.46.2"
@@ -4121,6 +4267,13 @@ __metadata:
languageName: node
linkType: hard
+"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "uc.micro@npm:2.1.0"
+ checksum: 10c0/8862eddb412dda76f15db8ad1c640ccc2f47cdf8252a4a30be908d535602c8d33f9855dfcccb8b8837855c1ce1eaa563f7fa7ebe3c98fd0794351aab9b9c55fa
+ languageName: node
+ linkType: hard
+
"undefsafe@npm:^2.0.5":
version: 2.0.5
resolution: "undefsafe@npm:2.0.5"
@@ -4342,6 +4495,15 @@ __metadata:
languageName: node
linkType: hard
+"yaml@npm:^2.8.1":
+ version: 2.8.1
+ resolution: "yaml@npm:2.8.1"
+ bin:
+ yaml: bin.mjs
+ checksum: 10c0/7c587be00d9303d2ae1566e03bc5bc7fe978ba0d9bf39cc418c3139d37929dfcb93a230d9749f2cb578b6aa5d9ebebc322415e4b653cb83acd8bc0bc321707f3
+ languageName: node
+ linkType: hard
+
"yargs-parser@npm:^18.1.2":
version: 18.1.3
resolution: "yargs-parser@npm:18.1.3"