我有一大堆原始HTML格式的课堂讲稿。我想在这些笔记中添加互动内容,特别是结合在线练习。我有一些将在线练习实现为cgi-bin可执行文件的经验,这些可执行文件是从服务器上运行的Haskell代码编译而来的,它与学生记录文件进行交互,并将合适的超文本标记语言发送回浏览器,使用Text.Xhtml
生成内容。现在我计划将笔记和练习结合起来。
问题是我不想花很长时间手动将我的原始HTML转换成Haskell代码来生成我一开始使用的原始HTML。相反,我希望将我的Haskell代码和HTML放在同一个源文件中,在后者中使用占位符表示由前者生成的内容。然后,适当的工具应将此文件转换为Haskell源代码,以用于(例如)生成相应页面的cgi-bin可执行文件。
在我破解这样一个工具包之前,我想我应该问问是否已经有更好的技术了。固定点是HTML遗留下来的大块,需要在Haskell中实现练习的评估,以及需要与服务器上的学生记录进行交互。缺点是我需要使用部门的web服务器,并且我不能重新配置它(好吧,也许我可以很好地问一下):这是我目前使用cgi-bin可执行文件的原因之一,它在我们的服务器上已经很好了,但我对其他可能性持开放态度。
我目前的计划是编写一个(我的意思是改写现有的)预处理器,以支持定义类型函数的特殊语法
Html -> ... -> Html -> Html
这看起来很像带有拼接点的原始HTML。然后,我对现有的原始HTML做的是缩进一点,并标记洞。
但这会是浪费时间吗?请告诉我这个问题是重复的!
发布于 2012-09-06 18:09:19
有像Yesod和Happstack这样的Haskell框架,它们使用您所描述的模板引擎。
你在http://www.haskell.org/haskellwiki/HSP或http://www.haskell.org/haskellwiki/Web/Libraries/Templating上看过haskell wiki吗?
他们可能会做你需要的事情。
发布于 2012-09-06 18:13:30
你可能会在这里找到一些东西来完成这项工作:Templating packages for Haskell。
您可能应该考虑使用Snap、Yesod或Happstack来提供内容。
发布于 2012-09-12 11:27:45
我有一大堆原始
格式的课堂讲稿。我想在这些笔记中添加互动内容,特别是结合在线练习。
已经有一个用Haskell编写的系统(称为"ActiveHs"),它允许将课堂讲稿和交互式练习放在一个文件中。
请参见:
http://pnyf.inf.elte.hu/fp/UsersGuide_en.xml
http://pnyf.inf.elte.hu/fp/Constructive_en.xml
我真的可以说它是写得很好的代码,而且是完全开源的!
https://stackoverflow.com/questions/12297471
复制相似问题