Skip to content

Commit

Permalink
Implement #+LINK
Browse files Browse the repository at this point in the history
  • Loading branch information
niklasfasching committed Apr 17, 2020
1 parent 47a3653 commit 1e36b3b
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 0 deletions.
2 changes: 2 additions & 0 deletions org/document.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ type Document struct {
Path string // Path of the file containing the parse input - used to resolve relative paths during parsing (e.g. INCLUDE).
tokens []token
baseLvl int
Links map[string]string
Nodes []Node
NamedNodes map[string]Node
Outline Outline // Outline is a Table Of Contents for the document and contains all sections (headline + content).
Expand Down Expand Up @@ -121,6 +122,7 @@ func (c *Configuration) Parse(input io.Reader, path string) (d *Document) {
Outline: Outline{outlineSection, outlineSection, 0},
BufferSettings: map[string]string{},
NamedNodes: map[string]Node{},
Links: map[string]string{},
Path: path,
}
defer func() {
Expand Down
3 changes: 3 additions & 0 deletions org/html_writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,9 @@ func (w *HTMLWriter) WriteRegularLink(l RegularLink) {
if l.Protocol == "file" {
url = url[len("file:"):]
}
if prefix := w.document.Links[l.Protocol]; prefix != "" {
url = html.EscapeString(prefix) + url[len(l.Protocol)+1:]
}
description := url
if l.Description != nil {
description = w.WriteNodesAsString(l.Description...)
Expand Down
5 changes: 5 additions & 0 deletions org/keyword.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ func (d *Document) parseKeyword(i int, stop stopFn) (int, Node) {
return d.loadSetupFile(k)
case "INCLUDE":
return d.parseInclude(k)
case "LINK":
if parts := strings.Split(k.Value, " "); len(parts) >= 2 {
d.Links[parts[0]] = parts[1]
}
return 1, k
case "CAPTION", "ATTR_HTML":
consumed, node := d.parseAffiliated(i, stop)
if consumed != 0 {
Expand Down
5 changes: 5 additions & 0 deletions org/testdata/inline.html
Original file line number Diff line number Diff line change
Expand Up @@ -165,4 +165,9 @@
</li>
</ul>
</li>
<li>
<p>
<code class="verbatim">#+LINK</code> based links: <a href="https://www.example.com/foobar">https://www.example.com/foobar</a>
</p>
</li>
</ul>
2 changes: 2 additions & 0 deletions org/testdata/inline.org
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@
- <2019-01-06 Sun 18:00 +1w>
- <2019-01-06 18:00>
- <2019-01-06 18:00 +1w>
- =#+LINK= based links: [[example:foobar]]
#+LINK: example https://www.example.com/
2 changes: 2 additions & 0 deletions org/testdata/inline.pretty_org
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@
- <2019-01-06 Sun 18:00 +1w>
- <2019-01-06 Sun 18:00>
- <2019-01-06 Sun 18:00 +1w>
- =#+LINK= based links: [[example:foobar]]
#+LINK: example https://www.example.com/

0 comments on commit 1e36b3b

Please sign in to comment.