html: Implement source block :exports parameter
This commit is contained in:
parent
efe1c4eb07
commit
7e69931976
5 changed files with 48 additions and 2 deletions
11
org/block.go
11
org/block.go
|
@ -118,6 +118,17 @@ func trimIndentUpTo(max int) func(string) string {
|
|||
}
|
||||
}
|
||||
|
||||
func (b Block) ParameterMap() map[string]string {
|
||||
if len(b.Parameters) == 0 {
|
||||
return nil
|
||||
}
|
||||
m := map[string]string{":lang": b.Parameters[0]}
|
||||
for i := 1; i+1 < len(b.Parameters); i += 2 {
|
||||
m[b.Parameters[i]] = b.Parameters[i+1]
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func (n Example) String() string { return orgWriter.WriteNodesAsString(n) }
|
||||
func (n Block) String() string { return orgWriter.WriteNodesAsString(n) }
|
||||
func (n Result) String() string { return orgWriter.WriteNodesAsString(n) }
|
||||
|
|
|
@ -110,9 +110,13 @@ func (w *HTMLWriter) WriteComment(Comment) {}
|
|||
func (w *HTMLWriter) WritePropertyDrawer(PropertyDrawer) {}
|
||||
|
||||
func (w *HTMLWriter) WriteBlock(b Block) {
|
||||
content := w.blockContent(b.Name, b.Children)
|
||||
content, params := w.blockContent(b.Name, b.Children), b.ParameterMap()
|
||||
|
||||
switch b.Name {
|
||||
case "SRC":
|
||||
if params[":exports"] == "results" || params[":exports"] == "none" {
|
||||
break
|
||||
}
|
||||
lang := "text"
|
||||
if len(b.Parameters) >= 1 {
|
||||
lang = strings.ToLower(b.Parameters[0])
|
||||
|
@ -135,7 +139,7 @@ func (w *HTMLWriter) WriteBlock(b Block) {
|
|||
w.WriteString(content + "</div>\n")
|
||||
}
|
||||
|
||||
if b.Result != nil {
|
||||
if b.Result != nil && params[":exports"] != "code" && params[":exports"] != "none" {
|
||||
WriteNodes(w, b.Result)
|
||||
}
|
||||
}
|
||||
|
|
3
org/testdata/blocks.html
vendored
3
org/testdata/blocks.html
vendored
|
@ -37,6 +37,9 @@ echo a source block with results
|
|||
a source block with results
|
||||
</pre>
|
||||
<pre class="example">
|
||||
a source block that only exports results
|
||||
</pre>
|
||||
<pre class="example">
|
||||
an example block with
|
||||
multiple lines including
|
||||
|
||||
|
|
14
org/testdata/blocks.org
vendored
14
org/testdata/blocks.org
vendored
|
@ -24,6 +24,20 @@ echo a source block with results
|
|||
#+RESULTS:
|
||||
: a source block with results
|
||||
|
||||
#+BEGIN_SRC bash :exports none
|
||||
echo a source block with results that is not exported
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: a source block with results that is not exported
|
||||
|
||||
#+BEGIN_SRC bash :exports results
|
||||
echo a source block that only exports results
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: a source block that only exports results
|
||||
|
||||
#+BEGIN_EXAMPLE foo bar baz
|
||||
an example block with
|
||||
multiple lines including
|
||||
|
|
14
org/testdata/blocks.pretty_org
vendored
14
org/testdata/blocks.pretty_org
vendored
|
@ -24,6 +24,20 @@ echo a source block with results
|
|||
#+RESULTS:
|
||||
: a source block with results
|
||||
|
||||
#+BEGIN_SRC bash :exports none
|
||||
echo a source block with results that is not exported
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: a source block with results that is not exported
|
||||
|
||||
#+BEGIN_SRC bash :exports results
|
||||
echo a source block that only exports results
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: a source block that only exports results
|
||||
|
||||
#+BEGIN_EXAMPLE foo bar baz
|
||||
an example block with
|
||||
multiple lines including
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue