From 598220637eae449382b471c4360fbab4d1da28d6 Mon Sep 17 00:00:00 2001 From: Brace Sproul Date: Wed, 22 Nov 2023 16:45:13 -0800 Subject: [PATCH] Fixed docs build issue (#3382) * Fixed docs build issue * chore: lint files * cr * docs fix * format * cr --- docs/api_refs/.gitignore | 3 ++- docs/api_refs/scripts/generate-api-refs.js | 7 +++++-- docs/core_docs/code-block-loader.js | 21 +++++++++++++-------- docs/core_docs/src/css/custom.css | 14 +++++++------- 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/docs/api_refs/.gitignore b/docs/api_refs/.gitignore index a9da50845591..a6d33d0a4e4b 100644 --- a/docs/api_refs/.gitignore +++ b/docs/api_refs/.gitignore @@ -37,4 +37,5 @@ next-env.d.ts # Autogenerated docs /public/* -/langchain \ No newline at end of file +/langchain +/langchain-core \ No newline at end of file diff --git a/docs/api_refs/scripts/generate-api-refs.js b/docs/api_refs/scripts/generate-api-refs.js index 76cbfba92263..2532c01ee05b 100644 --- a/docs/api_refs/scripts/generate-api-refs.js +++ b/docs/api_refs/scripts/generate-api-refs.js @@ -67,8 +67,11 @@ async function updateCodeWithIgnoreTags(tsConfigFilePath) { } async function copyLangChain(pathToLangChain) { - // copy the entire langchain dir to . - + try { + await execAsync(`rm -rf ./langchain`); + } catch (_) { + // no-op + } await execAsync(`cp -r ${pathToLangChain} ./langchain`); return { rootPath: `${process.cwd()}/langchain`, diff --git a/docs/core_docs/code-block-loader.js b/docs/core_docs/code-block-loader.js index 0931ccd94477..bf07e0007efe 100644 --- a/docs/core_docs/code-block-loader.js +++ b/docs/core_docs/code-block-loader.js @@ -57,6 +57,9 @@ async function webpackLoader(content, map, meta) { } }); + const getDocsPath = (componentPath) => + path.resolve(__dirname, "..", "api_refs", "public", componentPath); + /** * Somewhat of a hacky solution to finding the exact path of the docs file. * Maps over all categories in the API docs and if the file exists, returns the path. @@ -68,15 +71,17 @@ async function webpackLoader(content, map, meta) { let modulePath; CATEGORIES.forEach((category) => { const componentPath = `${category}/${moduleName}.${imported}.html`; - const docsPath = path.resolve( - __dirname, - "..", - "api_refs", - "public", - componentPath - ); + const docsPath = getDocsPath(componentPath); + // The modules from `langchain-core` are named differently in the API docs. + const componentPathWithSchema = `${category}/schema_${moduleName.slice( + 0, + -1 + )}.${imported}.html`; + const newDocsPath = getDocsPath(componentPathWithSchema); if (fs.existsSync(docsPath)) { modulePath = componentPath; + } else if (fs.existsSync(newDocsPath)) { + modulePath = componentPathWithSchema; } }); return modulePath; @@ -90,7 +95,7 @@ async function webpackLoader(content, map, meta) { imp.docs = BASE_URL + "/" + exactPath; } else { throw new Error( - `Could not find docs for ${source}.${imported} in api_refs/public/` + `Could not find docs for ${moduleName}.${imported} or schema_${moduleName}.${imported} in api_refs/public/` ); } }); diff --git a/docs/core_docs/src/css/custom.css b/docs/core_docs/src/css/custom.css index 1da29e390669..64271eb80ff4 100644 --- a/docs/core_docs/src/css/custom.css +++ b/docs/core_docs/src/css/custom.css @@ -26,7 +26,7 @@ } /* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme='dark'] { +[data-theme="dark"] { --ifm-color-primary: #25c2a0; --ifm-color-primary-dark: #21af90; --ifm-color-primary-darker: #1fa588; @@ -89,7 +89,7 @@ font-size: 0.85rem; } -[data-theme='dark'] .node-only::after { +[data-theme="dark"] .node-only::after { background: #026e00; color: #fff; } @@ -111,7 +111,7 @@ font-size: 0.85rem; } -[data-theme='dark'] .node-only-category::after { +[data-theme="dark"] .node-only-category::after { background: #026e00; color: #fff; } @@ -133,7 +133,7 @@ padding-bottom: 1rem; } -.markdown > :not(h2) + h3 { +.markdown > :not(h2) + h3 { margin-top: 4rem; } @@ -160,7 +160,7 @@ } .header-github-link::before { - content: ''; + content: ""; width: 24px; height: 24px; display: flex; @@ -168,7 +168,7 @@ no-repeat; } -[data-theme='dark'] .header-github-link::before { +[data-theme="dark"] .header-github-link::before { background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat; -} \ No newline at end of file +}