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 Example) String() string { return orgWriter.WriteNodesAsString(n) }
|
||||||
func (n Block) String() string { return orgWriter.WriteNodesAsString(n) }
|
func (n Block) String() string { return orgWriter.WriteNodesAsString(n) }
|
||||||
func (n Result) 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) WritePropertyDrawer(PropertyDrawer) {}
|
||||||
|
|
||||||
func (w *HTMLWriter) WriteBlock(b Block) {
|
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 {
|
switch b.Name {
|
||||||
case "SRC":
|
case "SRC":
|
||||||
|
if params[":exports"] == "results" || params[":exports"] == "none" {
|
||||||
|
break
|
||||||
|
}
|
||||||
lang := "text"
|
lang := "text"
|
||||||
if len(b.Parameters) >= 1 {
|
if len(b.Parameters) >= 1 {
|
||||||
lang = strings.ToLower(b.Parameters[0])
|
lang = strings.ToLower(b.Parameters[0])
|
||||||
|
@ -135,7 +139,7 @@ func (w *HTMLWriter) WriteBlock(b Block) {
|
||||||
w.WriteString(content + "</div>\n")
|
w.WriteString(content + "</div>\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
if b.Result != nil {
|
if b.Result != nil && params[":exports"] != "code" && params[":exports"] != "none" {
|
||||||
WriteNodes(w, b.Result)
|
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
|
a source block with results
|
||||||
</pre>
|
</pre>
|
||||||
<pre class="example">
|
<pre class="example">
|
||||||
|
a source block that only exports results
|
||||||
|
</pre>
|
||||||
|
<pre class="example">
|
||||||
an example block with
|
an example block with
|
||||||
multiple lines including
|
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:
|
#+RESULTS:
|
||||||
: a source block with 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
|
#+BEGIN_EXAMPLE foo bar baz
|
||||||
an example block with
|
an example block with
|
||||||
multiple lines including
|
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:
|
#+RESULTS:
|
||||||
: a source block with 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
|
#+BEGIN_EXAMPLE foo bar baz
|
||||||
an example block with
|
an example block with
|
||||||
multiple lines including
|
multiple lines including
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue