在我的项目之一中,我必须编写HTML和JavaScript代码。我宁愿使用静态类型的语言来代替,因此我正在评估OPA。但是,我的目标是生成静态页面的集合,因此我不在乎OPA HTTP服务器和持久层。
因此,我的问题来了:是否有一种(简单的)方法可以在OPA中生成静态页面的集合?
最佳答案
如果我理解正确,您想使用Opa构建xhtml,但不提供服务,而是将其打印到文件中?
为此,我们有2个功能:
这两个函数之间的区别在于,第一个函数不会生成关联的opa js代码。
然后,您可以将结果字符串写入磁盘上的HTML文件中。
请注意,我们没有在stdlib中提供任何将文件写入磁盘的方法。
您必须为此使用bsl系统:
write = %%BslFile.of_string%%
一个小例子:
static.opa
write = %%BslFile.of_string%%
xhtml_page(num:int) =
<p>Page {num}</p>
pages = [1, 2, 3, 4, 5]
do List.iter(i ->
xhtml_content = xhtml_page(i)
string_content = Xhtml.serialize_as_standalone_html(xhtml_content)
write("{i}.html", string_content)
, pages)
编译并运行:
opa static.opa --
这将生成5个html页面。
关于opa - 在OPA中生成静态页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8490076/