mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 13:23:35 +00:00
docs: frontmatter gen, colab/github links (#28852)
This commit is contained in:
parent
2a7469e619
commit
cb4e6ac941
@ -143,16 +143,22 @@ def _modify_frontmatter(
|
||||
edit_url = (
|
||||
f"https://github.com/langchain-ai/langchain/edit/master/docs/docs/{rel_path}"
|
||||
)
|
||||
frontmatter = {
|
||||
"custom_edit_url": edit_url,
|
||||
}
|
||||
if re.match(r"^[\s\n]*---\n", body):
|
||||
# if custom_edit_url already exists, leave it
|
||||
if re.match(r"custom_edit_url: ", body):
|
||||
return body
|
||||
else:
|
||||
return re.sub(
|
||||
r"^[\s\n]*---\n", f"---\ncustom_edit_url: {edit_url}\n", body, count=1
|
||||
)
|
||||
# frontmatter already present
|
||||
|
||||
for k, v in frontmatter.items():
|
||||
# if key already exists, leave it
|
||||
if re.match(f"{k}: ", body):
|
||||
continue
|
||||
else:
|
||||
body = re.sub(r"^[\s\n]*---\n", f"---\n{k}: {v}\n", body, count=1)
|
||||
return body
|
||||
else:
|
||||
return f"---\ncustom_edit_url: {edit_url}\n---\n{body}"
|
||||
insert = "\n".join([f"{k}: {v}" for k, v in frontmatter.items()])
|
||||
return f"---\n{insert}\n---\n{body}"
|
||||
|
||||
|
||||
def _convert_notebook(
|
||||
|
85
docs/src/theme/DocItem/Layout/index.js
Normal file
85
docs/src/theme/DocItem/Layout/index.js
Normal file
@ -0,0 +1,85 @@
|
||||
import React from 'react';
|
||||
import clsx from 'clsx';
|
||||
import {useWindowSize} from '@docusaurus/theme-common';
|
||||
import {useDoc} from '@docusaurus/plugin-content-docs/client';
|
||||
import DocItemPaginator from '@theme/DocItem/Paginator';
|
||||
import DocVersionBanner from '@theme/DocVersionBanner';
|
||||
import DocVersionBadge from '@theme/DocVersionBadge';
|
||||
import DocItemFooter from '@theme/DocItem/Footer';
|
||||
import DocItemTOCMobile from '@theme/DocItem/TOC/Mobile';
|
||||
import DocItemTOCDesktop from '@theme/DocItem/TOC/Desktop';
|
||||
import DocItemContent from '@theme/DocItem/Content';
|
||||
import DocBreadcrumbs from '@theme/DocBreadcrumbs';
|
||||
import ContentVisibility from '@theme/ContentVisibility';
|
||||
import styles from './styles.module.css';
|
||||
/**
|
||||
* Decide if the toc should be rendered, on mobile or desktop viewports
|
||||
*/
|
||||
function useDocTOC() {
|
||||
const {frontMatter, toc} = useDoc();
|
||||
const windowSize = useWindowSize();
|
||||
const hidden = frontMatter.hide_table_of_contents;
|
||||
const canRender = !hidden && toc.length > 0;
|
||||
const mobile = canRender ? <DocItemTOCMobile /> : undefined;
|
||||
const desktop =
|
||||
canRender && (windowSize === 'desktop' || windowSize === 'ssr') ? (
|
||||
<DocItemTOCDesktop />
|
||||
) : undefined;
|
||||
return {
|
||||
hidden,
|
||||
mobile,
|
||||
desktop,
|
||||
};
|
||||
}
|
||||
export default function DocItemLayout({children}) {
|
||||
const docTOC = useDocTOC();
|
||||
const {metadata, frontMatter} = useDoc();
|
||||
|
||||
"https://github.com/langchain-ai/langchain/blob/master/docs/docs/introduction.ipynb"
|
||||
"https://colab.research.google.com/github/langchain-ai/langchain/blob/master/docs/docs/introduction.ipynb"
|
||||
|
||||
console.log({metadata, frontMatter})
|
||||
|
||||
const linkColab = frontMatter.link_colab || (
|
||||
metadata.editUrl?.endsWith(".ipynb")
|
||||
? metadata.editUrl?.replace("https://github.com/langchain-ai/langchain/edit/", "https://colab.research.google.com/github/langchain-ai/langchain/blob/")
|
||||
: null
|
||||
);
|
||||
const linkGithub = frontMatter.link_github || metadata.editUrl?.replace("/edit/", "/blob/");
|
||||
|
||||
console.log({linkColab, linkGithub})
|
||||
|
||||
return (
|
||||
<div className="row">
|
||||
<div className={clsx('col', !docTOC.hidden && styles.docItemCol)}>
|
||||
<ContentVisibility metadata={metadata} />
|
||||
<DocVersionBanner />
|
||||
<div className={styles.docItemContainer}>
|
||||
<article>
|
||||
<DocBreadcrumbs />
|
||||
<DocVersionBadge />
|
||||
{docTOC.mobile}
|
||||
<div style={{
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
alignItems: "flex-end",
|
||||
float: "right",
|
||||
}}>
|
||||
{linkColab && (<a target="_blank" href={linkColab}>
|
||||
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
|
||||
</a>)}
|
||||
{linkGithub && (<a href={linkGithub} target="_blank">
|
||||
<img src="https://img.shields.io/badge/Open%20on%20GitHub-grey?logo=github&logoColor=white"
|
||||
alt="Open on GitHub" />
|
||||
</a>)}
|
||||
</div>
|
||||
<DocItemContent>{children}</DocItemContent>
|
||||
<DocItemFooter />
|
||||
</article>
|
||||
<DocItemPaginator />
|
||||
</div>
|
||||
</div>
|
||||
{docTOC.desktop && <div className="col col--3">{docTOC.desktop}</div>}
|
||||
</div>
|
||||
);
|
||||
}
|
10
docs/src/theme/DocItem/Layout/styles.module.css
Normal file
10
docs/src/theme/DocItem/Layout/styles.module.css
Normal file
@ -0,0 +1,10 @@
|
||||
.docItemContainer header + *,
|
||||
.docItemContainer article > *:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 997px) {
|
||||
.docItemCol {
|
||||
max-width: 75% !important;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user