@barefootjs/真贾
赤脚JS的Jinja2适配器:编译赤脚JS IR(JSX → IR,参见:
spec/compiler.md改为: .jinja 模板文件加客户端 JS 捆绑
每个其它适配器都会产生 Python 渲染运行时间
(单位:千美元)python/barefootjs/)使这些模板通过平面
jinja2.Environment - 不需要任何框架(弗拉斯克、强戈、赤裸裸的瓦斯格派,
以同样的方式工作).
近机械港口 @barefootjs/xslate (案文:Xslate/Kolon)
适配器),为通贾2语法. 见 src/adapter/jinja-adapter.ts标题
关于完整的Kolon-Jinja语法图表和JS/Python的评论
语义差异 此端口处理一致( 真实性,
字符串、保留字标识符
由于金佳没有羊肉,只限高订单召回
表达式).
模板输出形状
name: 'jinja', (中文(简体) ),extension: '.jinja', (中文(简体) ),templatesPerComponent: true—— 说 一个.jinja每个组件的文件, 由蛇定义 PascalCase 命名 组件名称 (UserCard→user_card.jinja) (中文(简体) ).- 水分标记(
bf-s, (中文(简体) ),bf-h编号 :bf-m编号 :bf-r, (中文(简体) ),bf-p时段/条件 注释标记, 循环边界注释) 使用 SAME 运行时法 每个适配器的名称bf.*电话(bf.scope_attr(), (中文(简体) ),bf.hydration_attrs(), (中文(简体) ),bf.text_start编号 :text_end, (中文(简体) ),bf.comment(...), (中文(简体) ), ...)——见:spec/template-helpers.md共享帮助合同. - 可能非字符串值的每个文本/属性插值都是
路径通过
bf.string(...)(或bf.bool_str(...)页:1 布尔形状值; 每个非比较条件位置是 路径通过bf.truthy(...)两者都是纯Python-runtime的助手—— 见下面的 Python 运行时间指针.
Python 运行时间
python/barefootjs/ 是一个自成一体的 Python 软件包(只依赖 :
jinja2实施引擎不可知性 bf 每个已发射对象
模板调用到:水分标记、上下文传播
(单位:千美元)provide_context编号 :use_context),儿童组件渲染
(单位:千美元)render_child),脚本注册,以及JS相容的帮助者
图书馆(string, (中文(简体) ), bool_str, (中文(简体) ), truthy, (中文(简体) ), number, (中文(简体) ), floor编号 :ceil编号 :round, (中文(简体) ),
数组/字符串助手 *_eval 评估人员, spread_attrs, (中文(简体) ),
query(中文(简体) ). 它反映了 packages/adapter-perl/lib/ (单位:千美元)
发动机不可知核外加一薄的每引擎后端)——参见
spec/template-helpers.md 对于语义合同,每个帮助者必须
满足,以及包件本身的测试 python/tests/。 。 。 .
使用量
// vite.config.ts
import { defineConfig } from 'vite'
import { barefoot } from '@barefootjs/jinja/vite'
export default defineConfig({
plugins: barefoot({
components: ['./src/components'],
templates: './dist/templates',
}),
})
vite build 然后发射 .jinja 模板 + 客户 templates 编号 :
维特自己的 build.outDirA级
Python 主机通过构建 jinja2.Environment
(与 autoescape=True, (中文(简体) ), undefined=barefootjs.JsUndefined, (中文(简体) ),
trim_blocks=True, (中文(简体) ), lstrip_blocks=True ——参见适配器头注释
为何需要最后两个) FileSystemLoader 指针
已发射的模板,线程 barefootjs.backend_jinja 作为提交文件
后端 . JinjaBackend(paths=[...]) 环境正是如此.
联合来文 undefined 财务报告和审定财务报表 null 是两个值: 主机 None 联合来文 null,以及
barefootjs.UNDEF 联合国 JsUndefined联合来文 undefined。留下一个道具
未设置, 省略其密钥( 省略道具取去其结构默认值, 或
读作 undefined; 通过 UNDEF 用于存在和
undefined。一个道具作为 None 实值 null:其默认不适用.