停止Pandoc在从Markdown转换时转义URL。

huangapple go评论46阅读模式
英文:

Stopping Pandoc from escaping urls when converting from markdown

问题

我有以下的Markdown:

[title]({{url}})

{{url}} 在Markdown解析为HTML后,稍后需要用于模板目的。

Pandoc输出:

<a href="%7B%7Burl%7D%7D">title</a>

但我需要:

<a href="{{ur}}">title</a>

Pandoc中是否有选项可以实现这个目标?

英文:

I have the following markdown:

[title]({{url}})

The {{url}} is needed for templating purposes later, after markdown is parsed to html.

Pandoc outputs:

<a href="%7B%7Burl%7D%7D">title</a>

but I need:

<a href="{{ur}}">title</a>

Is there an option in Pandoc to do so?

答案1

得分: 1

URL编码发生在Markdown解析步骤中。我们可以通过使用Lua过滤器来恢复它:将以下内容保存到一个名为urldecode.lua的文件中,然后通过--lua-filter=urldecode.lua将该文件传递给pandoc。

local hexchar = function(x)
  return string.char(tonumber(x, 16))
end

function Link (link)
  link.target = link.target:gsub('%%(%x%x)', hexchar)
  return link
end
英文:

The URL encoding happens during the Markdown parsing step. We can revert it with the help of a Lua filter: Save the below to a file urldecode.lua and pass that file to pandoc via --lua-filter=urldecode.lua.

local hexchar = function(x)
  return string.char(tonumber(x, 16))
end

function Link (link)
  link.target = link.target:gsub('%%(%x%x)', hexchar)
  return link
end

huangapple
  • 本文由 发表于 2023年2月14日 05:46:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/75441506.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定