我正在尝试在Emacs org-mode中将一个有文化的代码示例嵌入为HTML。
我的想法是我可以使用像
这样的东西#+BEGIN_SRC html :noweb-ref content :exports source
<span>some content </span>
#+END_SRC
#+BEGIN_HTML :noweb tangle
<<content>>
#+END_HTML
这样的事情会成为可能吗?因为目前我必须将要包含(引用)的部分复制并粘贴到HTML源和我要在文档中显示的SRC位中。
编辑:具体的用例是我想编写一个文档来解释一些HTML结构(作为代码块)并在文档中嵌入(引用)相同的结构,而不需要复制+糊
答案 0 :(得分:3)
我相信你必须做出以下改变:
:tangle <file-name>
试试这个:
#+NAME: content
#+BEGIN_SRC html :exports none
<span>some content </span>
#+END_SRC
#+BEGIN_SRC html :tangle output-file :exports none :noweb yes
<<content>>
#+END_SRC
答案 1 :(得分:3)
我最近有类似的要求,写了ob-browser。它需要HTML源块并使用org-babel和phantomjs来显示浏览器如何呈现它们的图像。
所以你可以说:
#+BEGIN_SRC browser :out demo.png
<!DOCTYPE html>
<html>
<head>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="row">
<div class="span6 offset1">
<h1>Rendered PNG</h1>
<button class="btn btn-primary">You Can't Press This</button>
</div>
</div>
</body>
</html>
#+END_SRC
获取图片:
它并不完全符合你的要求,但可能会刮伤同样的痒......
答案 2 :(得分:3)
以下示例改编自我用于编写Org-mode的类似内容。它似乎也适用于您的用例。 #+OPTIONS: d:RESULTS
确保导出:RESULTS:
抽屉。将其放入组织模式缓冲区并导出为HTML。
#+OPTIONS: d:RESULTS
* Examples
The HTML source
#+name: eg-1
#+begin_src org :results replace drawer :exports both :post wrap-html(text=*this*)
A <b>bold</b> statement.
#+end_src
Results in the output
#+results: eg-1
* Utils :noexport:
#+name: wrap-html
#+begin_src emacs-lisp :var text="" :results raw
(concat "#+BEGIN_HTML\n<div class=\"html-output\">\n" text "\n</div>\n#+END_HTML")
#+end_src
您可以通过将标题添加为子树标题的属性来避免重复标题,例如
* Example 2
:PROPERTIES:
:results: replace drawer
:exports: both
:post: wrap-html(text=*this*)
:END:
#+name: eg-2
#+begin_src org
Some <i>italic</i>.
#+end_src
#+results: eg-2
#+name: eg-3
#+begin_src org
You can <b>nest <i>inline</i> tags</b>.
#+end_src
#+results: eg-3
但请注意,除非明确覆盖,否则这些标头将应用于子树中的每个源块。