Added eastAsianLineBreakFilter to Shared.
This used to live in the Markdown reader.
This commit is contained in:
parent
5ec384eb60
commit
774075c3e2
2 changed files with 13 additions and 11 deletions
|
@ -55,11 +55,9 @@ import qualified Text.Pandoc.Builder as B
|
|||
import Text.Pandoc.Class (PandocMonad, report)
|
||||
import Text.Pandoc.Definition
|
||||
import Text.Pandoc.Emoji (emojis)
|
||||
import Text.Pandoc.Generic (bottomUp)
|
||||
import Text.Pandoc.Logging
|
||||
import Text.Pandoc.Options
|
||||
import Text.Pandoc.Parsing hiding (tableWith)
|
||||
import Text.Pandoc.Pretty (charWidth)
|
||||
import Text.Pandoc.Readers.HTML (htmlInBalanced, htmlTag, isBlockTag,
|
||||
isCommentTag, isInlineTag, isTextTag)
|
||||
import Text.Pandoc.Readers.LaTeX (rawLaTeXBlock, rawLaTeXInline)
|
||||
|
@ -375,15 +373,7 @@ parseMarkdown = do
|
|||
return $ Pandoc meta bs) st
|
||||
reportLogMessages
|
||||
(do guardEnabled Ext_east_asian_line_breaks
|
||||
return $ bottomUp softBreakFilter doc) <|> return doc
|
||||
|
||||
softBreakFilter :: [Inline] -> [Inline]
|
||||
softBreakFilter (x:SoftBreak:y:zs) =
|
||||
case (stringify x, stringify y) of
|
||||
(xs@(_:_), (c:_))
|
||||
| charWidth (last xs) == 2 && charWidth c == 2 -> x:y:zs
|
||||
_ -> x:SoftBreak:y:zs
|
||||
softBreakFilter xs = xs
|
||||
return $ eastAsianLineBreakFilter doc) <|> return doc
|
||||
|
||||
referenceKey :: PandocMonad m => MarkdownParser m (F Blocks)
|
||||
referenceKey = try $ do
|
||||
|
|
|
@ -70,6 +70,7 @@ module Text.Pandoc.Shared (
|
|||
isTightList,
|
||||
addMetaField,
|
||||
makeMeta,
|
||||
eastAsianLineBreakFilter,
|
||||
-- * TagSoup HTML handling
|
||||
renderTags',
|
||||
-- * File handling
|
||||
|
@ -120,6 +121,7 @@ import qualified Control.Monad.State as S
|
|||
import qualified Control.Exception as E
|
||||
import Control.Monad (msum, unless, MonadPlus(..))
|
||||
import Text.Pandoc.Pretty (charWidth)
|
||||
import Text.Pandoc.Generic (bottomUp)
|
||||
import Text.Pandoc.Compat.Time
|
||||
import Data.Time.Clock.POSIX
|
||||
import System.IO.Error
|
||||
|
@ -578,6 +580,16 @@ makeMeta title authors date =
|
|||
$ addMetaField "date" (B.fromList date)
|
||||
$ nullMeta
|
||||
|
||||
-- | Remove soft breaks between East Asian characters.
|
||||
eastAsianLineBreakFilter :: Pandoc -> Pandoc
|
||||
eastAsianLineBreakFilter = bottomUp go
|
||||
where go (x:SoftBreak:y:zs) =
|
||||
case (stringify x, stringify y) of
|
||||
(xs@(_:_), (c:_))
|
||||
| charWidth (last xs) == 2 && charWidth c == 2 -> x:y:zs
|
||||
_ -> x:SoftBreak:y:zs
|
||||
go xs = xs
|
||||
|
||||
--
|
||||
-- TagSoup HTML handling
|
||||
--
|
||||
|
|
Loading…
Add table
Reference in a new issue