html string option

This commit is contained in:
aarne
2008-06-23 09:19:21 +00:00
parent 2a2e985f0e
commit 8fe8e8ad8a
2 changed files with 7 additions and 0 deletions

View File

@@ -545,6 +545,7 @@ stringOpOptions = [
("lexcode","code-like lexer"),
("lexmixed","mixture of text and code (code between $...$)"),
("to_devanagari","from GF Devanagari transliteration to unicode"),
("to_html","wrap in a html file with linebreaks"),
("to_thai","from GF Thai transliteration to unicode"),
("to_utf8","encode to utf8"),
("unlextext","text-like unlexer"),

View File

@@ -4,6 +4,7 @@ import GF.Text.Transliterations
import GF.Text.UTF8
import Data.Char
import Data.List (intersperse)
-- lexers and unlexers - they work on space-separated word strings
@@ -20,6 +21,7 @@ stringOp name = case name of
"unlexcode" -> Just $ appUnlexer unlexCode
"unlexmixed" -> Just $ appUnlexer unlexMixed
"unwords" -> Just $ appUnlexer unwords
"to_html" -> Just wrapHTML
"to_utf8" -> Just encodeUTF8
"from_utf8" -> Just decodeUTF8
_ -> transliterate name
@@ -30,6 +32,10 @@ appLexer f = unwords . filter (not . null) . f
appUnlexer :: ([String] -> String) -> String -> String
appUnlexer f = unlines . map (f . words) . lines
wrapHTML :: String -> String
wrapHTML = unlines . tag . intersperse "<br>" . lines where
tag ss = "<html>":"<body>" : ss ++ ["</body>","</html>"]
lexText :: String -> [String]
lexText s = case s of
c:cs | isPunct c -> [c] : lexText cs