Merge pull request #1239 from tarleb/org-linebreak

Org linebreaks
This commit is contained in:
John MacFarlane 2014-04-13 14:04:48 -07:00
commit 86b4da9dec
5 changed files with 14 additions and 2 deletions

View file

@ -10,3 +10,7 @@ trim_trailing_whitespace = true
[*.{markdown,md}]
trim_trailing_whitespace = false
[tests/*]
insert_final_newline = false
trim_trailing_whitespace = false

View file

@ -539,6 +539,7 @@ anyLineNewline = (++ "\n") <$> anyLine
inline :: OrgParser Inlines
inline =
choice [ whitespace
, linebreak
, link
, str
, endline
@ -570,6 +571,9 @@ whitespace = B.space <$ skipMany1 spaceChar
<* updateLastForbiddenCharPos
<?> "whitespace"
linebreak :: OrgParser Inlines
linebreak = try $ B.linebreak <$ string "\\\\" <* skipSpaces <* newline
str :: OrgParser Inlines
str = B.str <$> many1 (noneOf $ specialChars ++ "\n\r ")
<* updateLastStrPos

View file

@ -271,7 +271,7 @@ inlineToOrg (Math t str) = do
else "$$" <> text str <> "$$"
inlineToOrg (RawInline f str) | f == "tex" || f == "latex" = return $ text str
inlineToOrg (RawInline _ _) = return empty
inlineToOrg (LineBreak) = return cr -- there's no line break in Org
inlineToOrg (LineBreak) = return (text "\\\\" <> cr)
inlineToOrg Space = return space
inlineToOrg (Link txt (src, _)) = do
case txt of

View file

@ -94,6 +94,10 @@ tests =
"a_{n+1}" =?>
para (str "a" <> subscript "n+1")
, "Linebreak" =:
"line \\\\ \nbreak" =?>
para ("line" <> linebreak <> "break")
, "Markup-chars not occuring on word break are symbols" =:
unlines [ "this+that+ +so+on"
, "seven*eight* nine*"

View file

@ -42,7 +42,7 @@ item.
Here's one with a bullet. * criminey.
There should be a hard line break
There should be a hard line break\\
here.
--------------