diff options
author | Albert Krewinkel <albert@zeitkraut.de> | 2016-07-04 11:20:05 +0200 |
---|---|---|
committer | Albert Krewinkel <albert@zeitkraut.de> | 2016-07-04 11:20:05 +0200 |
commit | f417fecf5fc60ae6c600be9f71bf0deef60a4113 (patch) | |
tree | 4fb9ed1c8be07f6420cd85f04107b97a313b4c72 /src/Text/Pandoc | |
parent | e548b8df072c4eecfeb43f94c6517c35d5eba30c (diff) | |
download | pandoc-f417fecf5fc60ae6c600be9f71bf0deef60a4113.tar.gz |
Org reader: replace ugly code with view pattern
Some less-than-smart code required a pragma switching of overlapping
pattern warnings in order to compile seamlessly. Using view patterns
makes the code easier to read and also doesn't require overlapping
pattern checks to be disabled.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Readers/Org/Blocks.hs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs index 023afe6e1..0bd82ce2f 100644 --- a/src/Text/Pandoc/Readers/Org/Blocks.hs +++ b/src/Text/Pandoc/Readers/Org/Blocks.hs @@ -1,6 +1,6 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RecordWildCards #-} -{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-} +{-# LANGUAGE ViewPatterns #-} {- Copyright (C) 2014-2016 Albert Krewinkel <tarleb+pandoc@moltkeplatz.de> @@ -54,7 +54,6 @@ import Data.Char ( isSpace, toLower, toUpper) import Data.List ( foldl', intersperse, isPrefixOf ) import qualified Data.Map as M import Data.Maybe ( fromMaybe, isNothing ) -import qualified Data.Sequence as S import Network.HTTP ( urlEncode ) -- @@ -142,7 +141,7 @@ headlineToBlocks hdln@(Headline {..}) = do _ | any isArchiveTag headlineTags -> archivedHeadlineToBlocks hdln _ | isCommentTitle headlineText -> return mempty _ | headlineLevel >= maxHeadlineLevels -> headlineToHeaderWithList hdln - _ -> headlineToHeaderWithContents hdln + _ | otherwise -> headlineToHeaderWithContents hdln isNoExportTag :: Tag -> Bool isNoExportTag = (== toTag "noexport") @@ -154,8 +153,8 @@ isArchiveTag = (== toTag "ARCHIVE") -- FIXME: This accesses builder internals not intended for use in situations -- like these. Replace once keyword parsing is supported. isCommentTitle :: Inlines -> Bool -isCommentTitle xs = (B.Many . S.take 1 . B.unMany) xs == B.str "COMMENT" -isCommentTitle _ = False +isCommentTitle (B.toList -> (Str "COMMENT":_)) = True +isCommentTitle _ = False archivedHeadlineToBlocks :: Headline -> OrgParser Blocks archivedHeadlineToBlocks hdln = do |