mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
html string option
This commit is contained in:
@@ -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"),
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user