From 12e30dd201b2eaab10730273718e3094b3170225 Mon Sep 17 00:00:00 2001 From: Jeff Escalante Date: Wed, 30 Sep 2020 21:29:48 -0400 Subject: [PATCH] fix 'edit this page' link (#512) --- website/components/temporary_docs-page/index.jsx | 4 ++-- website/components/temporary_docs-page/server.js | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/website/components/temporary_docs-page/index.jsx b/website/components/temporary_docs-page/index.jsx index 09357c426b..52e233ee0b 100644 --- a/website/components/temporary_docs-page/index.jsx +++ b/website/components/temporary_docs-page/index.jsx @@ -20,7 +20,7 @@ export default function DocsPage({ productSlug, subpath, order, - staticProps: { mdxSource, data, frontMatter, pagePath }, + staticProps: { mdxSource, data, frontMatter, pagePath, filePath }, }) { const content = hydrate(mdxSource, { components: generateComponents(productName), @@ -43,7 +43,7 @@ export default function DocsPage({ data: data, order, }} - resourceURL={`https://github.com/hashicorp/${productSlug}/blob/master/website/content/docs/${frontMatter.__resourcePath}`} + resourceURL={`https://github.com/hashicorp/${productSlug}/blob/master/website/content/docs/${filePath}`} > {content} diff --git a/website/components/temporary_docs-page/server.js b/website/components/temporary_docs-page/server.js index 37781dbe90..bf149b1063 100644 --- a/website/components/temporary_docs-page/server.js +++ b/website/components/temporary_docs-page/server.js @@ -36,7 +36,7 @@ export async function generateStaticProps(subpath, productName, params) { const allFrontMatter = await fastReadFrontMatter(docsPath) // render the current page path markdown - const { mdxSource, frontMatter } = await renderPageMdx( + const { mdxSource, frontMatter, filePath } = await renderPageMdx( docsPath, pagePath, generateComponents(productName) @@ -50,6 +50,7 @@ export async function generateStaticProps(subpath, productName, params) { }), mdxSource, frontMatter, + filePath, pagePath: `/docs/${pagePath}`, }, } @@ -75,12 +76,14 @@ export async function renderPageMdx(root, pagePath, components) { // prefer leaf if both are present const leafPath = path.join(root, `${pagePath}.mdx`) const indexPath = path.join(root, `${pagePath}/index.mdx`) - let page + let page, filePath if (existsSync(leafPath)) { page = fs.readFileSync(leafPath, 'utf8') + filePath = leafPath } else if (existsSync(indexPath)) { page = fs.readFileSync(indexPath, 'utf8') + filePath = indexPath } else { // NOTE: if we decide to let docs pages render dynamically, we should replace this // error with a straight 404, at least in production. @@ -97,7 +100,7 @@ export async function renderPageMdx(root, pagePath, components) { components, }) - return { mdxSource, frontMatter } + return { mdxSource, frontMatter, filePath: filePath.replace(`${root}/`, '') } } export function fastReadFrontMatter(p) {