BlogLiterately-diagrams 0.1.4.3 → 0.2
raw patch · 4 files changed
+41/−27 lines, 4 filesdep +JuicyPixelsdep +diagrams-rasterificdep −diagrams-cairodep ~BlogLiteratelydep ~basedep ~diagrams-builder
Dependencies added: JuicyPixels, diagrams-rasterific
Dependencies removed: diagrams-cairo
Dependency ranges changed: BlogLiterately, base, diagrams-builder, diagrams-lib, pandoc
Files
- BlogLiterately-diagrams.cabal +12/−10
- CHANGES +6/−0
- src/Text/BlogLiterately/Diagrams.hs +22/−17
- src/tools/BlogLiteratelyD.hs +1/−0
BlogLiterately-diagrams.cabal view
@@ -1,5 +1,5 @@ name: BlogLiterately-diagrams-version: 0.1.4.3+version: 0.2 synopsis: Include images in blog posts with inline diagrams code description: A plugin for @BlogLiterately@ (<http://hackage.haskell.org/package/BlogLiterately>) which turns inline diagrams code into images.@@ -61,9 +61,9 @@ license-file: LICENSE extra-source-files: CHANGES author: Brent Yorgey-maintainer: byorgey@cis.upenn.edu+maintainer: byorgey@gmail.com bug-reports: http://github.com/byorgey/BlogLiterately-diagrams/issues-copyright: Copyright 2012 Brent Yorgey+copyright: Copyright 2012-2015 Brent Yorgey category: Web build-type: Simple cabal-version: >=1.10@@ -75,22 +75,24 @@ library default-language: Haskell2010 exposed-modules: Text.BlogLiterately.Diagrams- build-depends: base >= 4.3 && < 4.8,+ build-depends: base >= 4.3 && < 4.9, containers, filepath, directory,- diagrams-cairo >= 1.0.1 && < 1.3,- diagrams-builder >= 0.5 && < 0.7,- diagrams-lib >= 1.0.1 && < 1.3,- BlogLiterately >= 0.6 && < 0.8,- pandoc >= 1.9 && < 1.13,+ diagrams-lib >= 1.3 && < 1.4,+ diagrams-rasterific >= 1.3 && < 1.4,+ JuicyPixels >= 3.2 && < 3.3,+ diagrams-builder >= 0.5 && < 0.8,+ BlogLiterately >= 0.6 && < 0.9,+ pandoc >= 1.9 && < 1.15, safe ==0.3.* hs-source-dirs: src executable BlogLiteratelyD build-depends: base,- BlogLiterately >= 0.6 && < 0.8,+ BlogLiterately >= 0.6 && < 0.9, BlogLiterately-diagrams main-is: BlogLiteratelyD.hs hs-source-dirs: src/tools default-language: Haskell2010+ ghc-options: -threaded
CHANGES view
@@ -1,3 +1,9 @@+* 0.2 (7 May 2015)++ - Switch from diagrams-cairo to diagrams-rasterific+ - Update to diagrams-1.3+ - Allow base-4.8+ * 0.1.4.3 (5 June 2014) - Allow diagrams-lib-1.2
src/Text/BlogLiterately/Diagrams.hs view
@@ -20,17 +20,17 @@ ( diagramsXF, diagramsInlineXF ) where -import Safe (readMay)-import System.Directory (createDirectoryIfMissing)+import Safe (readMay)+import System.Directory (createDirectoryIfMissing) import System.FilePath-import System.IO (hPutStrLn, stderr)+import System.IO (hPutStrLn, stderr) -import Diagrams.Backend.Cairo-import Diagrams.Backend.Cairo.Internal-import qualified Diagrams.Builder as DB-import Diagrams.Prelude (centerXY, pad, zeroV, (&),- (.~))-import Diagrams.TwoD.Size (mkSizeSpec)+import qualified Codec.Picture as J+import Diagrams.Backend.Rasterific+import qualified Diagrams.Builder as DB+import Diagrams.Prelude (SizeSpec, V2, centerXY, pad, zero,+ (&), (.~))+import Diagrams.TwoD.Size (mkSizeSpec2D) import Text.BlogLiterately import Text.Pandoc @@ -102,16 +102,17 @@ renderDiagram shouldPad decls expr (_ident, _cls, fields) = do createDirectoryIfMissing True diaDir - let bopts = DB.mkBuildOpts Cairo zeroV (CairoOptions "default.png" size PNG False)+ let bopts = DB.mkBuildOpts Rasterific zero (RasterificOptions sz) & DB.snippets .~ decls- & DB.imports .~ ["Diagrams.Backend.Cairo"]+ & DB.imports .~ ["Diagrams.Backend.Rasterific"] & DB.diaExpr .~ expr & DB.postProcess .~ (if shouldPad then pad 1.1 . centerXY else id) & DB.decideRegen .~ (DB.hashedRegenerate- (\hash opts -> opts & cairoFileName .~ mkFile hash)+ (\_ opts -> opts) diaDir )+ res <- DB.buildDiagram bopts case res of@@ -123,13 +124,17 @@ let errStr = "\nInterpreter error:\n" ++ DB.ppInterpError ierr putErrLn errStr return (Left errStr)- DB.Skipped hash -> return (Right $ mkFile (DB.hashToHexStr hash))- DB.OK hash (act,_) -> act >> return (Right $ mkFile (DB.hashToHexStr hash))+ DB.Skipped hash -> return (Right $ mkFile (DB.hashToHexStr hash))+ DB.OK hash img -> do+ let imgFile = mkFile (DB.hashToHexStr hash)+ J.savePngImage imgFile (J.ImageRGBA8 img)+ return (Right imgFile) where- size = mkSizeSpec- (lookup "width" fields >>= readMay)- (lookup "height" fields >>= readMay)+ sz :: SizeSpec V2 Double+ sz = mkSizeSpec2D+ (lookup "width" fields >>= readMay)+ (lookup "height" fields >>= readMay) mkFile base = diaDir </> base <.> "png" renderBlockDiagram :: [String] -> Block -> IO Block
src/tools/BlogLiteratelyD.hs view
@@ -1,5 +1,6 @@ import Text.BlogLiterately import Text.BlogLiterately.Diagrams +main :: IO () main = blogLiteratelyCustom (diagramsInlineXF : diagramsXF : standardTransforms)