Files
ai-agent-book/book-tr/experiment_box.lua
T
liqiang b119135836
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
ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
2026-08-20 13:12:50 +00:00

64 lines
1.7 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Pandoc Lua filter: wrap special sections in tcolorbox environments.
--
-- 1. "Deney X-Y" headings → experimentbox (description only, until next heading)
-- 2. "Düşünce Soruları" headings → questionbox (until end of chapter or next same/higher heading)
function Pandoc(doc)
local new_blocks = {}
local in_box = false
local box_type = ""
local box_level = 0
local function open_box(name)
table.insert(new_blocks, pandoc.RawBlock("latex", "\\begin{" .. name .. "}"))
in_box = true
box_type = name
end
local function close_box()
table.insert(new_blocks, pandoc.RawBlock("latex", "\\end{" .. box_type .. "}"))
in_box = false
box_type = ""
end
for _, block in ipairs(doc.blocks) do
if block.t == "Header" then
local text = pandoc.utils.stringify(block)
if text:match("^[Dd]eney%s?%d") then
if in_box then close_box() end
box_level = block.level
block.classes:insert("unnumbered")
open_box("experimentbox")
table.insert(new_blocks, block)
elseif text:match("^[Dd]üşünce [Ss]oruları") then
if in_box then close_box() end
box_level = block.level
block.classes:insert("unnumbered")
open_box("questionbox")
table.insert(new_blocks, block)
elseif in_box then
if box_type == "experimentbox" then
close_box()
elseif block.level <= box_level then
close_box()
end
table.insert(new_blocks, block)
else
table.insert(new_blocks, block)
end
else
table.insert(new_blocks, block)
end
end
if in_box then close_box() end
doc.blocks = new_blocks
return doc
end