SuperAPI AI 工具集

bx-sites-variables-functions

写作与研究

查看项目

更新于 10-16 03:13

技能介绍

该技能用于在 bx-sites 的 Markdown 中通过统一语法复用变量与逻辑:{{ dotted.path }} 引用变量,{{ $name(arg1, arg2) }} 调用魔法函数。

变量:在 bxsites.yaml 中加入 variables 块,支持扁平或嵌套结构;页面用点路径引用,构建时一次性解析。variables 是项目级单一配置块,本身不按语言本地化,多语言项目可改用基于 siteConfig.i18n.defaultLocale.code 的魔法函数,或保持值语言中立。

魔法函数:在 docs/functions.bxs 或 src/functions.bxs 中编写 BoxLang 脚本,函数名以 $ 开头的可从 Markdown 的 {{ }} 调用,不带 $ 的为私有辅助函数,同一文件其他 $ 函数可裸调用,{{ }} 无法直接调用。函数返回值只要可 toString() 即可,可为文本、HTML 或数字,真实 HTML 会按预期拼接进 Markdown 再转换。在主题覆盖(page.bxm/layout.bxm)中,魔法函数绑定到模板作用域,可裸调用,如 #$shout( 'built with boxlang' )#。

上下文变量:魔法函数体内可裸用 siteConfig、page、nav、basePath、versions、currentVersion、locales、currentLocale、currentLocaleDir。其中 page 在 Markdown 中只含磁盘加载字段(title/description/tags/icon/summary/ogImage/urlPath/relativePath/body 等),在 page.bxm 中额外含 toc、prevPage/nextPage、breadcrumbs、editUrl/lastUpdated、iconHtml、markdownUrl、canonicalUrl 等;其余上下文变量两处一致。

参数语法:仅支持逗号分隔的字面量或变量引用,不支持嵌套调用或表达式;可为数字、单双引号字符串、布尔值和点路径变量引用。

可视化用法:返回 HTML 的魔法函数可生成星级、彩色徽章、进度条等效果,并可在管道表格单元格中使用,因为 {{ }} 在表格解析前即对原始 Markdown 解析。代码块内的 {{ }} 不受处理,内联代码中的也受保护;内容不像变量或 $name(...) 的 {{ }} 原样保留,只有看似引用却无法解析时才构建失败。functions.bxs 为项目级,加载一次,主树及所有版本/语言树均可用。私有辅助函数(无 $)应避免使用 page、nav、siteConfig、themeDir、basePath、moduleAssetsDir、versions、currentVersion、locales、currentLocale、currentLocaleDir、strings、requiredFiles、stringsResolver 等保留名。错误包括 BxSites.UnknownVariable、BxSites.UnknownFunction、BxSites.InvalidFunctions 与 BxSites.InvalidConfig。写入真实 functions.bxs 时,十六进制颜色中的 # 需写成 ##。