Elm 中使用的数学标签究竟是怎样的?

joh*_*ual 5 mathml mathjax elm

这只是一个带有一些废话数学的通用 div。无法正确渲染

div [] [ math [] [text "$\\int_a^b \frac{2}{3}$"]
Run Code Online (Sandbox Code Playgroud)

这就是结果

<math>$\int_a^b \frac{2}{3}$</math>
Run Code Online (Sandbox Code Playgroud)

所以我不明白mathElm是如何工作的。这看起来像mathML

就目前而言,我认为进行mathjax调用比学习(或创建)一种新的标记语言并编写纯 mathML更容易。这是它应该是什么样子

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <msubsup>
    <mo>&#x222B;<!-- ? --></mo>
    <mi>a</mi>
    <mi>b</mi>
  </msubsup>
  <mfrac>
    <mn>2</mn>
    <mn>3</mn>
  </mfrac>
</math>
Run Code Online (Sandbox Code Playgroud)

Elm 没有mfrac标签,但我很乐意自己写!这组标签在网络上使用的频率越来越高,但 Elm-Lang 本身可能还没有采用。


Elm 确实公开node了您可以在何处定义自己的任何类型的标签。

node
    :  String
    -> List (Attribute msg)
    -> List (Html msg)
    -> Html msg
Run Code Online (Sandbox Code Playgroud)

这表明了一个潜在的解决方案。虽然没有导致任何地方:

node "math" [] [ node "mo" [] [ text "&#x222B;"] ]
Run Code Online (Sandbox Code Playgroud)

Tos*_*osh 1

您应该能够用来Html.node执行 html 支持的任何操作。

view model =
  math []
    [ node "msup" []
      [ node "mi" [] [ text "x" ]
      , node "mn" [] [ text "2" ]
      ]
    ]
Run Code Online (Sandbox Code Playgroud)

您可能想要定义数学构造而不是node到处使用。