diff options
-rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 11 | ||||
-rw-r--r-- | test/command/1279.md | 2 | ||||
-rw-r--r-- | test/command/biblatex-inproceedings.md | 2 | ||||
-rw-r--r-- | test/command/biblatex-jaffe.md | 4 | ||||
-rw-r--r-- | test/command/biblatex-moraux.md | 2 | ||||
-rw-r--r-- | test/command/biblatex-quotes.md | 2 | ||||
-rw-r--r-- | test/command/biblatex-spiegelberg.md | 4 | ||||
-rw-r--r-- | test/command/biblatex-test-case-conversion.md | 4 | ||||
-rw-r--r-- | test/command/biblatex-textnormal.md | 2 |
9 files changed, 16 insertions, 17 deletions
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index daf45ed53..3295d9e6c 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -26,7 +26,7 @@ import Data.Default import Data.List (intersperse, sortOn, transpose) import Data.List.NonEmpty (nonEmpty, NonEmpty(..)) import qualified Data.Map as M -import Data.Maybe (fromMaybe, mapMaybe) +import Data.Maybe (fromMaybe, mapMaybe, isNothing) import qualified Data.Set as Set import Data.Text (Text) import qualified Data.Text as T @@ -142,18 +142,17 @@ valToYaml (SimpleVal x) | otherwise = if hasNewlines x then hang 0 ("|" <> cr) x - else if fst $ foldr needsDoubleQuotes (False, True) x + else if isNothing $ foldM needsDoubleQuotes True x then "\"" <> fmap escapeInDoubleQuotes x <> "\"" else x where - needsDoubleQuotes t (positive, isFirst) + needsDoubleQuotes isFirst t = if T.any isBadAnywhere t || (isFirst && T.any isYamlPunct (T.take 1 t)) - then (True, False) - else (positive, False) + then Nothing + else Just False isBadAnywhere '#' = True isBadAnywhere ':' = True - isBadAnywhere '`' = False isBadAnywhere _ = False hasNewlines NewLine = True hasNewlines BlankLines{} = True diff --git a/test/command/1279.md b/test/command/1279.md index acad6859e..d3572f245 100644 --- a/test/command/1279.md +++ b/test/command/1279.md @@ -9,7 +9,7 @@ title: My Article [^1]: Dept. of This and That ^D --- -author: "John Doe[^1]" +author: John Doe[^1] date: 2014 title: My Article --- diff --git a/test/command/biblatex-inproceedings.md b/test/command/biblatex-inproceedings.md index 29a1e0298..76b584800 100644 --- a/test/command/biblatex-inproceedings.md +++ b/test/command/biblatex-inproceedings.md @@ -63,7 +63,7 @@ references: publisher-place: Cambridge title: "Le *De Anima* dans la tradition grècque: Quelques aspects de l'interpretation du traité, de Theophraste à Themistius" - title-short: *De Anima* dans la tradition grècque + title-short: "*De Anima* dans la tradition grècque" type: paper-conference - author: - family: Salam diff --git a/test/command/biblatex-jaffe.md b/test/command/biblatex-jaffe.md index f172c6ae7..e0381772b 100644 --- a/test/command/biblatex-jaffe.md +++ b/test/command/biblatex-jaffe.md @@ -72,8 +72,8 @@ references: language: la number-of-volumes: 2 publisher-place: Leipzig - title: "Regesta Pontificum Romanorum ab condita ecclesia ad annum post - Christum natum [mcxcviii]{.smallcaps}" + title: Regesta Pontificum Romanorum ab condita ecclesia ad annum post + Christum natum [mcxcviii]{.smallcaps} title-short: Regesta Pontificum Romanorum type: book --- diff --git a/test/command/biblatex-moraux.md b/test/command/biblatex-moraux.md index 8a1b084f8..1624ad960 100644 --- a/test/command/biblatex-moraux.md +++ b/test/command/biblatex-moraux.md @@ -86,7 +86,7 @@ references: publisher-place: Cambridge title: "Le *De Anima* dans la tradition grècque: Quelques aspects de l'interpretation du traité, de Theophraste à Themistius" - title-short: *De Anima* dans la tradition grècque + title-short: "*De Anima* dans la tradition grècque" type: paper-conference --- diff --git a/test/command/biblatex-quotes.md b/test/command/biblatex-quotes.md index 9d868cb76..50055316f 100644 --- a/test/command/biblatex-quotes.md +++ b/test/command/biblatex-quotes.md @@ -36,7 +36,7 @@ references: language: en-US publisher: Princeton University Press publisher-place: Princeton - title: "Aristotle's \"De Motu Animalium\"" + title: Aristotle's "De Motu Animalium" type: book --- diff --git a/test/command/biblatex-spiegelberg.md b/test/command/biblatex-spiegelberg.md index 59d651958..59338ae88 100644 --- a/test/command/biblatex-spiegelberg.md +++ b/test/command/biblatex-spiegelberg.md @@ -63,8 +63,8 @@ references: issued: 1969 language: de-DE page: 189-216 - title: "Intention" und "Intentionalität" in der Scholastik, bei - Brentano und Husserl + title: "\"Intention\" und \"Intentionalität\" in der Scholastik, bei + Brentano und Husserl" title-short: Intention und Intentionalität type: article-journal volume: 29 diff --git a/test/command/biblatex-test-case-conversion.md b/test/command/biblatex-test-case-conversion.md index aa30767ec..e69cb9336 100644 --- a/test/command/biblatex-test-case-conversion.md +++ b/test/command/biblatex-test-case-conversion.md @@ -63,9 +63,9 @@ references: id: item1 issued: 2013 language: en-US - title: "A title, in English, with a Proper Name and an ACRONYM and a + title: A title, in English, with a Proper Name and an ACRONYM and a [camelCase]{.nocase} word and some units, 400 [nm]{.nocase}, - 3 [cm]{.nocase}, and a quote, *Alea [iacta est]{.nocase}*" + 3 [cm]{.nocase}, and a quote, *Alea [iacta est]{.nocase}* type: article-journal --- diff --git a/test/command/biblatex-textnormal.md b/test/command/biblatex-textnormal.md index 0aa5550c3..a4e6107ec 100644 --- a/test/command/biblatex-textnormal.md +++ b/test/command/biblatex-textnormal.md @@ -9,7 +9,7 @@ nocite: "[@*]" references: - id: item1 - title: "The title [of this book]{.nodecor}" + title: The title [of this book]{.nodecor} type: book --- |