aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Options.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Options.hs')
-rw-r--r--src/Text/Pandoc/Options.hs217
1 files changed, 0 insertions, 217 deletions
diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs
deleted file mode 100644
index bc62f87d0..000000000
--- a/src/Text/Pandoc/Options.hs
+++ /dev/null
@@ -1,217 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable, DeriveGeneric #-}
-{-
-Copyright (C) 2012-2016 John MacFarlane <jgm@berkeley.edu>
-
-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.Options
- Copyright : Copyright (C) 2012-2016 John MacFarlane
- License : GNU GPL, version 2 or above
-
- Maintainer : John MacFarlane <jgm@berkeley.edu>
- Stability : alpha
- Portability : portable
-
-Data structures and functions for representing parser and writer
-options.
--}
-module Text.Pandoc.Options ( module Text.Pandoc.Extensions
- , ReaderOptions(..)
- , HTMLMathMethod (..)
- , CiteMethod (..)
- , ObfuscationMethod (..)
- , HTMLSlideVariant (..)
- , EPUBVersion (..)
- , WrapOption (..)
- , TopLevelDivision (..)
- , WriterOptions (..)
- , TrackChanges (..)
- , ReferenceLocation (..)
- , def
- , isEnabled
- ) where
-import Text.Pandoc.Extensions
-import Data.Default
-import Text.Pandoc.Highlighting (Style, pygments)
-import Data.Data (Data)
-import Data.Typeable (Typeable)
-import GHC.Generics (Generic)
-
-data ReaderOptions = ReaderOptions{
- readerExtensions :: Extensions -- ^ Syntax extensions
- , readerStandalone :: Bool -- ^ Standalone document with header
- , readerColumns :: Int -- ^ Number of columns in terminal
- , readerTabStop :: Int -- ^ Tab stop
- , readerApplyMacros :: Bool -- ^ Apply macros to TeX math
- , readerIndentedCodeClasses :: [String] -- ^ Default classes for
- -- indented code blocks
- , readerDefaultImageExtension :: String -- ^ Default extension for images
- , readerTrackChanges :: TrackChanges
-} deriving (Show, Read, Data, Typeable, Generic)
-
-instance Default ReaderOptions
- where def = ReaderOptions{
- readerExtensions = emptyExtensions
- , readerStandalone = False
- , readerColumns = 80
- , readerTabStop = 4
- , readerApplyMacros = True
- , readerIndentedCodeClasses = []
- , readerDefaultImageExtension = ""
- , readerTrackChanges = AcceptChanges
- }
-
---
--- Writer options
---
-
-data EPUBVersion = EPUB2 | EPUB3 deriving (Eq, Show, Read, Data, Typeable, Generic)
-
-data HTMLMathMethod = PlainMath
- | LaTeXMathML (Maybe String) -- url of LaTeXMathML.js
- | JsMath (Maybe String) -- url of jsMath load script
- | GladTeX
- | WebTeX String -- url of TeX->image script.
- | MathML
- | MathJax String -- url of MathJax.js
- | KaTeX String String -- url of stylesheet and katex.js
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
-data CiteMethod = Citeproc -- use citeproc to render them
- | Natbib -- output natbib cite commands
- | Biblatex -- output biblatex cite commands
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Methods for obfuscating email addresses in HTML.
-data ObfuscationMethod = NoObfuscation
- | ReferenceObfuscation
- | JavascriptObfuscation
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Varieties of HTML slide shows.
-data HTMLSlideVariant = S5Slides
- | SlidySlides
- | SlideousSlides
- | DZSlides
- | RevealJsSlides
- | NoSlides
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Options for accepting or rejecting MS Word track-changes.
-data TrackChanges = AcceptChanges
- | RejectChanges
- | AllChanges
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Options for wrapping text in the output.
-data WrapOption = WrapAuto -- ^ Automatically wrap to width
- | WrapNone -- ^ No non-semantic newlines
- | WrapPreserve -- ^ Preserve wrapping of input source
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Options defining the type of top-level headers.
-data TopLevelDivision = TopLevelPart -- ^ Top-level headers become parts
- | TopLevelChapter -- ^ Top-level headers become chapters
- | TopLevelSection -- ^ Top-level headers become sections
- | TopLevelDefault -- ^ Top-level type is determined via
- -- heuristics
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Locations for footnotes and references in markdown output
-data ReferenceLocation = EndOfBlock -- ^ End of block
- | EndOfSection -- ^ prior to next section header (or end of document)
- | EndOfDocument -- ^ at end of document
- deriving (Show, Read, Eq, Data, Typeable, Generic)
-
--- | Options for writers
-data WriterOptions = WriterOptions
- { writerTemplate :: Maybe String -- ^ Template to use
- , writerVariables :: [(String, String)] -- ^ Variables to set in template
- , writerTabStop :: Int -- ^ Tabstop for conversion btw spaces and tabs
- , writerTableOfContents :: Bool -- ^ Include table of contents
- , writerIncremental :: Bool -- ^ True if lists should be incremental
- , writerHTMLMathMethod :: HTMLMathMethod -- ^ How to print math in HTML
- , writerNumberSections :: Bool -- ^ Number sections in LaTeX
- , writerNumberOffset :: [Int] -- ^ Starting number for section, subsection, ...
- , writerSectionDivs :: Bool -- ^ Put sections in div tags in HTML
- , writerExtensions :: Extensions -- ^ Markdown extensions that can be used
- , writerReferenceLinks :: Bool -- ^ Use reference links in writing markdown, rst
- , writerDpi :: Int -- ^ Dpi for pixel to/from inch/cm conversions
- , writerWrapText :: WrapOption -- ^ Option for wrapping text
- , writerColumns :: Int -- ^ Characters in a line (for text wrapping)
- , writerEmailObfuscation :: ObfuscationMethod -- ^ How to obfuscate emails
- , writerIdentifierPrefix :: String -- ^ Prefix for section & note ids in HTML
- -- and for footnote marks in markdown
- , writerSourceURL :: Maybe String -- ^ Absolute URL + directory of 1st source file
- , writerUserDataDir :: Maybe FilePath -- ^ Path of user data directory
- , writerCiteMethod :: CiteMethod -- ^ How to print cites
- , writerHtmlQTags :: Bool -- ^ Use @<q>@ tags for quotes in HTML
- , writerSlideLevel :: Maybe Int -- ^ Force header level of slides
- , writerTopLevelDivision :: TopLevelDivision -- ^ Type of top-level divisions
- , writerListings :: Bool -- ^ Use listings package for code
- , writerHighlightStyle :: Maybe Style -- ^ Style to use for highlighting
- -- (Nothing = no highlighting)
- , writerSetextHeaders :: Bool -- ^ Use setext headers for levels 1-2 in markdown
- , writerEpubMetadata :: Maybe String -- ^ Metadata to include in EPUB
- , writerEpubStylesheet :: Maybe String -- ^ EPUB stylesheet specified at command line
- , writerEpubFonts :: [FilePath] -- ^ Paths to fonts to embed
- , writerEpubChapterLevel :: Int -- ^ Header level for chapters (separate files)
- , writerTOCDepth :: Int -- ^ Number of levels to include in TOC
- , writerReferenceDoc :: Maybe FilePath -- ^ Path to reference document if specified
- , writerLaTeXArgs :: [String] -- ^ Flags to pass to latex-engine
- , writerReferenceLocation :: ReferenceLocation -- ^ Location of footnotes and references for writing markdown
- } deriving (Show, Data, Typeable, Generic)
-
-instance Default WriterOptions where
- def = WriterOptions { writerTemplate = Nothing
- , writerVariables = []
- , writerTabStop = 4
- , writerTableOfContents = False
- , writerIncremental = False
- , writerHTMLMathMethod = PlainMath
- , writerNumberSections = False
- , writerNumberOffset = [0,0,0,0,0,0]
- , writerSectionDivs = False
- , writerExtensions = emptyExtensions
- , writerReferenceLinks = False
- , writerDpi = 96
- , writerWrapText = WrapAuto
- , writerColumns = 72
- , writerEmailObfuscation = NoObfuscation
- , writerIdentifierPrefix = ""
- , writerSourceURL = Nothing
- , writerUserDataDir = Nothing
- , writerCiteMethod = Citeproc
- , writerHtmlQTags = False
- , writerSlideLevel = Nothing
- , writerTopLevelDivision = TopLevelDefault
- , writerListings = False
- , writerHighlightStyle = Just pygments
- , writerSetextHeaders = True
- , writerEpubMetadata = Nothing
- , writerEpubStylesheet = Nothing
- , writerEpubFonts = []
- , writerEpubChapterLevel = 1
- , writerTOCDepth = 3
- , writerReferenceDoc = Nothing
- , writerLaTeXArgs = []
- , writerReferenceLocation = EndOfDocument
- }
-
--- | Returns True if the given extension is enabled.
-isEnabled :: Extension -> WriterOptions -> Bool
-isEnabled ext opts = ext `extensionEnabled` (writerExtensions opts)