ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s

This commit is contained in:
2026-08-20 13:12:50 +00:00
commit b119135836
10275 changed files with 3284984 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
"""MkDocs hook: strip Pandoc-specific attributes before rendering.
The book source uses Pandoc/LaTeX attributes that Python-Markdown does not
understand and would otherwise render as literal text:
## 标题 {.unnumbered} -> ## 标题
![图](x.svg){height=55%} -> ![图](x.svg)
[文本](#sec:foo){.unnumbered} -> [文本](#sec:foo)
"""
import re
_CODE_PATTERN = re.compile(r"(?P<fence>```+|~~~+|`+)([\s\S]*?)(?P=fence)")
_PANDOC_ATTR = re.compile(
r"[ \t]*\{(?:\s*#[a-zA-Z0-9_.:-]+|\s*\.[a-zA-Z0-9_-]+|\s*[a-zA-Z0-9_-]+=[^{}]*)+\s*\}"
)
def on_page_markdown(markdown, **kwargs):
"""MkDocs hook to strip Pandoc attributes outside code blocks and inline code."""
if not markdown:
return ""
out = []
last_end = 0
for match in _CODE_PATTERN.finditer(markdown):
start, end = match.span()
if start > last_end:
non_code = markdown[last_end:start]
non_code = _PANDOC_ATTR.sub("", non_code)
out.append(non_code)
out.append(match.group(0))
last_end = end
if last_end < len(markdown):
non_code = markdown[last_end:]
non_code = _PANDOC_ATTR.sub("", non_code)
out.append(non_code)
return "".join(out)