From f27340ed5e7f5cd10cb996eea9135246a5b689f7 Mon Sep 17 00:00:00 2001 From: Niklas Fasching Date: Tue, 20 Sep 2022 17:00:44 +0200 Subject: [PATCH] Add `\` to emphasis post chars to allow immediate explicit line break Post chars are defined in (nth 1 org-emphasis-regexp-components) in emacs org. When I initially adapted the list of chars for go, I failed to check how it's actually used (further down in org.el): (string-match (concat "[" (nth 1 erc) "\n]") (char-to-string (char-after (point)))) Due to the surrounding [] the `\\` in '("-[:space:]('\"{" "-[:space:].,:!?;'\")}\\[" "[:space:]" "." 1) is actually a literal backslash, not an escape of the opening bracket I guess. I'm not in the mood for thinking any harder about this, so let's hope this is right. yolo. --- org/inline.go | 2 +- org/testdata/inline.html | 2 ++ org/testdata/inline.org | 2 ++ org/testdata/inline.pretty_org | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/org/inline.go b/org/inline.go index b91d6b8..d94a22e 100644 --- a/org/inline.go +++ b/org/inline.go @@ -394,7 +394,7 @@ func isValidPreChar(r rune) bool { } func isValidPostChar(r rune) bool { - return r == utf8.RuneError || unicode.IsSpace(r) || strings.ContainsRune(`-.,:!?;'")}[`, r) + return r == utf8.RuneError || unicode.IsSpace(r) || strings.ContainsRune(`-.,:!?;'")}[\`, r) } func isValidBorderChar(r rune) bool { return !unicode.IsSpace(r) } diff --git a/org/testdata/inline.html b/org/testdata/inline.html index 383fd81..67f5495 100644 --- a/org/testdata/inline.html +++ b/org/testdata/inline.html @@ -6,6 +6,8 @@ also hard line breaks not followed by a newline get ignored, see \\
  • emphasis with a slash/inside
  • emphasis followed by raw text with slash /
  • emphasis ending with a "difficult" multibyte character 习
  • +
  • emphasis just before explict line break
    +plus more emphasis
  • ->/not an emphasis/<-
  • links with slashes do not become emphasis: https://somelinkshouldntrenderaccidentalemphasis.com/ emphasis
  • underlined bold verbatim code strikethrough
  • diff --git a/org/testdata/inline.org b/org/testdata/inline.org index 8e2fd78..7f8b31d 100644 --- a/org/testdata/inline.org +++ b/org/testdata/inline.org @@ -5,6 +5,8 @@ - /emphasis with a slash/inside/ - /emphasis/ followed by raw text with slash / - *emphasis ending with a "difficult" multibyte character 习* +- emphasis just before =explict line break=\\ + =plus more emphasis= - ->/not an emphasis/<- - links with slashes do not become /emphasis/: [[https://somelinkshouldntrenderaccidentalemphasis.com]]/ /emphasis/ - _underlined_ *bold* =verbatim= ~code~ +strikethrough+ diff --git a/org/testdata/inline.pretty_org b/org/testdata/inline.pretty_org index b6275fb..ab77e41 100644 --- a/org/testdata/inline.pretty_org +++ b/org/testdata/inline.pretty_org @@ -5,6 +5,8 @@ - /emphasis with a slash/inside/ - /emphasis/ followed by raw text with slash / - *emphasis ending with a "difficult" multibyte character 习* +- emphasis just before =explict line break=\\ + =plus more emphasis= - ->/not an emphasis/<- - links with slashes do not become /emphasis/: [[https://somelinkshouldntrenderaccidentalemphasis.com]]/ /emphasis/ - _underlined_ *bold* =verbatim= ~code~ +strikethrough+