在OPA中生成静态页面

Tho*_*mas 5 opa

在我的一个项目中,我必须编写HTML和JavaScript代码.我宁愿使用静态类型的语言,所以我正在评估OPA.但是,我的目标是生成静态页面的集合,所以我不关心OPA HTTP服务器和持久层.

所以这里有我的问题:是否有一种(简单的)方法在OPA中生成静态页面的集合?

Fre*_*red 5

如果我理解正确,你想用Opa建立你的xhtml,但不是服务,而是将其打印到文件中?

我们有2个功能:

这两个函数之间的区别在于第一个函数不会生成关联的opa js代码.

然后,您可以将结果字符串写入磁盘上的HTML文件.

请注意,我们没有提供任何方法来在stdlib中的磁盘中写入文件.您必须使用bsl系统:

write = %%BslFile.of_string%%
Run Code Online (Sandbox Code Playgroud)

一个小例子:

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)
Run Code Online (Sandbox Code Playgroud)

编译并运行: opa static.opa --

这将生成5个html页面.