packages feed

Blogdown 0.2.0 → 0.2.1

raw patch · 5 files changed

+62/−7 lines, 5 files

Files

Blogdown.cabal view
@@ -1,5 +1,5 @@ name:                Blogdown-version:             0.2.0+version:             0.2.1 synopsis:            A markdown-like markup language designed for blog posts description:         A library and executable that implement a modified, extended version of Markdown designed for writing blog posts. license:             AGPL-3@@ -15,8 +15,8 @@ cabal-version:       >=1.10  library-  exposed-modules:     Parsing.Parse, Rendering.Render, Rendering.RenderOptions-  other-modules:       AST, Parsing.ParseBlock, Parsing.ParseInline, Parsing.Text, Parsing.Utils, Parsing.ParseFootnotes, Parsing.ParseHtml, Parsing.State, Parsing.TextUtils+  exposed-modules:     Parsing.Parse, Parsing.ParseOptions, Rendering.Render, Rendering.RenderOptions+  other-modules:       AST, Options, Parsing.ParseBlock, Parsing.ParseInline, Parsing.Text, Parsing.Utils, Parsing.ParseFootnotes, Parsing.ParseHtml, Parsing.State, Parsing.TextUtils   other-extensions:    DeriveGeneric   build-depends:       base >=4.9 && <4.10, parsec >=3.1 && <3.2, containers >=0.5 && <0.6, MissingH >=1.4 && <1.5, network-uri >=2.6 && <2.7   hs-source-dirs:      src, assets
ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for Blogdown +### 0.2.1 -- 2017-05-21++* Fix cabal build.+* Fix benchmarks.+ ## 0.2.0 -- 2017-05-21  * Add image support.
+ src/Options.hs view
@@ -0,0 +1,31 @@+module Options where++import Data.Either+import Data.List+import qualified Data.Map.Strict as M+import System.Environment (getArgs)++import Parsing.ParseOptions+import Rendering.RenderOptions++isNotFlag :: String -> Bool+isNotFlag s = not $ isPrefixOf "--" s++splitArgsByFlag :: [String] -> [[String]]+splitArgsByFlag [] = []+splitArgsByFlag (flag : args) = (flag : (takeWhile isNotFlag args)) : (splitArgsByFlag $ dropWhile isNotFlag args)++option :: [String] -> Either (ParseOptions -> ParseOptions) (RenderOptions -> RenderOptions)+option (flag: flagArgs) = if M.member flag parseOptions+    then Left $ (parseOptions M.! flag) flagArgs+    else Right $ (renderOptions M.! flag) flagArgs++options :: [String] -> (ParseOptions, RenderOptions)+options args = (foldl (.) id parseOptionsMods defaultParseOptions,+                foldl (.) id renderOptionsMods defaultRenderOptions)+    where+        eitherMods = map option $ splitArgsByFlag args+        (parseOptionsMods, renderOptionsMods) = partitionEithers eitherMods++getOptions :: IO (ParseOptions, RenderOptions)+getOptions = fmap options getArgs
+ src/Parsing/ParseOptions.hs view
@@ -0,0 +1,18 @@+{-# LANGUAGE DeriveGeneric #-}++module Parsing.ParseOptions where++import qualified Data.Map.Strict as M+import GHC.Generics (Generic)++data ParseOptions = ParseOptions {+    allowUnsafeTags :: Bool+} deriving (Show, Generic)++defaultParseOptions = ParseOptions {+    allowUnsafeTags = False +}++parseOptions :: M.Map String ([String] -> ParseOptions -> ParseOptions)+parseOptions = M.fromList [+    ("--allow-unsafe-tags", \_ -> \p -> p {allowUnsafeTags=True})]
test/Benchmark.hs view
@@ -4,12 +4,13 @@ import Data.Either import Data.String.Utils (replace) -import Parsing.Parse-import Rendering.Render-import Rendering.RenderOptions+import Parsing.Parse (parse)+import Parsing.ParseOptions (defaultParseOptions)+import Rendering.Render (toHtml)+import Rendering.RenderOptions (RenderOptions, defaultRenderOptions, inlineCSS, inlineJS)  parseAndRender :: RenderOptions -> String -> String-parseAndRender options = either show (toHtml options) . parse+parseAndRender options = either show (toHtml options) . parse defaultParseOptions  main :: IO () main = do