@ bildit- platform/ template- parser (英语)
BILDIT旗下模板的解析器和变压器.
出口
| 入境点 | 模板语法 |
|---|---|
@bildit-platform/template-parser/v1 | $(name:Type=default;option=value) 用勒泽语法解析的表达式 |
@bildit-platform/template-parser/v2 | JSDoc附加说明的声明,以模板标出 // @template v2 |
没有根导出; 从 /v1 或者说 /v2。 。 。 .
v1 使用量
import { parseTemplateMetadata, transformTemplate } from '@bildit-platform/template-parser/v1'
const metadata = parseTemplateMetadata('const title = $(title:String="Hello")')
const code = transformTemplate('const title = $(title:String="Hello")', { title: 'Hi' })
v2 用途
import { isV2Template, parseTemplateMetadata, transformTemplate } from '@bildit-platform/template-parser/v2'
const source = `// @template v2
/**
* Headline shown at the top of the banner.
* @type String
* @mutates content
*/
const title = $(title:String="Hello")
`
isV2Template(source) // true (marker in the first 10 lines, or metadata with `mutates`)
const metadata = parseTemplateMetadata(source)
// [{ name: 'title', type: 'String', defaultValue: 'Hello', mutates: [{ property: null, attribute: 'content' }], ... }]
const replaced = transformTemplate(source, 'jsx', [{ ...metadata[0], value: 'Hi' }])
// ... const title = "Hi"
isV2Template(code, metadata?)数字 :code可以是字符串或字符串{ raw }代码对象.transformTemplate(code, codeType, metadata, components?)数字 :codeType: 'html'输出未引用的值.components是一个Map用于注入的已公布组件名称Component字段。 当字段宣布无效时抛出@mutates属性.
V2 执行匹配 bildit- cms API(replace-template-values-v2.js, (中文(简体) ), parseMetadataV2.js, (中文(简体) ), is-v2-syntax.js) (中文(简体) ). 见 src/v2/parity.test.js。 。 。 .
构建( Rollup)
pnpm --filter @bildit-platform/template-parser build
构建输出向 dist/,保留了1个无害环境管理和1个CJS树模块:
dist/esm/v1.js, (中文(简体) ),dist/esm/v2.js无害环境管理的切入点import(中文(简体) )dist/cjs/v1.js, (中文(简体) ),dist/cjs/v2.jsCJS : 切入点(require(中文(简体) )dist/esm/v1/index.d.ts, (中文(简体) ),dist/esm/v2/index.d.ts: 声明类型
运行专用测试
测试对已建 dist/ 输出, 所以先构建 :
pnpm --filter @bildit-platform/template-parser build
pnpm --filter @bildit-platform/template-parser test
语法更改后再生成解析器
pnpm --filter @bildit-platform/template-parser run build:parser
发布
pnpm --filter @bildit-platform/template-parser publish --access public