【问题标题】:LHS and Markdown: CodeblocksLHS 和 Markdown:代码块
【发布时间】:2010-08-13 02:02:14
【问题描述】:

我碰巧真的很喜欢 Markdown(可能是因为 SO),而且我喜欢用 Haskell 编程。我最近发现了Literate Haskell (LHS),我想同时使用 Markdown 和 LHS。让我举一个愚蠢的例子:

Crazy Literate Haskell
======================

This is an example of some literate Haskell Code:

> module Main where

Look at that IO Monad work:

> main = return 2 >>= print

Wasn't that cool?

这是一个读写的 haskell 文件的示例,该文件编写为稍后由 Markdown 解析。但是,我希望代码实际出现在 html 代码块中,并且在它们之前没有 >。因此,我不能仅仅将所有代码行缩进四行,因为这会产生您在上面看到的降价。基本上,我希望 html 像这样出来:

<h1>Crazy Literate Haskell</h1>

<p>This is an example of some literate Haskell Code:</p>

<pre><code>module Main where
</code></pre>

<p>Look at that IO Monad work:</p>

<pre><code>main = return 2 &gt;&gt;= print
</code></pre>

<p>Wasn't that cool?</p>

需要注意的是它没有 > 符号。我该怎么做?

【问题讨论】:

  • 现在显然我可以通过 sed 's_^> _ _' 抛出 .lhs 文件,但我真的不想这样做。我宁愿一些我不知道的内置函数。

标签: haskell markdown literate-programming


【解决方案1】:

使用Pandoc。它有一个markdown+lhs 模式用于在字面Haskell 文件中使用markdown,如果你不喜欢它生成的html,还有an api 用于修改文档结构。

安装它

cabal install pandoc

【讨论】:

  • 罗伯特,这里粘贴的 html hpaste.org/fastcgi/hpaste.fcgi/raw?id=29029 是剪切标记并将其粘贴到 pandocpbpaste | pandoc -r markdown+lhs -w html -s | pbcopy 的结果,以防万一你开始写 Haskell 博客……请注意你可以pandocliterate html 和鸟轨道:pbpaste | pandoc -r markdown+lhs -w html+lhs | pbpaste——然后你会得到这个:hpaste.org/fastcgi/hpaste.fcgi/view?id=29030 html 的格式奇怪但合法;您可以通过 tidy 传递它来摆脱它。
  • 这是一个很好的答案,无论是戴夫还是应用程序。谢谢,这正是我想要的。标记为答案。
  • 并准备在 StackOverflow 上发布它(作为正常的降价,没有 .lhs 技巧),可以做pandoc --from markdown+lhs --to markdown! (只有源 Markdown 中的 HTML 样式的 cmets 会以错误的方式处理。我使用它们在文件末尾存储 Emacs 变量。)
猜你喜欢
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 2019-04-13
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
相关资源
最近更新 更多