From a003120a96a64d43debd721af49d41574a7d5f87 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 13:40:29 -0800 Subject: [PATCH 1/8] fix: update config to point to the output openrpc.json --- docusaurus.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index dc33592e7..14d57d053 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -23,7 +23,7 @@ const config: Config = { plugins: [ ['@open-rpc/docusaurus-plugin', { - openRPCSpecPath: './execution-apis.json', + openRPCSpecPath: './openrpc.json', docOutputPath: './docs-api/api', indexSlug: '/' }], From 2153e4ad224cad1bcdf24cfe0338e018c0fc3e02 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 13:43:41 -0800 Subject: [PATCH 2/8] chore: remove gatsby references --- docs/config/gatsby-config.js | 82 ---------------------------------- open-rpc-generator-config.json | 15 ------- package.json | 1 - 3 files changed, 98 deletions(-) delete mode 100644 docs/config/gatsby-config.js delete mode 100644 open-rpc-generator-config.json diff --git a/docs/config/gatsby-config.js b/docs/config/gatsby-config.js deleted file mode 100644 index 6e2cee785..000000000 --- a/docs/config/gatsby-config.js +++ /dev/null @@ -1,82 +0,0 @@ -const remarkGfm = require('remark-gfm'); - -module.exports = { - pathPrefix: "/execution-apis", - siteMetadata: { - title: 'Ethereum JSON-RPC Specification', - description: 'A specification of the standard interface for Ethereum clients.', - siteUrl: process.env.GITHUB_REPOSITORY - ? `https://${process.env.GITHUB_REPOSITORY.split('/')[0]}.github.io/execution-apis` - : 'https://ethereum.github.io/execution-apis', // fallback for local development - logoUrl: 'https://raw.githubusercontent.com/open-rpc/design/master/icons/open-rpc-logo-noText/open-rpc-logo-noText%20(PNG)/256x256.png', - primaryColor: '#3f51b5', //material-ui primary color - secondaryColor: '#f50057', //material-ui secondary color - author: '', - menuLinks: [ - { name: 'Introduction', link: '/intro' }, - { - name: 'API Documentation', - link: '/api-documentation' - }, - { name: 'Quickstart', link: '/quickstart' }, - { name: 'Contributors Guide', link: '/contributors-guide' }, - { name: 'Testing', link: '/tests'}, - { name: 'Ethsimulatev1 notes', link: '/ethsimulatev1-notes' }, - ], - footerLinks: [ - { - name: 'OpenRPC', - link: 'https://open-rpc.org' - } - ] - }, - plugins: [ - { - resolve: 'gatsby-plugin-mdx', - options: { - extensions: ['.mdx', '.md'], - gatsbyRemarkPlugins: [ - { - resolve: 'gatsby-remark-autolink-headers', - options: { - icon: false, - }, - }, - ], - mdxOptions: { - remarkPlugins: [remarkGfm], - }, - }, - }, - "gatsby-openrpc-theme", - { - resolve: 'gatsby-plugin-manifest', - options: { - name: 'pristine-site', - short_name: 'pristine-site', - start_url: '/execution-apis/', - background_color: 'transparent', - theme_color: '#3f51b5', - display: 'minimal-ui', - icon: 'src/images/gatsby-icon.png', // This path is relative to the root of the site. - }, - }, - "gatsby-plugin-image", - "gatsby-plugin-sharp", - "gatsby-transformer-sharp", - { - resolve: "gatsby-source-filesystem", - options: { - name: "images", - path: __dirname + '/src/images', - }, - }, - { - resolve: "gatsby-source-filesystem", - options: { - name: "docs", - path: __dirname + '/../../../docs/reference', - }, - }, - ], -} diff --git a/open-rpc-generator-config.json b/open-rpc-generator-config.json deleted file mode 100644 index 4cdc85c19..000000000 --- a/open-rpc-generator-config.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "openrpcDocument": "openrpc.json", - "outDir": "build", - "components": [ - { - "type": "docs", - "name": "execution-apis", - "language": "gatsby", - "extraConfig": { - "gatsbyConfigPath": "./docs/config", - "docsPath": "./docs/reference" - } - } - ] -} \ No newline at end of file diff --git a/package.json b/package.json index 8397e558c..de1074dec 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "graphql:schema": "node scripts/graphql.js", "graphql:validate": "node scripts/graphql-validate.js", "test": "speccheck -v", - "watch": "nodemon --watch src --watch docs --watch README.md --ignore docs/reference/quickstart.md --ext yaml,md,json --exec \"npm run build && cp ./openrpc.json build/docs/gatsby/src/openrpc.json && cp README.md docs/reference/quickstart.md && npm run serve\"", "start": "docusaurus start", "build:docusaurus": "docusaurus build", "serve": "docusaurus serve", From 4dac18d5f69f986938b538a6082f28dcb3c57608 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 13:44:40 -0800 Subject: [PATCH 3/8] chore: rm open-rpc old generator --- package-lock.json | 516 +--------------------------------------------- package.json | 1 - 2 files changed, 1 insertion(+), 516 deletions(-) diff --git a/package-lock.json b/package-lock.json index 761b0141d..cf8129538 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,11 +12,10 @@ "@docusaurus/core": "^3.9.2", "@docusaurus/plugin-client-redirects": "^3.9.2", "@docusaurus/preset-classic": "^3.9.2", - "@easyops-cn/docusaurus-search-local": "^0.52.2", + "@easyops-cn/docusaurus-search-local": "0.52.2", "@graphql-inspector/core": "~3.3.0", "@mdx-js/react": "^3.0.0", "@open-rpc/docusaurus-plugin": "0.1.5", - "@open-rpc/generator": "^2.1.0", "@open-rpc/schema-utils-js": "^2.1.2", "clsx": "^2.1.1", "graphql": "~16.3.0", @@ -5373,322 +5372,6 @@ "@hapi/hoek": "^9.0.0" } }, - "node_modules/@iarna/toml": { - "version": "2.2.5", - "license": "ISC" - }, - "node_modules/@inquirer/checkbox": { - "version": "4.1.6", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/confirm": { - "version": "5.1.10", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core": { - "version": "10.1.11", - "license": "MIT", - "dependencies": { - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", - "ansi-escapes": "^4.3.2", - "cli-width": "^4.1.0", - "mute-stream": "^2.0.0", - "signal-exit": "^4.1.0", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core/node_modules/cli-width": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@inquirer/core/node_modules/mute-stream": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@inquirer/core/node_modules/signal-exit": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@inquirer/core/node_modules/wrap-ansi": { - "version": "6.2.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@inquirer/editor": { - "version": "4.2.11", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", - "external-editor": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/expand": { - "version": "4.0.13", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/figures": { - "version": "1.0.11", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/input": { - "version": "4.1.10", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/number": { - "version": "3.0.13", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/password": { - "version": "4.0.13", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", - "ansi-escapes": "^4.3.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/prompts": { - "version": "7.5.1", - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^4.1.6", - "@inquirer/confirm": "^5.1.10", - "@inquirer/editor": "^4.2.11", - "@inquirer/expand": "^4.0.13", - "@inquirer/input": "^4.1.10", - "@inquirer/number": "^3.0.13", - "@inquirer/password": "^4.0.13", - "@inquirer/rawlist": "^4.1.1", - "@inquirer/search": "^3.0.13", - "@inquirer/select": "^4.2.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/rawlist": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/type": "^3.0.6", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/search": { - "version": "3.0.13", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/select": { - "version": "4.2.1", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.6", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/type": { - "version": "3.0.6", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -5789,33 +5472,6 @@ "isomorphic-fetch": "^3.0.0" } }, - "node_modules/@json-schema-tools/referencer": { - "version": "1.1.3", - "license": "Apache-2.0", - "dependencies": { - "@json-schema-tools/traverse": "^1.10.4" - } - }, - "node_modules/@json-schema-tools/titleizer": { - "version": "1.0.9", - "license": "Apache-2.0", - "dependencies": { - "@json-schema-tools/traverse": "^1.10.4" - } - }, - "node_modules/@json-schema-tools/transpiler": { - "version": "1.10.5", - "license": "Apache-2.0", - "dependencies": { - "@json-schema-tools/referencer": "^1.1.3", - "@json-schema-tools/titleizer": "^1.0.9", - "@json-schema-tools/traverse": "^1.10.4", - "lodash.camelcase": "^4.3.0", - "lodash.deburr": "^4.1.0", - "lodash.snakecase": "^4.1.1", - "lodash.trim": "^4.5.1" - } - }, "node_modules/@json-schema-tools/traverse": { "version": "1.10.4", "license": "Apache-2.0" @@ -6204,68 +5860,6 @@ "react-dom": "^19.0.0" } }, - "node_modules/@open-rpc/generator": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@open-rpc/generator/-/generator-2.1.0.tgz", - "integrity": "sha512-K1NLJzBGdD6wVQXl73zonktOoo6dXSTHm2fP4Rx5QiWJREr8gutvXMh2Dd6yZcDsLmC8F7BcFZm4bwss0JJ0Tw==", - "license": "Apache-2.0", - "dependencies": { - "@iarna/toml": "^2.2.5", - "@open-rpc/typings": "^1.12.4", - "commander": "^7.2.0", - "fs-extra": "^11.2.0", - "inquirer": "^12.4.2", - "lodash": "^4.17.21" - }, - "bin": { - "open-rpc-generator": "build/cli.js" - } - }, - "node_modules/@open-rpc/generator/node_modules/inquirer": { - "version": "12.6.1", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.11", - "@inquirer/prompts": "^7.5.1", - "@inquirer/type": "^3.0.6", - "ansi-escapes": "^4.3.2", - "mute-stream": "^2.0.0", - "run-async": "^3.0.0", - "rxjs": "^7.8.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@open-rpc/generator/node_modules/mute-stream": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@open-rpc/generator/node_modules/run-async": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@open-rpc/generator/node_modules/rxjs": { - "version": "7.8.2", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/@open-rpc/markdown-generator": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@open-rpc/markdown-generator/-/markdown-generator-0.1.5.tgz", @@ -6324,55 +5918,6 @@ "node": ">=18.0.0" } }, - "node_modules/@open-rpc/typings": { - "version": "1.12.4", - "license": "Apache 2.0", - "dependencies": { - "@json-schema-tools/titleizer": "1.0.9", - "@json-schema-tools/transpiler": "^1.10.5", - "@open-rpc/schema-utils-js": "2.0.2", - "commander": "^6.0.0", - "fs-extra": "^10.0.0" - }, - "bin": { - "open-rpc-typings": "build/cli.js" - } - }, - "node_modules/@open-rpc/typings/node_modules/@open-rpc/schema-utils-js": { - "version": "2.0.2", - "license": "Apache-2.0", - "dependencies": { - "@json-schema-tools/dereferencer": "^1.6.3", - "@json-schema-tools/meta-schema": "^1.7.5", - "@json-schema-tools/reference-resolver": "^1.2.6", - "@open-rpc/meta-schema": "^1.14.9", - "ajv": "^6.10.0", - "detect-node": "^2.0.4", - "fast-safe-stringify": "^2.0.7", - "fs-extra": "^10.1.0", - "is-url": "^1.2.4", - "isomorphic-fetch": "^3.0.0" - } - }, - "node_modules/@open-rpc/typings/node_modules/commander": { - "version": "6.2.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@open-rpc/typings/node_modules/fs-extra": { - "version": "10.1.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@opentelemetry/api": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", @@ -8205,10 +7750,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/chardet": { - "version": "0.7.0", - "license": "MIT" - }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -10510,28 +10051,6 @@ "node": ">=0.10.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/extract-files": { "version": "9.0.0", "license": "MIT", @@ -12107,30 +11626,14 @@ "version": "4.17.21", "license": "MIT" }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "license": "MIT" - }, "node_modules/lodash.debounce": { "version": "4.0.8", "license": "MIT" }, - "node_modules/lodash.deburr": { - "version": "4.1.0", - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "license": "MIT" }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "license": "MIT" - }, - "node_modules/lodash.trim": { - "version": "4.5.1", - "license": "MIT" - }, "node_modules/lodash.uniq": { "version": "4.5.0", "license": "MIT" @@ -13749,13 +13252,6 @@ "opener": "bin/opener-bin.js" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -18413,16 +17909,6 @@ "xml-js": "bin/cli.js" } }, - "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zod": { "version": "4.1.13", "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", diff --git a/package.json b/package.json index de1074dec..5aa0bda21 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "@graphql-inspector/core": "~3.3.0", "@mdx-js/react": "^3.0.0", "@open-rpc/docusaurus-plugin": "0.1.5", - "@open-rpc/generator": "^2.1.0", "@open-rpc/schema-utils-js": "^2.1.2", "clsx": "^2.1.1", "graphql": "~16.3.0", From f0f2bdfa29170efa5d758e174d2b909c4680fe87 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 13:52:08 -0800 Subject: [PATCH 4/8] chore: update website link to point to the ethereum website --- docusaurus.config.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 14d57d053..9a68b890d 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -9,8 +9,7 @@ const config: Config = { /*future: { v4: true },*/ - /* TODO replace url: 'https://ethereum.github.io', */ - url: 'https://open-rpc.github.io', + url: 'https://ethereum.github.io', baseUrl: '/execution-apis/', organizationName: 'ethereum', From b89a22df99f8bbcee2a0ee0611394d3cb47f9c57 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 14:18:32 -0800 Subject: [PATCH 5/8] feat: add support for copy as markdown --- docusaurus.config.ts | 2 ++ package-lock.json | 14 ++++++++++++++ package.json | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 9a68b890d..3cc1408c0 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -21,6 +21,8 @@ const config: Config = { i18n: { defaultLocale: 'en', locales: ['en'] }, plugins: [ + "docusaurus-plugin-copy-page-button", + ['@open-rpc/docusaurus-plugin', { openRPCSpecPath: './openrpc.json', docOutputPath: './docs-api/api', diff --git a/package-lock.json b/package-lock.json index cf8129538..3b01bf2fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@open-rpc/docusaurus-plugin": "0.1.5", "@open-rpc/schema-utils-js": "^2.1.2", "clsx": "^2.1.1", + "docusaurus-plugin-copy-page-button": "^0.3.5", "graphql": "~16.3.0", "graphql-request": "~4.1.0", "js-yaml": "~4.1.0", @@ -9407,6 +9408,19 @@ "node": ">=6" } }, + "node_modules/docusaurus-plugin-copy-page-button": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-copy-page-button/-/docusaurus-plugin-copy-page-button-0.3.5.tgz", + "integrity": "sha512-QwveQb/WM9r8E8qVqXOrZ6uz9YFOPQGV87RpemiemcDg5gQHyhSFenPP5twSrSRkIbT0D7f54lUbl3bbuVJfHg==", + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/core": "^3.0.0", + "react": "^18.0.0 || ^19.0.0" + } + }, "node_modules/dom-converter": { "version": "0.2.0", "license": "MIT", diff --git a/package.json b/package.json index 5aa0bda21..1ba07ea65 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@open-rpc/docusaurus-plugin": "0.1.5", "@open-rpc/schema-utils-js": "^2.1.2", "clsx": "^2.1.1", + "docusaurus-plugin-copy-page-button": "^0.3.5", "graphql": "~16.3.0", "graphql-request": "~4.1.0", "js-yaml": "~4.1.0", @@ -49,4 +50,4 @@ "remark-gfm": "~4.0.1", "typescript": "~5.6.2" } -} \ No newline at end of file +} From 870e980c67e7bf4af0e6043d09fe9bcabb810770 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 15:57:55 -0800 Subject: [PATCH 6/8] chore: add support watching and live development --- README.md | 27 +++++++++++++++++++-------- package-lock.json | 16 ++++++++-------- package.json | 12 +++++++----- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 01b4fb381..b911706cf 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ specification and the JSON schema [specification][json-schema] to get started. ### Updating the specs #### Compiling + The specification is split into multiple files to improve readability. The spec can be compiled into a single document as follows: @@ -37,16 +38,24 @@ will have all schema `#ref`s resolved. #### Building the docs Once you've updated something in the spec, you can use the docs generation tools -to view the updated specs locally. +to view the updated specs locally. ```console $ npm run build:docs $ npm run watch +$ npm run start ``` -The `watch` command starts a local webserver serving the docs in-browser at -`http://0.0.0.0:8000` and it rebuilds when you update something in the specs. -Please reload the page to see your changes. +The `watch` command starts watching the local repository and rebuilds the spec +and copies the `README.md` into the build. Running npm start starts a local +development docusaurus server at `http://localhost:3000` and it rebuilds when you update something in the specs. +Sometimes you must reload the page to see your changes. + +There is also search to see the search index built you must `npm run build:docs` this builds +a production ready version of the app, which will include a local search index. To access +the production build call `npm run serve` + +For more information on the `@open-rpc/docusaurus-plugin` see the [docs](https://github.com/open-rpc/markdown-gen/blob/main/packages/docusaurus-plugin/README.md) for additional configuration options. ### Testing @@ -54,6 +63,7 @@ There are several mechanisms for testing specification contributions and client conformance. #### Linting + First is the [OpenRPC validator][validator]. It performs some basic syntactic checks on the generated specification. @@ -64,12 +74,13 @@ OpenRPC spec validated successfully. ``` #### Spec tests + Next is `speccheck`. This tool validates the test cases in the `tests` -directory against the specification. There are two npm scripts to simplify this. +directory against the specification. There are two npm scripts to simplify this. ```console $ npm run build:test -$ npm run test +$ npm run test all passing. ``` @@ -81,7 +92,7 @@ $ speccheck -v ``` If you get an error that says: `speccheck: command not found`, - make sure that the go binary is in your $PATH: +make sure that the go binary is in your $PATH: ```console $ export PATH=$HOME/go/bin:$PATH @@ -102,6 +113,7 @@ pyspelling is a wrapper around either [Aspell](http://aspell.net/) or one of those before running `pyspelling`. #### Hive tests + Finally, the test cases in the `tests/` directory may be run against individual execution client using the [`hive`][hive] simulator [`rpc-compat`][rpc-compat]. Please see the documentation in the aforementioned repositories for more @@ -133,7 +145,6 @@ $ npm run graphql:validate This repository is licensed under [CC0](LICENSE). - [playground]: https://ethereum.github.io/execution-apis/api-documentation/ [openrpc]: https://open-rpc.org [validator]: https://open-rpc.github.io/schema-utils-js/functions/validateOpenRPCDocument.html diff --git a/package-lock.json b/package-lock.json index 3b01bf2fb..e4d37f763 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@easyops-cn/docusaurus-search-local": "0.52.2", "@graphql-inspector/core": "~3.3.0", "@mdx-js/react": "^3.0.0", - "@open-rpc/docusaurus-plugin": "0.1.5", + "@open-rpc/docusaurus-plugin": "^0.1.6", "@open-rpc/schema-utils-js": "^2.1.2", "clsx": "^2.1.1", "docusaurus-plugin-copy-page-button": "^0.3.5", @@ -5843,16 +5843,16 @@ } }, "node_modules/@open-rpc/docusaurus-plugin": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@open-rpc/docusaurus-plugin/-/docusaurus-plugin-0.1.5.tgz", - "integrity": "sha512-5IcDigvPlwmTP79TLdXyktlBZUUVSKBJ2S5+mt3vM6HUBDNOe0dRbON0gJF/E1AmYcdHiIaHHGS1TFemkXaF0w==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@open-rpc/docusaurus-plugin/-/docusaurus-plugin-0.1.6.tgz", + "integrity": "sha512-amcpoR9/Iz/AinjgCzDMGUHgZwxk779ZHStwtjj5Mi/R30qf5ywR8LfItyVPNDFhuNh0SH3QuNROIx40ncuFDw==", "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", - "@open-rpc/markdown-generator": "0.1.5", + "@open-rpc/markdown-generator": "0.1.6", "@open-rpc/meta-schema": "^1.14.9", "@open-rpc/schema-utils-js": "^2.1.2" }, @@ -5862,9 +5862,9 @@ } }, "node_modules/@open-rpc/markdown-generator": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@open-rpc/markdown-generator/-/markdown-generator-0.1.5.tgz", - "integrity": "sha512-usFW2Cb6iqpFGK/kNEmVvxu9jaCJ+97F3RXZKFhS2uFaaHEsQAI8ZJ6Bq+lejo6ICad9Yx4aC8+MYZ0pQyBdRw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@open-rpc/markdown-generator/-/markdown-generator-0.1.6.tgz", + "integrity": "sha512-+DjiOf3omyo/xxrU0mawg6gIJvo0ESoYI+6u33YOG6uHj3MPxcwzk5fccaROtoj7rWK3aTRbWxjzxOHJylxDqg==", "dependencies": { "@open-rpc/schema-utils-js": "^2.1.2", "@types/mdast": "^4.0.4", diff --git a/package.json b/package.json index 1ba07ea65..948688356 100644 --- a/package.json +++ b/package.json @@ -7,16 +7,18 @@ "build": "npm run build:spec && npm run build:docs && npm run build:test", "build:spec": "node scripts/build.js", "build:test": "which go > /dev/null 2>&1 || (echo 'Error: Go binary not found. Please install Go first.' && exit 1) && go install github.com/lightclient/rpctestgen/cmd/speccheck@latest", - "build:docs": "npm run build:spec && npm run build:docusaurus", + "build:docs": "npm run build:spec && npm run docs:copy && npm run build:docusaurus", "lint": "node scripts/build.js && node scripts/validate.js && node scripts/graphql-validate.js", "clean": "rm -rf build && mkdir -p build", "graphql:schema": "node scripts/graphql.js", "graphql:validate": "node scripts/graphql-validate.js", "test": "speccheck -v", - "start": "docusaurus start", "build:docusaurus": "docusaurus build", + "start": "docusaurus start", "serve": "docusaurus serve", - "clear": "docusaurus clear" + "clear": "docusaurus clear", + "watch": "nodemon --watch src --watch docs-api/docs --watch README.md --ignore docs-api/docs/quickstart.md --ext yaml,md,json --exec \"npm run build:spec && npm run docs:copy\"", + "docs:copy": "cp README.md ./docs-api/docs/quickstart.md" }, "repository": { "type": "git", @@ -35,7 +37,7 @@ "@easyops-cn/docusaurus-search-local": "0.52.2", "@graphql-inspector/core": "~3.3.0", "@mdx-js/react": "^3.0.0", - "@open-rpc/docusaurus-plugin": "0.1.5", + "@open-rpc/docusaurus-plugin": "0.1.6", "@open-rpc/schema-utils-js": "^2.1.2", "clsx": "^2.1.1", "docusaurus-plugin-copy-page-button": "^0.3.5", @@ -50,4 +52,4 @@ "remark-gfm": "~4.0.1", "typescript": "~5.6.2" } -} +} \ No newline at end of file From 52290e60c3467a394359d5c88922cf7c5a8de773 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 16:18:56 -0800 Subject: [PATCH 7/8] chore: fix broken documentation links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b911706cf..a8e082d44 100644 --- a/README.md +++ b/README.md @@ -150,8 +150,8 @@ This repository is licensed under [CC0](LICENSE). [validator]: https://open-rpc.github.io/schema-utils-js/functions/validateOpenRPCDocument.html [graphql-schema]: http://graphql-schema.ethdevops.io/?url=https://raw.githubusercontent.com/ethereum/execution-apis/main/graphql.json [eip-1767]: https://eips.ethereum.org/EIPS/eip-1767 -[contributors-guide]: docs/reference/contributors-guide.md +[contributors-guide]: docs-api/docs/contributors-guide.md [json-schema]: https://json-schema.org [hive]: https://github.com/ethereum/hive [rpc-compat]: https://github.com/ethereum/hive/tree/master/simulators/ethereum/rpc-compat -[test-gen]: docs/reference/tests.md +[test-gen]: docs-api/docs/tests.md From 3205b966fe166548b1b3ad9b082ff6e3ac8c5725 Mon Sep 17 00:00:00 2001 From: Zane Starr Date: Fri, 19 Dec 2025 16:34:35 -0800 Subject: [PATCH 8/8] chore: fix LICENSE link to resolve broken quickstart link --- docs-api/docs/LICENSE.md | 11 +++++++++++ docs-api/src/css/custom.css | 4 ++++ 2 files changed, 15 insertions(+) create mode 100644 docs-api/docs/LICENSE.md diff --git a/docs-api/docs/LICENSE.md b/docs-api/docs/LICENSE.md new file mode 100644 index 000000000..ce379034c --- /dev/null +++ b/docs-api/docs/LICENSE.md @@ -0,0 +1,11 @@ +--- +# GENERATED DOCUMENTATION - DO NOT EDIT THIS FILE +title: "License" +hide_table_of_contents: true +unlisted: true +sidebar_class_name: hidden +description: "" +--- + +See license +[License](https://github.com/ethereum/execution-apis/blob/main/LICENSE) diff --git a/docs-api/src/css/custom.css b/docs-api/src/css/custom.css index 26313f420..3a1d62521 100644 --- a/docs-api/src/css/custom.css +++ b/docs-api/src/css/custom.css @@ -21,3 +21,7 @@ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } +.hidden { + display: none; +} +