@accordproject/markdown-template

中文文档
2.0.0发布于 2026/10/11Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 8035

A framework for transforming markdown

原始使用文档
文档目录4 节
  1. Installation
  2. Usage
  3. What this package exports
  4. License

TemplateMark Transformer

Parses markdown templates (TemplateMark) into a typed DOM that captures clause/contract structure, variable references, conditionals, optionals, list iteration, joins, and embedded TypeScript formulas.

TemplateMark extends the CommonMark DOM with:

  • ClauseDefinition, ContractDefinition
  • VariableDefinition, FormattedVariableDefinition, EnumVariableDefinition
  • ConditionalDefinition, OptionalDefinition
  • WithDefinition, JoinDefinition, ListBlockDefinition
  • FormulaDefinition

Schema: [email protected].

Installation

npm install @accordproject/markdown-template

Peer dependencies: @accordproject/concerto-core@^5.0.0 and @accordproject/concerto-cto@^5.0.0.

Usage

A template needs a Concerto model that defines the shape of the data being templated. The model must declare exactly one concept decorated with @template.

import { TemplateMarkTransformer } from '@accordproject/markdown-template';
import { ModelManager } from '@accordproject/concerto-core';

const model = `
namespace [email protected]
@template
concept Greeting {
    o String name
}`;

const modelManager = new ModelManager();
modelManager.addCTOModel(model);

const transformer = new TemplateMarkTransformer();
const templateMark = transformer.fromMarkdownTemplate(
    { content: 'Hello {{name}}.' },
    modelManager,
    'clause'
);

The returned templateMark is a JSON document conforming to the TemplateMark schema. Pass 'contract' instead of 'clause' if the template is a contract.

In CommonJS:

const { TemplateMarkTransformer } = require('@accordproject/markdown-template');

What this package exports

  • TemplateMarkTransformer — markdown_template ↔ TemplateMark DOM
  • templatemarkutil — lower-level helpers for tokenization and typing
  • datetimeutil, util — date/time and hashing utilities
  • TemplateException — error type thrown for invalid templates
  • normalizeNLs — normalize line endings

License

Accord Project source code files are made available under the Apache License, Version 2.0 (Apache-2.0), located in the LICENSE file. Accord Project documentation files are made available under the Creative Commons Attribution 4.0 International License (CC-BY-4.0), available at http://creativecommons.org/licenses/by/4.0/.

版本与发布记录

@accordproject/markdown-template 共发布 724 个版本,首次发布于 2020/04/21;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.0latest2026/10/1125 天前
1.1.02026/09/141 个月前
1.0.12026/06/045 个月前
0.18.12026/05/195 个月前
0.18.02026/05/066 个月前
0.17.22026/02/268 个月前

其他发布通道:unstable → 0.16.20-20241108141903。

关于 @accordproject/markdown-template 的常见问题

@accordproject/markdown-template 是什么?

A framework for transforming markdown

如何安装 @accordproject/markdown-template?

在项目目录运行 npm install @accordproject/markdown-template,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@accordproject/concerto-cto(^5.0.0)、@accordproject/concerto-core(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@accordproject/markdown-template 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@accordproject/markdown-template 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@accordproject/markdown-template 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@accordproject/markdown-template 可以商用吗?

@accordproject/markdown-template 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@accordproject/markdown-template 的下载量有多少?

根据 npm 官方下载统计,@accordproject/markdown-template 在 2026/10/05 – 2026/11/03 这 30 天内被下载 8,035 次,日均约 268 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@accordproject/markdown-template 还在维护吗?

最新版本 2.0.0 发布于 2026/10/11(25 天前);至今共发布 724 个版本,其中过去 12 个月发布了 6 个;首次发布于 2020/04/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。