2012-08-13 6 views
5

背景Emacsでは、emacsバッファをhtmlizeすると、リンクをクリック可能なリンクにエクスポートする方法はありますか?

  1. 私はhi-lock.
  2. EmacsのORG-modeは用Link format.

PROBLEM

を持っているフォントで、私の組織モードのバッファの内容をエクスポートするために偉大なhtmlize.elを使用して例として、以下のコンテンツを含むorg-modeファイルがあります:

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

Htmlize.elを使用してバッファをHTMLコンテンツにhtml化するとリンクが見つかりませんでした。 は次のようにHTMLを生成します。

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

EXPECTED

私はそれはのようにクリック可能なリンクを生成予想:

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

QUESTION

EDIT1 ORG-輸出などを-htmlはexporできますハイ・ロックのCSSを作成することはできません。

  • org-modeリンクをHTMLにエクスポートする他の方法を知っていますか?
  • elispを使ってorg-modeバッファーの実際のリンクを読むには、どうすればいいですか?テキスト のプロパティを読んでいますか?

助けてください、あなたの助けが大いに助長されます。

+0

** CLUE1 ** 私は、org-modeがどのようにリンクを表示するかについてのコードをOVERVIEWで見つける。 '(defun org-columns-compact-links(s) " [[link] [desc]]を[desc]または[link]に置き換えてください。"一致する文字列(一致する場合は一致する3)3)1)s)"(while(文字列一致org-bracket-link-regexp s) (setqs(置換一致) \t ] ") \t TTS))) S)' ** ** – whunmr

答えて

1

感謝をDTRT必要があります。現在、org-linkはクリック可能なリンクに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

MAINコードで次

(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

ORG-輸出など-HTMLは、私がhtmlize.elするために、次のコードを追加し、@Andreasのヒントについて

+0

こんにちは@Andreasは、あなたの助けに感謝します。私はhtmlize.elを使用する主な理由は、ハイロックパターンを維持することですCONTINUEされるようにハイライトされていますが、org-export-as-htmlはハイライトフォントを保持できませんので、htmlize.elにリンクエクスポート関数を追加する必要があるかもしれません。 – whunmr

+0

大変ありがとう、 org-export-as-htmlのコード。 – whunmr

関連する問題