Source code for langchain_community.document_loaders.docusaurus
"""从Docusarus文档加载文档"""
from typing import Any, List, Optional
from langchain_community.document_loaders.sitemap import SitemapLoader
[docs]class DocusaurusLoader(SitemapLoader):
"""从Docusaurus文档加载。
它利用SitemapLoader循环遍历Docusaurus文档网站生成的页面,并通过查找特定的HTML标签提取内容。默认情况下,解析器会搜索Docusaurus页面的主要内容,通常是<article>。您还可以通过将它们提供为列表来定义自己的自定义HTML标签,例如:["div", ".main", "a"]。"""
[docs] def __init__(
self,
url: str,
custom_html_tags: Optional[List[str]] = None,
**kwargs: Any,
):
"""初始化DocusaurusLoader
参数:
url: Docusaurus网站的基本URL。
custom_html_tags: 可选的自定义HTML标签,用于从页面中提取内容。
kwargs: 用于扩展基础SitemapLoader的其他参数,例如:
filter_urls, blocksize, meta_function, is_local, continue_on_failure
"""
if not kwargs.get("is_local"):
url = f"{url}/sitemap.xml"
self.custom_html_tags = custom_html_tags or ["main article"]
super().__init__(
url,
parsing_function=kwargs.get("parsing_function") or self._parsing_function,
**kwargs,
)
def _parsing_function(self, content: Any) -> str:
"""从Docusaurus页面中解析特定元素。"""
relevant_elements = content.select(",".join(self.custom_html_tags))
for element in relevant_elements:
if element not in relevant_elements:
element.decompose()
return str(content.get_text())