Skip to content

Commit

Permalink
Prevent a footnote ref at EOL to be on a new line by itself
Browse files Browse the repository at this point in the history
  • Loading branch information
kaushalmodi committed Nov 6, 2017
1 parent b88b0c6 commit 6eae238
Show file tree
Hide file tree
Showing 3 changed files with 134 additions and 0 deletions.
10 changes: 10 additions & 0 deletions ox-hugo.el
Original file line number Diff line number Diff line change
Expand Up @@ -1214,6 +1214,16 @@ CONTENTS is the paragraph contents. INFO is a plist used as a
communication channel."
(unless (org-hugo--plist-get-true-p info :hugo-preserve-filling)
(setq contents (concat (mapconcat 'identity (split-string contents) " ") "\n")))
;; Glue EOL footnotes to the last words using   so that the
;; footnote reference does not end up on a new line by itself.
(setq contents (replace-regexp-in-string
;; "word FN.?$" -> "word FN.?$"
"[[:blank:]]+\\(\\[\\^[^]]+\\]\\)\\([[:blank:]]*[.]*\\)$" " \\1\\2"
(replace-regexp-in-string
;; "FN .$" -> "FN.$"
"\\(\\[\\^[^]]+\\]\\)[[:blank:]]*\\(\\.+\\)$" "\\1\\2"
contents)))
;; (message "[org-hugo-paragraph DBG] para: %s" contents)
(org-md-paragraph paragraph contents info))

;;;; Source Blocks
Expand Down
55 changes: 55 additions & 0 deletions test/site/content-org/all-posts.org
Original file line number Diff line number Diff line change
Expand Up @@ -1161,6 +1161,61 @@ This is some text[fn:1].
:EXPORT_FILE_NAME: multi-line-footnote
:END:
This is some text[fn:3].
** Footnotes at End of line
:PROPERTIES:
:EXPORT_FILE_NAME: footnotes-at-eol
:END:
*** Last word, followed by FOOTNOTE PERIOD
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[fn:1].

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[fn:1].

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[fn:1].

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[fn:1].
*** Last word, followed by FOOTNOTE *space* PERIOD
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[fn:1] .

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[fn:1] .

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[fn:1] .

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[fn:1] .
*** Last word, followed by *space* FOOTNOTE *space* PERIOD
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a [fn:1] .

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a [fn:1] .

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a [fn:1] .

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a [fn:1] .

abcde a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a [fn:1] .
*** Last word, followed by PERIOD *space* FOOTNOTE
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a. [fn:1]

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a. [fn:1]

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a. [fn:1]

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a. [fn:1]
* Tags
** Basic tags :abc:def:
:PROPERTIES:
Expand Down
69 changes: 69 additions & 0 deletions test/site/content/posts/footnotes-at-eol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
+++
title = "Footnotes at End of line"
tags = ["footnote"]
draft = false
+++

## Last word, followed by FOOTNOTE PERIOD {#last-word-followed-by-footnote-period}

a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[^fn:1].

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[^fn:1].

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[^fn:1].

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[^fn:1].


## Last word, followed by FOOTNOTE **space** PERIOD {#last-word-followed-by-footnote-space-period}

a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[^fn:1].

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a[^fn:1].

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[^fn:1].

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a[^fn:1].


## Last word, followed by **space** FOOTNOTE **space** PERIOD {#last-word-followed-by-space-footnote-space-period}

a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a [^fn:1].

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a [^fn:1].

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a [^fn:1].

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a [^fn:1].

abcde a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a [^fn:1].


## Last word, followed by PERIOD **space** FOOTNOTE {#last-word-followed-by-period-space-footnote}

a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a. [^fn:1]

ab a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a. [^fn:1]

abc a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a. [^fn:1]

abcd a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
a a a. [^fn:1]

[^fn:1]: First footnote

0 comments on commit 6eae238

Please sign in to comment.