You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Node.js中如何解析带有头部标签行的自定义格式文件?

实现方案

这个自定义格式分为两部分,顶部是-- 键: 值格式的元数据块,和正文Markdown块之间用空行分隔,解析逻辑可以按以下方式实现:

const parse = (content) => {
  // 按换行符拆分所有内容行
  const lines = content.split('\n')
  const meta = {}
  let contentStartIndex = 0

  // 遍历收集元数据
  for (let i = 0; i < lines.length; i++) {
    const line = lines[i].trim()
    // 遇到空行代表元数据块结束,跳出循环
    if (!line) {
      contentStartIndex = i + 1
      break
    }
    // 匹配-- 开头的元数据行
    if (line.startsWith('-- ')) {
      // 切割键值,避免值本身包含冒号导致切割错误
      const [keyPart, ...valueParts] = line.slice(2).split(':')
      const key = keyPart.trim().toLowerCase()
      const value = valueParts.join(':').trim()
      meta[key] = value
    }
  }

  // 剩余内容拼接为正文
  const article = lines.slice(contentStartIndex).join('\n').trim()

  return {
    title: meta.title || '',
    author: meta.author || '',
    date: meta.date || '',
    article
  }
}

补充说明

  • 支持值中带冒号的元数据项,不会出现切割错误
  • 缺失的元数据项默认返回空字符串,可根据需求自行调整默认值
  • 如果需要返回所有自定义元数据项,可直接在返回值中展开meta对象即可

内容的提问来源于stack exchange,提问作者Diego Vallejo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:45:03