diff --git a/main/.vitepress/config.mjs b/main/.vitepress/config.mjs index b0e1ae52d9..28dabf4fd1 100644 --- a/main/.vitepress/config.mjs +++ b/main/.vitepress/config.mjs @@ -1,6 +1,7 @@ import { defineConfig } from 'vitepress'; import { nav } from './themeConfig/nav.js'; import { rewrites } from './themeConfig/rewrites.js'; +import { apiSidebar } from './themeConfig/sidebar.js'; export default defineConfig({ /* --- FOR DEPLOYMENT TO GITHUB PAGES--- */ @@ -410,6 +411,11 @@ export default defineConfig({ }, ], }, + { + text: 'API', + collapsed: true, + ...apiSidebar, + }, { text: 'Support', collapsed: true, diff --git a/main/.vitepress/themeConfig/sidebar.js b/main/.vitepress/themeConfig/sidebar.js new file mode 100644 index 0000000000..5d2ab42b18 --- /dev/null +++ b/main/.vitepress/themeConfig/sidebar.js @@ -0,0 +1,13 @@ +import { generateSidebar } from 'vitepress-sidebar'; + +export const apiSidebar = generateSidebar([ + { + documentRootPath: 'main', + scanStartPath: 'api', + resolvePath: '/api/', + useTitleFromFileHeading: true, + // hyphenToSpace: true, + useFolderTitleFromIndexFile: true, + // excludeFiles: ['mutable-quote.md'], + }, +])['/api/']; diff --git a/package.json b/package.json index 4572728f01..f75a15cdce 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "docs:dev": "NODE_OPTIONS=--openssl-legacy-provider vitepress dev main", "docs:build": "NODE_OPTIONS=--openssl-legacy-provider vitepress build main", "docs:preview": "NODE_OPTIONS=--openssl-legacy-provider vitepress preview main", - "docs:build-endo": "cd endo; yarn install; yarn docs:markdown-for-agoric-documentation-repo; mv api-docs ../main/reference/endo", - "docs:build-agoric-sdk": "cd agoric-sdk; yarn install; yarn build; yarn docs:markdown-for-agoric-documentation-repo; mv api-docs ../main/reference/agoric-sdk", + "docs:build-endo": "cd endo; yarn install; yarn docs:markdown-for-agoric-documentation-repo; mv api-docs ../main/api/endo", + "docs:build-agoric-sdk": "cd agoric-sdk; yarn install; yarn build; yarn docs:markdown-for-agoric-documentation-repo; mv api-docs ../main/api/agoric-sdk", "//docs:build-cf": "echo 'XXX Cloudflare Pages deployment will automatically run `yarn install` right after `git clone`, but this will interfere with building markdown files for endo and agoric-sdk. So we rename node_modules directory before building markdown files and rename it back before running vitepress'", "docs:build-cf": "mv node_modules not_node_modules; yarn docs:build-endo; yarn docs:build-agoric-sdk; mv not_node_modules node_modules; DEBUG='vitepress:*' NODE_OPTIONS=--openssl-legacy-provider vitepress build main && cp _redirects dist/", "git-submodule:init": "git submodule init", @@ -70,7 +70,8 @@ "prettier": "^1.19.1", "ses": "^0.18.8", "stylus": "^0.62.0", - "vitepress": "^1.0.1" + "vitepress": "^1.0.1", + "vitepress-sidebar": "^1.21.0" }, "resolutions": {}, "globals": { diff --git a/yarn.lock b/yarn.lock index c1e9427f19..80e614d573 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3000,6 +3000,13 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + fast-check@^3.0.0: version "3.12.0" resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-3.12.0.tgz#440949277387a053f7f82cd532fa3fcf67346ba1" @@ -3339,6 +3346,16 @@ graceful-fs@^4.2.6: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3629,6 +3646,11 @@ is-error@^2.2.2: resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.2.tgz#c10ade187b3c93510c5470a5567833ee25649843" integrity sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg== +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3853,6 +3875,11 @@ jsonify@~0.0.0: resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -4884,6 +4911,14 @@ sax@~1.3.0: resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + semver@^6.0.0, semver@^6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -5211,6 +5246,11 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -5504,6 +5544,13 @@ vite@^5.2.2: optionalDependencies: fsevents "~2.3.3" +vitepress-sidebar@^1.21.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/vitepress-sidebar/-/vitepress-sidebar-1.22.0.tgz#a37a2fc8c83081874c795e3e3138129c6abab274" + integrity sha512-qweTBD1D+KRM2PJA8gHhSE3Nf6yXOdW49MgPm6Hpq/zJUWTEBVmwN3u+wZ8fWInckS5zp254jLjmXxhgBGwlSw== + dependencies: + gray-matter "^4.0.3" + vitepress@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.0.1.tgz#828fe140d5f4975154845b31e97437f035a36c69"