Hacker News 中文摘要

RSS订阅

D2(文本转图表工具)现已支持ASCII渲染 -- D2 (text to diagram tool) now supports ASCII renders

文章摘要

D2 0.7.1版本引入了ASCII输出功能,支持将.d2文件渲染为ASCII格式并保存为.txt文件。该功能在代码注释中尤为实用,能够通过简单的ASCII图表更清晰地描述函数或类的流程。D2 Vim扩展展示了实时预览和替换选择内容为ASCII渲染的功能,提升了开发效率。

文章总结

标题:ASCII输出功能发布

在D2的最新版本(0.7.1)中,我们引入了ASCII输出功能。任何扩展名为txt的输出文件都将使用ASCII渲染器进行写入。例如,通过命令1d2 in.d2 out.txt可以将D2文件转换为ASCII格式的文本文件。

应用场景: 1. 代码文档注释:ASCII图表在源代码注释中尤为有用,尤其是在函数或类旁边的小型简单图表,能够比文字描述更清晰地展示流程。 2. Vim扩展功能:D2的Vim扩展允许用户在编辑.d2文件时,实时预览ASCII渲染结果,并在保存时自动更新预览窗口。

字符集选择: 默认情况下,ASCII渲染器使用Unicode字符集,其绘制框线的字符更为美观。如果需要使用标准ASCII字符集以确保最大兼容性,可以通过--ascii-mode=standard参数进行指定。

当前限制: ASCII渲染器目前处于Alpha阶段,可能存在一些边界情况、改进空间和明显的bug。用户在使用过程中遇到问题,欢迎提交反馈至GitHub问题追踪系统。

技术细节: - ASCII渲染器是基于ELK布局引擎的布局进行缩放的,并通过后处理进一步压缩。 - 不支持样式(如动画、字体等),某些样式(如颜色)未来可能有限支持。 - 由于ASCII渲染的离散坐标空间,某些输出可能不如SVG格式均匀。

体验方式: 用户现在可以在D2 Playground中尝试这一功能,通过打开代码块并点击右上角进行体验。

示例代码: ```d2 LangUnits: { RegexVal: { ds } SQLSelect: { ds } PythonTr: { ds } langunit: { "... ds" } }

LangUnits <- ExperimentHost.Dataset: "load dataset" Dataset UI -> LangUnits: "manage datasets"

Dataset UI

ExperimentHost: { Experiment Dataset } ExperimentHost.Experiment -> Experiment

Experiment.ModelConfigurations Experiment.LangUnit

Experiment.ModelConfigurations -> ModelConfiguration

ModelConfiguration.Prompting ModelConfiguration.Model ModelConfiguration.LangUnit ```

通过这一功能,D2用户可以在更多场景下灵活使用ASCII图表,提升文档和代码的可读性。

评论总结

评论内容总结如下:

  1. 对新功能的兴趣与期待

    • 评论1(robertlagrant)表示对新功能感兴趣,并提到会尝试使用C4相关功能。
      引用:This looks cool. And I saw the previous post you got C4 support!
    • 评论6(bxpn77)简洁地表达了对新功能的赞赏。
      引用:Super cool!
  2. 对新功能的实际应用与反馈

    • 评论2(alixanderwang)分享了新功能的早期版本,并提供了直接体验的链接。
      引用:Just wanted to share a new feature we added this morning, though it's very alpha stage.
    • 评论9(jiehong)表示已经在使用D2进行序列图和迁移图绘制,并对新功能表示兴趣。
      引用:I’ve been using d2 for sequences diagrams or migration diagrams and I like it!
  3. 对工具功能与局限性的讨论

    • 评论4(jillesvangurp)指出当前LLM生成图表的挑战在于可展示性,而人类可编辑性是次要问题。
      引用:The key challenge is making these things presentable.
    • 评论8(smusamashah)质疑D2是否能在浏览器中独立运行,并询问扩展是否支持离线使用。
      引用:Can D2 work in browser by itself? Does the extension mentioned in the post work offline?
  4. 对工具与其他技术的比较与澄清

    • 评论5(eric-p7)提醒不要将D2与D编程语言混淆,后者有相似的域名。
      引用:Not to be confused with The D Programming Language.
    • 评论3(reactordev)提到Vim扩展功能,暗示其独特性。
      引用:The vim extension is such a flex...
  5. 对技术可能性的探讨

    • 评论7(sidewndr46)提出是否可能实现自生成程序(quine)的问题。
      引用:Does this mean a quine is possible?

总结:评论中对D2新功能表现出普遍的兴趣与期待,同时也对其功能、局限性和与其他技术的比较提出了讨论和质疑。