Markdownize Emacs缓冲区

时间:2011-06-17 13:24:53

标签: emacs markdown

我正在寻找Htmlize插件的Markdown变体。

这个想法很简单:比方说,你希望在GitHub或任何支持Markdown的地方将代码发布到GIST。您在Emacs中键入代码,执行M-x markdownize-buffer并获得包含完整Markdown标记的新缓冲区。

有人知道这样的插件是否存在?

1 个答案:

答案 0 :(得分:2)

Markdown功能不足以生成span类。为此,您需要下拉到纯HTML。

Htmlize将根据您当前的Emacs主题设置生成代码的语法高亮版本。看一下生成的标记:它通过生成DOM元素和样式来复制当前语法突出显示:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- Created by htmlize-1.36 in css mode. -->
<html>
  <head>
    <title>sha1test.rb</title>
    <style type="text/css">
    <!--
      body {
        color: #eeeeec;
        background-color: #2e3434;
      }
      .comment {
        /* font-lock-comment-face */
        color: #888a85;
      }
      .comment-delimiter {
        /* font-lock-comment-delimiter-face */
        color: #888a85;
      }
    /* [...] */
    -->
    </style>
  </head>
  <body>
    <pre>
require <span class="string">'digest/sha1'</span>

<span class="type">SLICE_SIZE</span> = 20

<span class="keyword">def</span> <span class="function-name">myhash</span>(input)
  <span class="type">Digest</span>::<span class="type">SHA1</span>.hexdigest(input).slice(0,<span class="type">SLICE_SIZE</span>)
<span class="keyword">end</span>

hashmap = {}
inputs = 0
unique_inputs = 0
<span class="type">ARGF</span>.each <span class="keyword">do</span> |line, idx|
[...]
  </body>
</html>

htmlized buffer: browser screenshot

Markdown无法复制此处的信息类型。将语义纯文本转换为语义标记(即标题应转换为H1或H2,**text**应生成<strong>text</strong>等)是有益的。你的Emacs缓冲区的哪一行是标题?哪个应转换为<em>代码?