aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Pandoc.cabal.in2
-rw-r--r--src/Main.hs1
-rw-r--r--src/Text/Pandoc/Entities.hs (renamed from src/Text/Pandoc/HtmlEntities.hs)30
-rw-r--r--src/Text/Pandoc/Readers/HTML.hs4
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs2
-rw-r--r--src/Text/Pandoc/Shared.hs2
-rw-r--r--src/Text/Pandoc/Writers/Docbook.hs2
7 files changed, 22 insertions, 21 deletions
diff --git a/Pandoc.cabal.in b/Pandoc.cabal.in
index 3234201fe..93ac2d369 100644
--- a/Pandoc.cabal.in
+++ b/Pandoc.cabal.in
@@ -17,7 +17,7 @@ Extra-Source-Files: README COPYRIGHT man/man1/pandoc.1
Exposed-Modules: Text.ParserCombinators.Pandoc,
Text.Pandoc.ASCIIMathML,
Text.Pandoc.Definition,
- Text.Pandoc.HtmlEntities,
+ Text.Pandoc.Entities,
Text.Pandoc.Shared,
Text.Pandoc.UTF8,
Text.Pandoc.Writers.DefaultHeaders,
diff --git a/src/Main.hs b/src/Main.hs
index b5320c258..3476a950b 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -336,6 +336,7 @@ defaultWriterName x =
Just ["markdown"] -> "markdown"
Just ["db"] -> "docbook"
Just ["xml"] -> "docbook"
+ Just ["sgml"] -> "docbook"
Just _ -> "html"
main = do
diff --git a/src/Text/Pandoc/HtmlEntities.hs b/src/Text/Pandoc/Entities.hs
index 157588262..c5dfbf134 100644
--- a/src/Text/Pandoc/HtmlEntities.hs
+++ b/src/Text/Pandoc/Entities.hs
@@ -17,7 +17,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-}
{- |
- Module : Text.Pandoc.HtmlEntities
+ Module : Text.Pandoc.Entities
Copyright : Copyright (C) 2006 John MacFarlane
License : GNU GPL, version 2 or above
@@ -25,12 +25,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Stability : alpha
Portability : portable
-Functions for encoding unicode characters as HTML entity references,
+Functions for encoding unicode characters as entity references,
and vice versa.
-}
-module Text.Pandoc.HtmlEntities (
- htmlEntityToChar,
- charToHtmlEntity,
+module Text.Pandoc.Entities (
+ entityToChar,
+ charToEntity,
decodeEntities,
encodeEntities
) where
@@ -50,7 +50,7 @@ decodeEntities str =
Nothing -> str
Just (before, match, rest, _) -> before ++ replacement ++
(decodeEntities rest)
- where replacement = case (htmlEntityToChar match) of
+ where replacement = case (entityToChar match) of
Just ch -> [ch]
Nothing -> match
@@ -60,29 +60,29 @@ encodeEntities :: String -> String
encodeEntities [] = []
encodeEntities (c:cs) = if ord c < 127
then c:(encodeEntities cs)
- else (charToHtmlEntity c) ++ (encodeEntities cs)
+ else (charToEntity c) ++ (encodeEntities cs)
-- | If the string is a valid entity reference, returns @Just@ the character,
-- otherwise @Nothing@.
-htmlEntityToChar :: String -> Maybe Char
-htmlEntityToChar entity =
- case (lookup entity htmlEntityTable) of
+entityToChar :: String -> Maybe Char
+entityToChar entity =
+ case (lookup entity entityTable) of
Just ch -> Just ch
Nothing -> case (matchRegexAll decimalCodedEntity entity) of
Just (_, _, _, [sub]) -> Just (chr (read sub))
Nothing -> Nothing
-- | Returns a string containing an entity reference for the character.
-charToHtmlEntity :: Char -> String
-charToHtmlEntity char =
+charToEntity :: Char -> String
+charToEntity char =
let matches = filter (\(entity, character) -> (character == char))
- htmlEntityTable in
+ entityTable in
if (length matches) == 0
then "&#" ++ show (ord char) ++ ";"
else fst (head matches)
-htmlEntityTable :: [(String, Char)]
-htmlEntityTable = [
+entityTable :: [(String, Char)]
+entityTable = [
("&quot;", chr 34),
("&amp;", chr 38),
("&lt;", chr 60),
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs
index 9beaaacff..79bdab76a 100644
--- a/src/Text/Pandoc/Readers/HTML.hs
+++ b/src/Text/Pandoc/Readers/HTML.hs
@@ -45,7 +45,7 @@ import Text.ParserCombinators.Parsec
import Text.ParserCombinators.Pandoc
import Text.Pandoc.Definition
import Text.Pandoc.Shared
-import Text.Pandoc.HtmlEntities ( decodeEntities, htmlEntityToChar )
+import Text.Pandoc.Entities ( decodeEntities, entityToChar )
import Maybe ( fromMaybe )
import Char ( toUpper, toLower )
@@ -397,7 +397,7 @@ entity = try (do
num <- many1 digit
return ("#" ++ num)))]
char ';'
- return (Str [fromMaybe '?' (htmlEntityToChar ("&" ++ body ++ ";"))]))
+ return (Str [fromMaybe '?' (entityToChar ("&" ++ body ++ ";"))]))
code = try (do
htmlTag "code"
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 9913b60f9..30d6a11df 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -41,7 +41,7 @@ import Text.Pandoc.Readers.HTML ( rawHtmlBlock,
anyHtmlTag, anyHtmlEndTag,
htmlEndTag, extractTagType,
htmlBlockElement )
-import Text.Pandoc.HtmlEntities ( decodeEntities )
+import Text.Pandoc.Entities ( decodeEntities )
import Text.Regex ( matchRegex, mkRegex )
import Text.ParserCombinators.Parsec
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index eb6c7be78..adc2621f3 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -66,7 +66,7 @@ module Text.Pandoc.Shared (
) where
import Text.Pandoc.Definition
import Text.ParserCombinators.Parsec
-import Text.Pandoc.HtmlEntities ( decodeEntities )
+import Text.Pandoc.Entities ( decodeEntities )
import Text.Regex ( matchRegexAll, mkRegex, subRegex, Regex )
import Char ( toLower )
import List ( find, groupBy )
diff --git a/src/Text/Pandoc/Writers/Docbook.hs b/src/Text/Pandoc/Writers/Docbook.hs
index 61f24807b..8ccf84f30 100644
--- a/src/Text/Pandoc/Writers/Docbook.hs
+++ b/src/Text/Pandoc/Writers/Docbook.hs
@@ -33,7 +33,7 @@ module Text.Pandoc.Writers.Docbook (
import Text.Pandoc.Definition
import Text.Pandoc.Shared
import Text.Pandoc.Writers.HTML ( stringToSmartHtml, stringToHtml )
-import Text.Pandoc.HtmlEntities ( encodeEntities )
+import Text.Pandoc.Entities ( encodeEntities )
import Text.Html ( stringToHtmlString )
import Text.Regex ( mkRegex, matchRegex )
import Data.Char ( toLower, ord )