From 4a841bfc5464907adea4cdd655485565565b40ae Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Sat, 3 Nov 2007 22:14:03 +0000 Subject: Use template haskell to avoid the need for templates: + Added library Text.Pandoc.Include, with a template haskell function $(includeStrFrom fname) to include a file as a string constant at compile time. + This removes the need for the 'templates' directory or Makefile target. These have been removed. + The base source directory has been changed from src to . + A new 'data' directory has been added, containing the ASCIIMathML.js script, writer headers, and S5 files. + The src/wrappers directory has been moved to 'wrappers'. + The Text.Pandoc.ASCIIMathML library is no longer needed, since Text.Pandoc.Writers.HTML can use includeStrFrom to include the ASCIIMathML.js code directly. It has been removed. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1063 788f1e2b-df1e-0410-8736-df70ead52e1b --- Text/Pandoc/Include.hs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Text/Pandoc/Include.hs (limited to 'Text/Pandoc/Include.hs') diff --git a/Text/Pandoc/Include.hs b/Text/Pandoc/Include.hs new file mode 100644 index 000000000..288706225 --- /dev/null +++ b/Text/Pandoc/Include.hs @@ -0,0 +1,60 @@ +{- +Copyright (C) 2007 John MacFarlane + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-} + +{- | + Module : Text.Pandoc.Include + Copyright : Copyright (C) 2006-7 John MacFarlane + License : GNU GPL, version 2 or above + + Maintainer : John MacFarlane + Stability : alpha + Portability : portable + +Template Haskell functions for including contents of files at compile time. +Usage: myConstant = $(includeStrFrom "myfile") +Note that "myfile" need be present only at compile time. +-} +module Text.Pandoc.Include ( includeStrFrom + , s5Path + , asciiMathMLPath + , headerPath + ) where + +import Language.Haskell.TH +import Control.Monad (liftM) +import System.FilePath + +-- path of data files +dataPath = "data" + +-- | Include contents of file as a string. +includeStrFrom :: FilePath -> ExpQ +includeStrFrom fpath = (runIO $ readFile fpath) >>= stringE + +-- | Path of an S5 file. +s5Path :: FilePath -> FilePath +s5Path p = joinPath [dataPath,"ui","default",p] + +-- | Path of ASCIIMathML.js. +asciiMathMLPath :: FilePath +asciiMathMLPath = joinPath [dataPath,"ASCIIMathML.js"] + +-- | Path of headers. +headerPath :: FilePath -> FilePath +headerPath p = joinPath [dataPath,"headers",p] + -- cgit v1.2.3