markdown2svg 0.0.1.10 → 0.0.1.11
raw patch · 2 files changed
+15/−9 lines, 2 files
Files
- markdown2svg.cabal +2/−2
- src/SVG.hs +13/−7
markdown2svg.cabal view
@@ -2,7 +2,7 @@ cabal-version: >=1.8 name: markdown2svg-version: 0.0.1.10+version: 0.0.1.11 stability: Experimental author: Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -31,7 +31,7 @@ source-repository this type: git location: git://github.com/YoshikuniJujo/markdown2svg.git- tag: 0.0.1.10+ tag: 0.0.1.11 executable markdown2svg hs-source-dirs: src
src/SVG.hs view
@@ -28,11 +28,13 @@ width = (3535 *) height = (5000 *) -topMargin, leftMargin, paraLeftMargin :: Double -> Double+topMargin, leftMargin, paraLeftMargin, codeLeftMargin, listLeftMargin+ :: Double -> Double topMargin = (400 *) leftMargin = (400 *) paraLeftMargin = (+) <$> leftMargin <*> (200 *) codeLeftMargin = (+) <$> paraLeftMargin <*> (200 *)+listLeftMargin = (+) <$> paraLeftMargin <*> (200 *) bottomMargin :: Double -> Double bottomMargin = (400 *)@@ -77,10 +79,10 @@ | h' > bottomBorder r = [] : (svgs' ++ one') : rest' | otherwise = (svgs ++ one) : rest where- (_, h', svgs) = listToSVGData 1 "*+-------" r h (paraLeftMargin r) l- (_, h'', svgs') = listToSVGData 1 "*+-------" r (topMargin r) (paraLeftMargin r) l- one : rest = textToSVGData fp r h' ts- one' : rest' = textToSVGData fp r h'' ts+ (_, h', svgs) = listToSVGData 1 "*+-------" r (h + 100 * r) (listLeftMargin r) l+ (_, h'', svgs') = listToSVGData 1 "*+-------" r (topMargin r) (listLeftMargin r) l+ one : rest = textToSVGData fp r (h' + 100 * r) ts+ one' : rest' = textToSVGData fp r (h'' + 100 * r) ts textToSVGData fp r h (Code s : ts) | h' > bottomBorder r = [] : (svgs' ++ one') : rest' | otherwise = (svgs ++ one) : rest@@ -91,8 +93,8 @@ one' : rest' = textToSVGData fp r (h'' + codeSep r) ts textToSVGData fp r h (Image _ p ttl : ts) | h + ht > bottomBorder r =- [] : (SVG.Image (TopLeft (leftMargin r) (topMargin r)) wt ht p : svg') : svgs'- | otherwise = (SVG.Image (TopLeft (leftMargin r) h) wt ht p : svg) : svgs+ [] : (SVG.Image (TopLeft left (topMargin r)) wt ht p : svg') : svgs'+ | otherwise = (SVG.Image (TopLeft left h) wt ht p : svg) : svgs where svg : svgs = textToSVGData fp r (h + ht + r * 100) ts svg' : svgs' = textToSVGData fp r (topMargin r + ht + r * 100) ts@@ -104,6 +106,10 @@ Just (w_, h_) -> (w_ * ratio, h_ * ratio) _ -> (r * 1000, r * 1000) ratio = width r - 2 * leftMargin r+ left = case ttl of+ "large" -> leftMargin r+ "small" -> ratio * 4 / 10+ _ -> ratio * 1 / 3 splitAtString :: Int -> String -> (String, String) splitAtString len = sepStr 0