在 Markdown 元素之间转换

2023-11-21

解析 Markdown 文档并处理其元素以输出另一个 Markdown 文档的选项有哪些?

咱们来说说吧

```
# unaffected #
```

# H1 #

H1
==

## H2 ##

H2
--

### H3 ###

应转换为

```
# unaffected #
```

## H1 ##

H1
--

### H2 ###

### H2 ###

#### H3 ####

在节点环境中。目标元素可能会有所不同(例如,#### 可能会转换为 **)。

该文档可能包含其他应不受影响的标记元素。

如何获得?显然,不适用于正则表达式(使用正则表达式而不是成熟的词法分析器会影响# unaffected #)。我本来希望使用marked但它似乎只能输出 HTML,不能输出 Markdown。


这是一个带有外部 Markdown 解析器的解决方案,pandoc。它允许自定义过滤器在 haskell 或 python 中修改输入(还有一个Node.js 端口)。这是一个 python 过滤器,它将每个标头增加一级。让我们将其另存为header_increase.py.

from pandocfilters import toJSONFilter, Header

def header_increase(key, value, format, meta):
    if key == 'Header' and value[0] < 7:
        value[0] = value[0] + 1
        return Header(value[0], value[1], value[2])

if __name__ == "__main__":
    toJSONFilter(header_increase)

它不会影响代码块。然而,它可能会转变setex 样式标头对于 h1 和 h2 元素(使用=== or ---)到 atx 样式的标头中(使用#),反之亦然。

要使用该脚本,可以从命令行调用 pandoc:

pandoc input.md --filter header_increase.py -o output.md -t markdown

使用node.js,您可以使用pdc打电话给pandoc。

var pdc = require('pdc');
pdc(input_md, 'markdown', 'markdown', [ '--filter', './header_increase.py' ], function(err, result) {
  if (err)
    throw err;

  console.log(result);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Markdown 元素之间转换 的相关文章

  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 使用模数按字母顺序对列表进行排序

    我在获取元素列表并按字母顺序对它们进行排序方面没有任何问题 但我很难理解如何使用模数来做到这一点 更新 这是按我的方式工作的代码 但是 我更喜欢下面提供的答案的可重用性 因此接受了该答案
  • 在 NodeJS 中将子进程的输出保存在父进程的变量中

    我想在 NodeJS 中启动一个子进程并将其输出保存到一个变量中 以下代码将其提供给标准输出 require child process execSync echo Hello World stdio inherit 我的想法与此代码类似
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • node.js 本身还是 nginx 前端来提供静态文件?

    是否有更快的基准或比较 将 nginx 放在节点前面并让它直接提供静态文件或仅使用节点并使用它提供静态文件 nginx 解决方案似乎对我来说更易于管理 有什么想法吗 我不得不不同意这里的答案 虽然 Node 可以做得很好 但如果配置正确 n
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 无法运行 npm install

    In here http devdocs magento com guides v2 0 frontend dev guide css topics css debug html它说要跑npm install 但是当我运行时出现此错误sud
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • 循环phpmailer

    当我发送电子邮件时 我收到两封电子邮件 但它应该将电子邮件发送到各自的电子邮件 乱跳问题 array values Array 0 gt Array 0 gt uname1 1 gt fullname1 2 gt email 1 1 gt
  • 运行时获取DLL路径

    我想得到一个dll s其代码中的目录 或文件 路径 不是程序的 exe文件路径 我尝试了一些我发现的方法 GetCurrentDir 获取当前目录路径 GetModuleFileName 获取可执行文件的路径 那么我怎样才能找到代码在哪个d
  • 将值传递给 loadURL - Android

    是否可以将值传递给 webView loadUrl 中提到的 URL 像这样的东西 webView loadUrl file android asset www index html value value 或者有什么方法可以将 Java
  • 他们是如何做到的呢?主屏幕上的对话框

    我正在编写一个 Android 应用程序 我想在主屏幕上放置一个对话框或视图 以便用户可以输入文本而无需跳转到我的完整应用程序 我似乎无法让它发挥作用 如果我呈现一个对话框 即使在透明活动中 我的应用程序就会启动 如果您不知道我在说什么 请
  • 什么时候最适合使用 Python 中的类?

    我对 python 和一般编程都很陌生 所以非常感谢对这一点的任何澄清 例如 在以下代码中 Using a class class Monster object def init self level damage duration pri
  • 分割给定字符串并准备 case 语句

    Table 表名 create table table name given dates timestamp set name varchar 插入记录 insert into table name values 2001 01 01 20
  • 如何让 Xcode 使用 clang 的替代版本?

    我如何设置 Xcode 以使用由以下人员分发的 clangllvm org而不是苹果发货的那个 如果我下载clang 二进制文件并安装到 usr local然后将我的编译器设置为Other gt usr local bin clang在 X
  • 在需要表达式的地方放置一个大括号括起来的块的 C++ 语法是什么?

    我遇到了这个奇怪的 C 程序 include
  • 在 Eclipse Juno (4.2) 中安装 Google AppEngine 插件时出错

    当我尝试安装 GAE 的 eclipse 插件时 出现错误 无法完成安装 因为找不到一项或多项所需的项目 正在安装的软件 Google App Engine Java SDK 1 6 4 1 6 4 v201203300216r37 com
  • NHibernate 使用 AppFabric 进行二级缓存

    有人使用 AppFabric 进行二级缓存吗 我知道它遵循与 Velocity 相同的 api nhibernate caches velocity 但想知道是否有人已经有一些使用它的生产经验 以及他们是否知道任何特定的技巧或问题 我目前知
  • Node.js Express Router 中的正则表达式

    我试图找到一种方法 将正则表达式输入到快速路由 URL 中 然后通过请求对象访问 URL 的变量部分 具体来说 我想路由到网址 posts 任意数量的数字 有没有办法做到这一点 例子 posts 54 posts 2 posts 546 这
  • firebase 的“一个子值的大小”限制 10Mb 的含义

    firebase 文档指定 一个子值的大小 的限制为 10Mb 这是否意味着该子项的 JSON 对象的大小 例如 使用文档中的示例 users mchen friends brinchen true name Mary Chen our c
  • fetch_add(0, memory_order_relaxed/release) 到 mfence + mov 的转换合法吗?

    论文N4455 没有健全的编译器会优化原子讨论编译器可以应用于原子的各种优化 在该部分下围绕原子进行优化 对于 seqlock 示例 它提到了在 LLVM 中实现的转换 其中fetch add 0 std memory order rele
  • 数据分组 - 每月(月底)

    我很难尝试按月对数据进行分组 我什至以编程方式过滤数据 仅返回该月的最后一天并计算每月值 我试图找到有关 dataGrouping 属性的良好解释 但未能理解它或正确实现它 每个结果每天都会返回我的系列 我的问题如下 数据分组是否需要最少数
  • 如何将 ASP.Net MVC 路由段中的 1 或 0 映射到布尔操作方法输入参数

    我们有一些 PHP 和 Javascript 应用程序调用一些 ASP NET MVC 端点 假设我们有这个端点 public ActionResult DoSomething bool flag 我希望它与 flag 的值匹配 无论我传入
  • Spring Mvc -- typeMismatch 的自定义验证消息

    我有一个领域需要double 如果您输入String 默认消息类似于 Failed to convert property value of type java lang String to required type java lang
  • Spring Condition 无法从属性文件读取值

    我正在尝试实现 Spring Conditionorg springframework context annotation Condition如下 public class APIScanningDecisionMaker impleme
  • 将变量设置为 Mongoose Find 的结果

    我正在尝试做这样的事情 function retrieveUser uname var user User find uname uname function err users if err console log err return
  • Android ICS 原生锁屏

    这两天我一直在SW google等上寻找 我正在寻找一种方法来实现原生 Android ICS 锁屏附带的活动 如下面的屏幕所示 这些屏幕来自专业玩家但我注意到其他玩家也 玩家专业版例如 具有看起来完全相同的相同功能 这就是为什么我认为它是
  • 在 Markdown 元素之间转换

    解析 Markdown 文档并处理其元素以输出另一个 Markdown 文档的选项有哪些 咱们来说说吧 unaffected H1 H1 H2 H2 H3 应转换为 unaffected H1 H1 H2 H2 H3 在节点环境中 目标元素