2012-08-13 23 views
5

背景在Emacs中,如何將htmlize emacs緩衝區中的鏈接導出到可單擊的鏈接?

  1. 我用很大的htmlize.el我的組織模式緩衝區內容導出與字體hi-lock.
  2. Emacs的組織模式具有Link format.

問題

對於例如,這裏是一個組織模式文件,其內容爲:

[[http://hunmr.blogspot.com][blog]] 

當我使用Htmlize.el htmlize緩衝區到HTML內容時,鏈接丟失。 生成HTML,如:

<span style="hyperlinkFOOBAR">blog</span> 

預期

我希望它產生了可點擊鏈接:

<a style="hyperlinkFOOBAR" href="http://hunmr.blogspot.com">blog</a> 

問題

EDIT1的組織出口,如-html可以expor t鏈接,但無法爲Hi-Lock創建CSS。

  • 您是否知道其他方式將org-mode鏈接導出爲HTML?
  • 要使用elisp讀取組織模式緩衝區中的真實鏈接,該怎麼做?閱讀文字 屬性?

感謝您的幫助,您的幫助將得到高度評價。

+0

** ** CLUE1 我找到了代碼,org-mode如何在OVERVIEW中顯示鏈接。 (defun org-columns-compact-links(s) 「用[desc]或[link]替換[[link] [desc]]。(concat「[」(match-string(if(match-end 3)3 1)s)「(」字符串匹配org-括號鏈接正則表達式s)「 (setq s ]「) \t TTS))) S)' **被CONTINUE ** – whunmr 2012-08-14 15:44:57

回答

1

感謝@Andreas的提示,我添加以下代碼htmlize.el。目前,組織鏈接可以被html化爲可點擊的鏈接。

該代碼在github被共享:

https://github.com/whunmr/dotemacs/blob/master/site-lisp/htmlize.el

http://hunmr.blogspot.com/2012/08/enhance-htmlizeel-now-can-export-org.html

下面是主要CODE:

(defun expand-org-link (&optional buffer) 
    "Change [[url][shortname]] to [[url] [shortname]] by adding a space between url and shortname" 
    (goto-char (point-min)) 
    (while (re-search-forward "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^][]+\\)\\]\\)?\\]" 
       nil t) 
    (let ((url (match-string 1)) 
     (link-text (match-string 3))) 
     (delete-region (match-beginning 0) (match-end 0)) 
     (insert "[[" url "] [" link-text "]]")))) 

(defun shrink-org-link (&optional buffer) 
    "Change [[url] [shortname]] to [[url][shortname]], remove the space between url and shortname" 
    (goto-char (point-min)) 
    (while (re-search-forward "\\[\\[\\([^][]+\\)\\] \\(\\[\\([^][]+\\)\\]\\)?\\]" 
       nil t) 
    (let ((url (match-string 1)) 
     (link-text (match-string 3))) 
     (delete-region (match-beginning 0) (match-end 0)) 
     (insert "[[" url "][" link-text "]]")))) 

(defun transform-org-link() 
    "transform htmlized <span> to <a>" 
    (goto-char (point-min)) 
    (while (re-search-forward "\\[\\[<span \\([^>]+\\)>\\([^][]+\\)</span>\\] \\[\\([^][]+\\)\\]\\]" 
       nil t) 
    (let ((style (match-string 1)) 
      (url (match-string 2)) 
     (link-text (match-string 3))) 
     (delete-region (match-beginning 0) (match-end 0)) 
     (insert "<a " style " href=\"" url "\">" link-text "</a>")))) 
1

組織出口-AS-HTML應該DTRT

+0

嗨@Andreas,感謝您的幫助。我用的是htmlize.el的主要原因是保持的Hi-鎖定模式但是org-export-as-html目前不能保留突出顯示的字體,所以我想也許我們需要在htmlize.el中加入鏈接導出功能 – whunmr 2012-08-14 11:44:08

+0

非常感謝,也許我可以從中找到一些重要的線索org-export-as-html的代碼。 – whunmr 2012-08-14 11:52:28

相關問題