parent
cc9e3a9172
commit
a888083ee1
3 changed files with 24 additions and 1 deletions
|
@ -321,6 +321,7 @@ getDefaultExtensions "org" = extensionsFromList
|
||||||
getDefaultExtensions "html" = extensionsFromList
|
getDefaultExtensions "html" = extensionsFromList
|
||||||
[Ext_auto_identifiers,
|
[Ext_auto_identifiers,
|
||||||
Ext_native_divs,
|
Ext_native_divs,
|
||||||
|
Ext_line_blocks,
|
||||||
Ext_native_spans]
|
Ext_native_spans]
|
||||||
getDefaultExtensions "html4" = getDefaultExtensions "html"
|
getDefaultExtensions "html4" = getDefaultExtensions "html"
|
||||||
getDefaultExtensions "html5" = getDefaultExtensions "html"
|
getDefaultExtensions "html5" = getDefaultExtensions "html"
|
||||||
|
|
|
@ -51,7 +51,7 @@ import Data.Char (isAlphaNum, isDigit, isLetter)
|
||||||
import Data.Default (Default (..), def)
|
import Data.Default (Default (..), def)
|
||||||
import Data.Foldable (for_)
|
import Data.Foldable (for_)
|
||||||
import Data.List (intercalate, isPrefixOf)
|
import Data.List (intercalate, isPrefixOf)
|
||||||
import Data.List.Split (wordsBy)
|
import Data.List.Split (wordsBy, splitWhen)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe (fromMaybe, isJust, isNothing)
|
import Data.Maybe (fromMaybe, isJust, isNothing)
|
||||||
import Data.Monoid (First (..), (<>))
|
import Data.Monoid (First (..), (<>))
|
||||||
|
@ -66,6 +66,7 @@ import qualified Text.Pandoc.Builder as B
|
||||||
import Text.Pandoc.Class (PandocMonad (..))
|
import Text.Pandoc.Class (PandocMonad (..))
|
||||||
import Text.Pandoc.CSS (foldOrElse, pickStyleAttrProps)
|
import Text.Pandoc.CSS (foldOrElse, pickStyleAttrProps)
|
||||||
import Text.Pandoc.Definition
|
import Text.Pandoc.Definition
|
||||||
|
import Text.Pandoc.Extensions (Extension(..))
|
||||||
import Text.Pandoc.Error
|
import Text.Pandoc.Error
|
||||||
import Text.Pandoc.Logging
|
import Text.Pandoc.Logging
|
||||||
import Text.Pandoc.Options (
|
import Text.Pandoc.Options (
|
||||||
|
@ -191,6 +192,7 @@ block = do
|
||||||
, pHtml
|
, pHtml
|
||||||
, pHead
|
, pHead
|
||||||
, pBody
|
, pBody
|
||||||
|
, pLineBlock
|
||||||
, pDiv
|
, pDiv
|
||||||
, pPlain
|
, pPlain
|
||||||
, pFigure
|
, pFigure
|
||||||
|
@ -377,6 +379,16 @@ pRawTag = do
|
||||||
then return mempty
|
then return mempty
|
||||||
else return $ renderTags' [tag]
|
else return $ renderTags' [tag]
|
||||||
|
|
||||||
|
pLineBlock :: PandocMonad m => TagParser m Blocks
|
||||||
|
pLineBlock = try $ do
|
||||||
|
guardEnabled Ext_line_blocks
|
||||||
|
_ <- pSatisfy $ tagOpen (=="div") (== [("class","line-block")])
|
||||||
|
ils <- trimInlines . mconcat <$> manyTill inline (pSatisfy (tagClose (=="div")))
|
||||||
|
let lns = map B.fromList $
|
||||||
|
splitWhen (== LineBreak) $ filter (/= SoftBreak) $
|
||||||
|
B.toList ils
|
||||||
|
return $ B.lineBlock lns
|
||||||
|
|
||||||
pDiv :: PandocMonad m => TagParser m Blocks
|
pDiv :: PandocMonad m => TagParser m Blocks
|
||||||
pDiv = try $ do
|
pDiv = try $ do
|
||||||
guardEnabled Ext_native_divs
|
guardEnabled Ext_native_divs
|
||||||
|
|
10
test/command/4162.md
Normal file
10
test/command/4162.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
```
|
||||||
|
% pandoc -f html -t native
|
||||||
|
<div class="line-block">hi<br /><br>
|
||||||
|
there</div>
|
||||||
|
^D
|
||||||
|
[LineBlock
|
||||||
|
[[Str "hi"]
|
||||||
|
,[]
|
||||||
|
,[Str "\160there"]]]
|
||||||
|
```
|
Loading…
Add table
Reference in a new issue