git.iko.soy/typeable/pandoc
on master help sign in
Removed Text.Pandoc.Groff.

Moved groffEscape function to Text.Pandoc.Writers.Shared. [API change, since T.P.W.S is exported.]

commitd975917509061e4dfbeb4d2444f5ef7ccbe1887b authorJohn MacFarlane <jgm@berkeley.edu> dateTue 2 Oct 2018, 18:16 (8 years ago) parent7bf8057
5 files changed+11−46
pandoc.cabal−1 src/Text/Pandoc/Groff.hs−43 src/Text/Pandoc/Writers/Man.hs−1 src/Text/Pandoc/Writers/Ms.hs−1 src/Text/Pandoc/Writers/Shared.hs+11
pandoc.cabal−1
@@ -541,7 +541,6 @@ library
541541 Text.Pandoc.Lua.Packages,
542542 Text.Pandoc.Lua.StackInstances,
543543 Text.Pandoc.Lua.Util,
544− Text.Pandoc.Groff
545544 Text.Pandoc.CSS,
546545 Text.Pandoc.CSV,
547546 Text.Pandoc.UUID,
src/Text/Pandoc/Groff.hsdeleted−43
@@ -1,43 +0,0 @@
1−{-# LANGUAGE NoImplicitPrelude #-}
2−{-
3−Copyright (C) 2018 John MacFarlane <jgm@berkeley.edu>
4−
5−This program is free software; you can redistribute it and/or modify
6−it under the terms of the GNU General Public License as published by
7−the Free Software Foundation; either version 2 of the License, or
8−(at your option) any later version.
9−
10−This program is distributed in the hope that it will be useful,
11−but WITHOUT ANY WARRANTY; without even the implied warranty of
12−MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13−GNU General Public License for more details.
14−
15−You should have received a copy of the GNU General Public License
16−along with this program; if not, write to the Free Software
17−Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18−-}
19−
20−{- |
21− Module : Text.Pandoc.Groff
22− Copyright : Copyright (C) 2018 John MacFarlane
23− License : GNU GPL, version 2 or above
24−
25− Maintainer : John MacFarlane <jgm@berkeley.edu>
26− Stability : alpha
27− Portability : portable
28−
29−Shared functions for escaping and formatting groff.
30−-}
31−module Text.Pandoc.Groff ( groffEscape )
32−where
33−
34−import Prelude
35−import Data.Char (isAscii, ord)
36−import qualified Data.Text as T
37−import Text.Printf (printf)
38−
39−groffEscape :: T.Text -> T.Text
40−groffEscape = T.concatMap toUchar
41− where toUchar c
42− | isAscii c = T.singleton c
43− | otherwise = T.pack $ printf "\\[u%04X]" (ord c)
src/Text/Pandoc/Writers/Man.hs−1
@@ -45,7 +45,6 @@ import Text.Pandoc.Logging
4545import Text.Pandoc.Options
4646import Text.Pandoc.Pretty
4747import Text.Pandoc.Shared
48−import Text.Pandoc.Groff (groffEscape)
4948import Text.Pandoc.Templates
5049import Text.Pandoc.Writers.Math
5150import Text.Pandoc.Writers.Shared
src/Text/Pandoc/Writers/Ms.hs−1
@@ -60,7 +60,6 @@ import Text.Pandoc.Shared
6060import Text.Pandoc.Templates
6161import Text.Pandoc.Writers.Math
6262import Text.Pandoc.Writers.Shared
63−import Text.Pandoc.Groff (groffEscape)
6463import Text.Printf (printf)
6564import Text.TeXMath (writeEqn)
6665
src/Text/Pandoc/Writers/Shared.hs+11
@@ -44,6 +44,7 @@ module Text.Pandoc.Writers.Shared (
4444 , gridTable
4545 , metaValueToInlines
4646 , stripLeadingTrailingSpace
47+ , groffEscape
4748 )
4849where
4950import Prelude
@@ -63,6 +64,8 @@ import Text.Pandoc.Pretty
6364import Text.Pandoc.Walk (query)
6465import Text.Pandoc.UTF8 (toStringLazy)
6566import Text.Pandoc.XML (escapeStringForXML)
67+import Text.Printf (printf)
68+import Data.Char (isAscii, ord)
6669
6770-- | Create JSON value for template from a 'Meta' and an association list
6871-- of variables, specified at the command line or in the writer.
@@ -340,3 +343,11 @@ metaValueToInlines (MetaInlines ils) = ils
340343metaValueToInlines (MetaBlocks bs) = query return bs
341344metaValueToInlines (MetaBool b) = [Str $ show b]
342345metaValueToInlines _ = []
346+
347+-- | Escape non-ASCII characters using groff \u[..] sequences.
348+groffEscape :: T.Text -> T.Text
349+groffEscape = T.concatMap toUchar
350+ where toUchar c
351+ | isAscii c = T.singleton c
352+ | otherwise = T.pack $ printf "\\[u%04X]" (ord c)
353+