html5树json,在HTML中将JSON/YAML层次结构显示为树?

Anirvan..

7

基于简单的YAML看起来很像Markdown的事实,我终于想出了一个超级优雅的方式来完成大约5行代码.

我们从这开始:

---

all:

foo: 1025

bar:

baz: 37628

quux:

a: 179

b: 7

使用regexp(在本例中为Perl)删除起始位置---,并在每行的键之前放置连字符:

$data =~ s/^---\n//s;

$data =~ s/^(\s*)(\S.*)$/$1- $2/gm;

Voila,Markdown:

- all:

- foo: 1025

- bar:

- baz: 37628

- quux:

- a: 179

- b: 7

现在,只需通过Markdown处理器运行它:

use Text::Markdown qw( markdown );

print markdown($data);

你得到一个HTML列表 - 干净,语义,向后兼容:

  • all:
    • foo: 1025
    • bar:
    • baz: 37628
    • quux:
      • a: 179
      • b: 7

YUI Treeview可以增强现有列表,因此我们将其全部包装起来:

  • all:
    • foo: 1025
    • bar:
    • baz: 37628
    • quux:
      • a: 179
      • b: 7

var treeInit = function() {

var tree = new YAHOO.widget.TreeView("markup");

tree.render();

};

YAHOO.util.Event.onDOMReady(treeInit);

所以这一切都适用于大约5行代码(将YAML转换为Markdown,将Markdown转换为HTML列表,并将该HTML列表放在模板HTML文件中.生成的HTML逐步增强/降级,因为它在非完全可见-JavaScript浏览器作为一个普通的旧列表.

InfluxDB 是一个分布式、时间序列数据库,常用于监控和存储 IoT 和日志数据。在 Docker 容器环境中,若需要将容器的日志(container log)持久化并保存到 InfluxDB 中,可以按照以下步骤操作,并通过 YAML 配置文件进行设置: 1. **安装 InfluxDB**: - 如果还没有安装,先确保在主机上安装了 InfluxDB。你可以从其官网下载适合的版本,然后运行安装脚本。 2. **配置 InfluxDB**: - 创建一个新的 retention policy (保留策略)来管理持久化的日志数据,例如在一个名为 `container_logs` 的文件中: ``` cat << EOF > influxdb_retention.yaml name: container_logs duration: 7d replication: 1 shardGroupDuration: 1h EOF ``` - 启动 InfluxDB 并应用新的配置: ``` influxd config apply < influxdb_retention.yaml ``` 3. **创建 InfluxDB 数据点**: 使用 Telegraf 这样的工具,它支持收集多种日志源,包括 Docker logs。Telegraf 可以作为 Docker 容器的一部分运行,或者作为一个独立的服务部署。你需要编写一个 Telegraf 配置文件 `telegraf.conf`,包含对 Docker logs 插件的配置,比如: ```yaml [[inputs.docker_log]] tagpass = "<YOUR_SECRET>" containers = ["/var/log/*"] data_format = "json" ``` 4. **运行 Telegraf**: 将上面的配置文件添加到容器的启动命令中,或者将其作为配置卷挂载到容器内: - Dockerfile示例: ```Dockerfile FROM telegraf:latest COPY telegraf.conf /etc/telegraf/ CMD ["telegraf", "-config", "/etc/telegraf/telegraf.conf"] ``` 5. **启动 Telegraf容器**: ``` docker run -v /var/run/docker.sock:/var/run/docker.sock \ -v /path/to/influxdb/data:/var/lib/influxdata \ --name telegraf_container -it telegraf_container_image:tag ``` 确保挂载 `/var/run/docker.sock` 来访问容器日志,以及 `/path/to/influxdb/data` 来存储 InfluxDB 数据。 6. **检查数据是否已同步**: 使用 `influx` 命令连接到 InfluxDB 并查询数据确认是否已经成功导入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值