Haskell将第一行打印到Browser选项卡中

时间:2014-12-09 23:29:50

标签: html haskell converter

只是一个简单的问题,我的代码已经完成了。它需要一个输入文件,将其分解为行,逐行读取文件,转换(在这种情况下,转换为某些内容)将某些内容转换为HTML格式(例如:#This是一行与H1 HTML标记,将其格式化为标题)。我唯一留下的是获取第一行代码,并将该代码打印到浏览器选项卡中。此外,必须将主体或尾部打印到窗口,而不是标签。所以.txt文件的第一行是The Title!我想在Web浏览器的选项卡中显示。这是我有的东西:

  formatToHTML :: String -> String
  formatToHTML [] = []
  formatToHTML x
          | head x    == --any char     = "<title>" ++ head ++ "</title>"
          | tail x    == --rest of file = "<body>"  ++ tail ++ "</tail>"
          | otherwise                   = null

   formatToHTML :: [String] -> String
   formatToHTML = unlines. map (show) "<title>" ++ head ++ </title>" $ lines

我不想,或者我认为甚至需要在这里使用警卫,但我不能想到一个更短的方式来完成我的任务。

在将文件输出到html之前,我会从我的main方法中调用它。 此外,我知道它是一个业余的haskell问题。但我怎么代表任何char。说,我想说,如果x的头部存在,用标题标签打印头部。印有身体标签的尾巴。救命?谢谢

1 个答案:

答案 0 :(得分:1)

我猜你想要的是:

formatHtml :: [String] -> String
formatHtml [] = ""
formatHtml (x:xs) = unlines theLines
  where theLines = [ "<title>" ++ ...convert x to html... ++ "</title>",
                     "<body>" ] ++ map toHtml xs ++ [ "</body>" ]
        toHtml :: String -> String
        toHmtl str = ...converts str to HTML...

示例:

formatHtml [ "the title", "body line 1", "body line2" ]

结果:

<title>the title</title>
<body>
body line 1
body line 2
</body>

您仍然需要定义toHtml函数并决定如何将第一行转换为标记的内部html。