diff options
| author | John MacFarlane <[email protected]> | 2020-04-04 13:23:38 -0700 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2020-05-14 09:00:35 -0700 |
| commit | 106bd76648422d46f78cfb6f175b3bc271d444f7 (patch) | |
| tree | d2a18fa300c16f05c6f0fa93103c5d5312816bd0 | |
| parent | 7923d53ca2b753d1174a043f9ad2c22c22647ee0 (diff) | |
Commonmark reader: Update commonmark-hs version and go back...
to using built-in auto identifiers.
| -rw-r--r-- | src/Text/Pandoc/Extensions.hs | 12 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/CommonMark.hs | 31 | ||||
| -rw-r--r-- | stack.yaml | 2 |
3 files changed, 21 insertions, 24 deletions
diff --git a/src/Text/Pandoc/Extensions.hs b/src/Text/Pandoc/Extensions.hs index e33a59e37..c0e352910 100644 --- a/src/Text/Pandoc/Extensions.hs +++ b/src/Text/Pandoc/Extensions.hs @@ -438,6 +438,18 @@ getAllExtensions f = universalExtensions <> getAll f , Ext_implicit_figures , Ext_hard_line_breaks , Ext_smart + , Ext_tex_math_dollars + , Ext_superscript + , Ext_subscript + , Ext_definition_lists + , Ext_footnotes + , Ext_fancy_lists + , Ext_fenced_divs + , Ext_bracketed_spans + , Ext_raw_attribute + , Ext_inline_code_attributes + , Ext_link_attributes + , Ext_implicit_header_references ] getAll "commonmark" = getAll "gfm" getAll "org" = autoIdExtensions <> diff --git a/src/Text/Pandoc/Readers/CommonMark.hs b/src/Text/Pandoc/Readers/CommonMark.hs index becf45be5..65c6a1e53 100644 --- a/src/Text/Pandoc/Readers/CommonMark.hs +++ b/src/Text/Pandoc/Readers/CommonMark.hs @@ -25,12 +25,8 @@ import Text.Pandoc.Class.PandocMonad (PandocMonad) import Text.Pandoc.Definition import Text.Pandoc.Builder as B import Text.Pandoc.Options -import Text.Pandoc.Walk (walkM) -import Text.Pandoc.Shared (uniqueIdent) import Text.Pandoc.Error import Control.Monad.Except -import Control.Monad.State -import qualified Data.Set as Set import Data.Functor.Identity (runIdentity) -- | Parse a CommonMark formatted string into a 'Pandoc' structure. @@ -40,10 +36,7 @@ readCommonMark opts s = do commonmarkWith (foldr (<>) defaultSyntaxSpec exts) "input" s case res of Left err -> throwError $ PandocParsecError s err - Right (Cm bls :: Cm () Blocks) -> return $ - (if isEnabled Ext_auto_identifiers opts - then addHeaderIdentifiers opts - else id) $ B.doc bls + Right (Cm bls :: Cm () Blocks) -> return $ B.doc bls where exts = [ hardLineBreaksSpec | isEnabled Ext_hard_line_breaks opts ] ++ [ smartPunctuationSpec | isEnabled Ext_smart opts ] ++ @@ -52,28 +45,20 @@ readCommonMark opts s = do [ subscriptSpec | isEnabled Ext_subscript opts ] ++ [ mathSpec | isEnabled Ext_tex_math_dollars opts ] ++ [ fancyListSpec | isEnabled Ext_fancy_lists opts ] ++ - [ implicitHeadingReferencesSpec - | isEnabled Ext_implicit_header_references opts ] ++ - [ fencedDivSpec | isEnabled Ext_fenced_code_attributes opts ] ++ + [ fencedDivSpec | isEnabled Ext_fenced_divs opts ] ++ [ bracketedSpanSpec | isEnabled Ext_bracketed_spans opts ] ++ [ rawAttributeSpec | isEnabled Ext_raw_attribute opts ] ++ [ attributesSpec | isEnabled Ext_link_attributes opts || - isEnabled Ext_inline_code_attributes opts ] ++ + isEnabled Ext_inline_code_attributes opts || + isEnabled Ext_fenced_code_attributes opts ] ++ [ pipeTableSpec | isEnabled Ext_pipe_tables opts ] ++ [ autolinkSpec | isEnabled Ext_autolink_bare_uris opts ] ++ [ emojiSpec | isEnabled Ext_emoji opts ] ++ + [ autoIdentifiersSpec + | isEnabled Ext_gfm_auto_identifiers opts ] ++ + [ implicitHeadingReferencesSpec + | isEnabled Ext_implicit_header_references opts ] ++ [ footnoteSpec | isEnabled Ext_footnotes opts ] ++ [ definitionListSpec | isEnabled Ext_definition_lists opts ] ++ [ taskListSpec | isEnabled Ext_task_lists opts ] -addHeaderIdentifiers :: ReaderOptions -> Pandoc -> Pandoc -addHeaderIdentifiers opts d = - evalState (walkM (addHeaderId opts) d) mempty - -addHeaderId :: ReaderOptions -> Block -> State (Set.Set Text) Block -addHeaderId opts (Header lev (_,classes,kvs) ils) = do - ids <- get - let ident = uniqueIdent (readerExtensions opts) ils ids - modify (Set.insert ident) - return $ Header lev (ident,classes,kvs) ils -addHeaderId _ x = return x diff --git a/stack.yaml b/stack.yaml index 953c1dba4..8391cf42a 100644 --- a/stack.yaml +++ b/stack.yaml @@ -31,7 +31,7 @@ extra-deps: - HsYAML-aeson-0.2.0.0 - doctemplates-0.8.2 - git: https://github.com/jgm/commonmark-hs - commit: 751dbe89ea2a94d32e9ba27436c5cccfcfda4358 + commit: de354a3cabd447ed04440ace17fe44a79a490eb4 subdirs: - commonmark - commonmark-extensions |
