think-tool-kit

TTK: 保持批判,有所取舍,知行合一, 方见真我

see_mountain

用意

在多方面整理自己掌握的内容时,一再感受到思维工具的重要性,而这才是核心本质所在,因而起了这本书。

关于puml->data.json->html的转换

  1. 执行scripts/puml_midmap_json.py获取data.json
  2. 在data.vg.json中使用data.json
  3. 在data.html中使用data.vg.json
  4. 如果相对路径有变化,需要多往上走一级来验证,比如:
../../../../../layer1_visual_tools/map_tools/vega/collections/data_json/rust.json
  • 向上走到src那个目录
  • 然后一步步定位到文件

puml与vega语法映射

  1. * -> #: name
  2. 链接: link
  3. 悬浮弹窗注释: note, 格式为<code>note content</code>
  • 要有:
  • 要以;结尾
**:node name
<code>
note content
</code>;
  1. 节点颜色
  {
  "id": 3,
  "color": "",
  "name": "",
  "link": "",
  "parent": 1,
  "note": ""
}
  1. 考虑到plantuml的’;‘是元素结束符,所以这里将’“;”‘换成’;’
   notes = [note.replace('";"', ';') for note in notes]

关于快速本地实时查看vega网页

  1. 执行./scripts/local_proxy_server.js
  2. 命令行启动静态服务

为了和mdbook的路径一致,在src目录下执行

npm install -g http-server
http-server -c-1

mdbook的定位是从src目录下开始的

  1. 相对路径:需要向上一直走到src目录,然后再一步步定位到文件
  2. 绝对路径:直接从src目录开始定位

关于修改路径后兼容http-server本地和mdbook在线链接的流程图。

目前已知mdbook在github page发布后使用静态资源需要从src目录开始定位,而且要加上项目名称。也就是

/<项目名称>/<从src开始的定位>

为了本地的http-server可以兼容这个路径(因为http-server在本地的src根目录运行,静态资源不带<项目名>)

这里使用http-proxy写了一个代理:

┌─────────────┐                  ┌─────────────┐
│             │   Proxy Request  │             │
│  Client     ├─────────────────►│  Proxy      │
│             │                  │             │
└───────┬─────┘                  └───────┬─────┘
        │                                │
        │                                │
        ▼                                ▼
┌─────────────┐                  ┌─────────────┐
│             │Proxy Request with│             │
│  Proxy      │ modified req.url │  Server     │
│             ├─────────────────►│             │
└───────┬─────┘                  └───────┬─────┘
        │                                │
        │                                │
        ▼                                ▼
┌─────────────┐                  ┌─────────────┐
│             │ Server Response  │             │
│  Proxy      │◄─────────────────┤  Server     │
│             │                  │             │
└─────────────┘                  └─────────────┘
        │                                │
        │                                │
        ▼                                ▼
┌─────────────┐                  ┌─────────────┐
│             │ Proxy Response   │             │
│  Client     │◄─────────────────┤  Proxy      │
│             │                  │             │
└─────────────┘                  └─────────────┘
  • /scripts/local_proxy_server.js

vega强化

悬浮弹窗

          "tooltip": {
"signal": "{'相关笔记': datum.note}"
}

markdown渲染

  1. 按住shift可以一直保持弹窗
  2. 支持kroki系列图表渲染
def get_kroki_preprocessors():
    preprocessors = {
        "puml": "plantuml",
        "seqdiag": "sequediag",
        "svgbob": "svgbob",
        "ditaa": "ditaa",

    }
    return preprocessors


# 将puml/mermaid等内容提交给kroki获取在线图片链接
def get_kroki_link(file_path, preprocessor):
    with open(file_path, 'r') as f:
        content = f.read()
        encoded_cotnent = base64.urlsafe_b64encode(zlib.compress(content.encode('utf8'))).decode('utf8')
        return f"https://kroki.io/{preprocessor}/svg/{encoded_cotnent}"

可以去kroki在线编辑网站测试好后保存文本在本地:Kroki!

网页JS优化