2011-06-17 346 views
1

我正在尋找一個Markdown變體的Htmlize插件。Markdownize Emacs緩衝區

這個想法很簡單:比如說,你想在GitHub上發佈代碼給GIST,或者任何支持Markdown的地方。您在Emacs中輸入您的代碼,執行M-x markdownize-buffer,您會得到一個包含完整Markdown標記的新緩衝區。

有人知道這樣的插件是否存在?

+0

如果您想在Gist中發佈代碼,則不要使用Markdown。您只需將代碼複製到Gist中即可。 Gist中的Markdown用於文檔,而不是代碼。 – cjm 2011-06-17 18:25:38

回答

2

Markdown功能不足以生成跨度類。要做到這一點,你需要下載到純粹的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

降價不能在這裏複製的實物資料。這對於將語義純文本翻譯成語義標記是有利的(即,標題應該變成H1或H2,**text**應該產生<strong>text</strong>等等)。 Emacs緩衝區的哪些行是標題?應該翻譯成<em>標籤?

+0

我知道Htmlize的優點;多年來一直在愉快地使用它。事情是,我不知道Markdown無法做到這一點,甚至沒有接近Htmlize。謝謝。 – dimitarvp 2011-06-24 10:00:01