Merge pull request #6513 from brisad/master

Escape starting periods in ms writer code blocks
This commit is contained in:
John MacFarlane 2020-07-12 17:02:06 -07:00 committed by GitHub
commit c3b170be1c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 1 deletions

View file

@ -816,6 +816,7 @@ test-suite test-pandoc
Tests.Writers.FB2
Tests.Writers.Powerpoint
Tests.Writers.OOXML
Tests.Writers.Ms
if os(windows)
cpp-options: -D_WINDOWS
default-language: Haskell2010

View file

@ -204,7 +204,9 @@ blockToMs opts (CodeBlock attr str) = do
literal ".IP" $$
literal ".nf" $$
literal "\\f[C]" $$
hlCode $$
((case T.uncons str of
Just ('.',_) -> literal "\\&"
_ -> mempty) <> hlCode) $$
literal "\\f[]" $$
literal ".fi"
blockToMs opts (LineBlock ls) = do

37
test/Tests/Writers/Ms.hs Normal file
View file

@ -0,0 +1,37 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Tests.Writers.Ms (tests) where
import Prelude
import Test.Tasty
import Tests.Helpers
import Text.Pandoc
import Text.Pandoc.Builder
infix 4 =:
(=:) :: (ToString a, ToPandoc a)
=> String -> (a, String) -> TestTree
(=:) = test (purely (writeMs def . toPandoc))
tests :: [TestTree]
tests = [ testGroup "code blocks"
[ "basic"
=: codeBlock "hello"
=?> unlines
[ ".IP"
, ".nf"
, "\\f[C]"
, "hello"
, "\\f[]"
, ".fi"]
, "escape starting ."
=: codeBlock ". hello"
=?> unlines
[ ".IP"
, ".nf"
, "\\f[C]"
, "\\&. hello"
, "\\f[]"
, ".fi"]
]
]

View file

@ -37,6 +37,7 @@ import qualified Tests.Writers.JATS
import qualified Tests.Writers.Jira
import qualified Tests.Writers.LaTeX
import qualified Tests.Writers.Markdown
import qualified Tests.Writers.Ms
import qualified Tests.Writers.Muse
import qualified Tests.Writers.Native
import qualified Tests.Writers.Org
@ -70,6 +71,7 @@ tests pandocPath = testGroup "pandoc tests"
, testGroup "Muse" Tests.Writers.Muse.tests
, testGroup "FB2" Tests.Writers.FB2.tests
, testGroup "PowerPoint" Tests.Writers.Powerpoint.tests
, testGroup "Ms" Tests.Writers.Ms.tests
]
, testGroup "Readers"
[ testGroup "LaTeX" Tests.Readers.LaTeX.tests