微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

observablehq 上使用了哪些 HTML 处理?

如何解决observablehq 上使用了哪些 HTML 处理?

我刚刚阅读了 the changes in d6.js version 6 并偶然发现了 this d3.groups() example on observablehq.com

在那里,我看到了以下代码片段,用于从 Map athletesBySport 创建一个 HTML 表:

html`<table>
  <thead>
    <tr><th>Sport</th><th>Athletes</th></tr>
  </thead>
  <tbody>${Array.from(athletesBySport,([key,values]) => html`
    <tr>
      <td>${key}</td>
      <td>${values.map(d => d.name).join(",")}</td>
    </tr>`)}</tbody>
</table>`

这是一种什么样的“标记”/HTML 处理?我可以检测到的一些特殊模式是

hmtl`...`

$

似乎允许执行生成内联 html 的脚本的标志。

解决方法

可以在here,in Observable's standard library找到这个问题的答案。 This introduction 还探索了标准库。


html`...`

part 是“只是”一个 JavaScript tagged template literal,即使用特定方法解析的 JavaScript 模板文字。

来自 Observable 的文档:

html`字符串`

返回由指定的 HTML 字符串文字表示的 HTML 元素。此函数旨在用作标记模板文字。自动修剪前导和尾随空格。例如,要创建一个内容为“Hello,world!”的 H1 元素: html`

你好,世界!`

文档进一步说明了如何处理嵌入 $ 的表达式:

如果嵌入的表达式是一个 DOM 元素,它就会嵌入到生成的 HTML 中。例如,要在 HTML 中嵌入 TeX:

html`我喜欢 ${tex`\KaTeX`} 数学。`

如果嵌入的表达式是数组,则数组的元素会嵌入到生成的 HTML 中。


Observable 中有更多标记文字可用,例如 svgmd 用于降价、tex 用于 LaTex 等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?