markdown2svg 0.0.1.25 → 0.0.1.26
raw patch · 2 files changed
+27/−11 lines, 2 filesdep +Cabal
Dependencies added: Cabal
Files
- markdown2svg.cabal +5/−3
- src/markdown2svg.hs +22/−8
markdown2svg.cabal view
@@ -2,7 +2,7 @@ cabal-version: >=1.8 name: markdown2svg-version: 0.0.1.25+version: 0.0.1.26 stability: Experimental author: Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -15,6 +15,8 @@ description: Usage: markdown2svg foo.md .+ Usage: markdown2svg --help+ . Now. Implemented only following features. . paragraph, header, code, list, image@@ -31,13 +33,13 @@ source-repository this type: git location: git://github.com/YoshikuniJujo/markdown2svg.git- tag: 0.0.1.25+ tag: 0.0.1.26 executable markdown2svg hs-source-dirs: src main-is: markdown2svg.hs build-depends: base > 3 && < 5, yjsvg, papillon, filepath, monads-tf, markdown-pap,- binary-file, png-file, directory+ binary-file, png-file, directory, Cabal ghc-options: -Wall other-modules: SVG, SepWords, Image, Image.PNG, Image.JPG, Image.SVG
src/markdown2svg.hs view
@@ -1,6 +1,7 @@ import Control.Applicative import Control.Monad import Data.Maybe+import Data.List import System.Environment import System.FilePath import System.Console.GetOpt@@ -11,18 +12,22 @@ import Text.Markdown.Pap (parse) import SVG +import Paths_markdown2svg (version)+import qualified Distribution.Version as D (Version(..))+ main :: IO () main = do (opts, ~[fp], emsgs) <- getOpt Permute options <$> getArgs mapM_ putStrLn emsgs when (not $ null emsgs) exitFailure- case opts of- [Help] -> do- putStr $ usageInfo- "Usage: markdown2svg [OPTION] foo.md"- options- exitSuccess- _ -> return ()+ when (isVersion opts) $ do+ putStrLn $ "markdown2svg " ++ showVersion version+ exitSuccess+ when (isHelp opts) $ do+ putStr $ usageInfo+ "Usage: markdown2svg [OPTION] foo.md"+ options+ exitSuccess let size = getSizeR opts * 0.3 dir = getDir opts idir = getIDir opts@@ -52,13 +57,15 @@ | ImageDir FilePath | Font FontType String | Help- deriving Show+ | Version+ deriving (Eq, Show) data FontType = Header | Normal | Code deriving (Eq, Show) options :: [OptDescr Option] options = [ Option "?h" ["help"] (NoArg Help) "help message",+ Option "" ["version"] (NoArg Version) "print version", Option "d" ["output-dir"] (ReqArg Dir "output_directory") "set ouput directory", Option "s" ["size-ratio"] (ReqArg (Size . read) "size_ratio") "set size ratio", Option "i" ["image-dir"] (ReqArg ImageDir "image_directory") "set image directory",@@ -66,6 +73,10 @@ Option "" ["normal-font"] (ReqArg (Font Normal) "normal_font") "set normal font", Option "" ["code-font"] (ReqArg (Font Code) "code_font") "set code font" ] +isVersion, isHelp :: [Option] -> Bool+isVersion = (Version `elem`)+isHelp = (Help `elem`)+ getDir, getIDir :: [Option] -> Maybe FilePath getDir [] = Nothing getDir (Dir d : _) = Just d@@ -102,3 +113,6 @@ copy :: FilePath -> FilePath -> [FilePath] -> IO () copy s d f = zipWithM_ copyFile (map (s </>) f) (map (d </>) f)++showVersion :: D.Version -> String+showVersion D.Version{ D.versionBranch = vb } = intercalate "." $ map show vb