@diplodoc/liquid

中文文档
1.5.3发布于 2026/08/06MITTypeScriptCommonJS构建来源已验证近 30 天下载 8849

用于处理YFM(Yandex Flavored Markdown)文件的基本液态语法小而快的执行

中文使用文档
文档目录11 节
  1. 特征
  2. 安装
  3. 使用量
  4. 基本示例
  5. 处理片段
  6. 处理 JSON
  7. API 密码
  8. 职能
  9. 类型
  10. 配置
  11. 许可证

英语 | русский


NPM version Quality Gate Status Coverage Maintainability Rating Reliability Rating Security Rating

@ diplodoc/ 液体

用于处理YFM(Yandex Flavored Markdown)文件的基本液态语法小而快的执行. 提供模板处理能力,包括可变替代,条件,周期(loops),和前事处理等.

特征

  • 可变替换 —— 说 {{ variable }} 语法
  • 有条件的块 —— 说 {% if condition %}...{% endif %}
  • 循环/循环区块 —— 说 {% for item in collection %}...{% endfor %}
  • 前题处理 - YAML 前题提取和加工
  • 源地图支持 ——用于调试的可选源地图
  • 自定义过滤器 ——可扩展过滤系统
  • 代码块保存 ——处理内部不处理液态语法的代码块

安装

npm install @diplodoc/liquid

使用量

基本示例

import {createContext, liquidDocument} from '@diplodoc/liquid';

// Create a context with logger and settings
const context = createContext({
  info: console.log,
  warn: console.warn,
  error: console.error,
});

// Process a document with variables
const template = `
---
title: {{ title }}
---

Hello, {{ name }}!

{% if showDetails %}
Details: {{ details }}
{% endif %}
`;

const vars = {
  title: 'My Document',
  name: 'World',
  showDetails: true,
  details: 'Some important information',
};

const result = liquidDocument.call(context, template, vars);
// Result:
// ---
// title: My Document
// ---
//
// Hello, World!
//
// Details: Some important information

处理片段

import {liquidSnippet} from '@diplodoc/liquid';

const snippet = 'Hello, {{ name }}!';
const vars = {name: 'World'};

const result = liquidSnippet.call(context, snippet, vars);
// Result: "Hello, World!"

处理 JSON

import {liquidJson} from '@diplodoc/liquid';

const json = {
  title: '{{ title }}',
  items: ['{{ item1 }}', '{{ item2 }}'],
};

const vars = {
  title: 'My Title',
  item1: 'First',
  item2: 'Second',
};

const result = liquidJson.call(context, json, vars);
// Result: { title: 'My Title', items: ['First', 'Second'] }

API 密码

职能

  • liquidDocument(input, vars, sourcemap?) - 用前题处理完整的YFM文档
  • liquidSnippet(input, vars, sourcemap?) - 处理液态模板片段(无前题)
  • liquidJson(json, vars) ——递归处理 JSON 对象中的液体语法
  • createContext(logger, settings?) ——创建用于处理的液体上下文

类型

  • LiquidContext - 包含日志、设置和可选路径的上下文对象
  • LiquidSettings - 液体处理配置选项
  • SourceMap ——用于跟踪变换的源地图

详细API文档见TypeScript定义.

配置

您可以通过 LiquidSettings数字 :

const context = createContext(logger, {
  conditions: true, // Enable/disable conditions
  cycles: true, // Enable/disable cycles
  substitutions: true, // Enable/disable substitutions
  conditionsInCode: false, // Process conditions in code blocks
  keepNotVar: false, // Keep {{ var }} if variable not found
});

许可证

麻省理工学院

版本与发布记录

@diplodoc/liquid 共发布 19 个版本,首次发布于 2025/02/28;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.5.3latest2026/08/063 个月前
1.5.22026/05/285 个月前
1.5.12026/05/195 个月前
0.0.0-rc-not-var-21673420971not-var2026/02/049 个月前
1.5.02025/12/2710 个月前
1.4.02025/12/2210 个月前

其他发布通道:false → 0.0.0-rc-not-var-regexp-202510281012,not-var → 0.0.0-rc-not-var-21673420971。

关于 @diplodoc/liquid 的常见问题

@diplodoc/liquid 是什么?

用于处理YFM(Yandex Flavored Markdown)文件的基本液态语法小而快的执行

如何安装 @diplodoc/liquid?

在项目目录运行 npm install @diplodoc/liquid,或使用 pnpm add / yarn add / bun add。

@diplodoc/liquid 支持 TypeScript 吗?

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

@diplodoc/liquid 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@diplodoc/liquid 可以商用吗?

@diplodoc/liquid 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@diplodoc/liquid 的下载量有多少?

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

@diplodoc/liquid 还在维护吗?

最新版本 1.5.3 发布于 2026/08/06(3 个月前);至今共发布 19 个版本,其中过去 12 个月发布了 6 个;首次发布于 2025/02/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。