10 个版本

0.1.10 2021 年 7 月 2 日
0.1.9 2021 年 6 月 25 日
0.1.8 2021 年 5 月 18 日
0.1.5 2021 年 4 月 30 日
0.1.2 2021 年 2 月 18 日

#567开发工具

每月 27 次下载
atelier_lib 中使用

MIT 许可证

445KB
8K SLoC

Atelier: crate atelier_describe

提供为 Smithy 模型编写文档的能力。

crates.io docs.rs

此crate提供两种机制,使用crate somedoc 生成Smithy模型的可读文档。

首先,DocumentationWriter 结构实现了 atelier_core::io::ModelWriter trait,因此可以使用与其他模型编写器相同的方式进行使用。 ModelWriter::new 函数接收一个参数,表示要生成的格式,但提供很少的控制来生成。在内部,此编写器实现调用以下函数。

describe_model 函数将根据 atelier_core::modrel::Model 生成一个 somedoc::model::Document 实例。然后,可以使用somedoc提供的编写器进行渲染。这提供了对实际格式化步骤的完全控制,并且如果需要,可以多次写入生成的文档。

示例

以下演示了如何使用 describe_model 函数。

use atelier_core::model::Model;
use atelier_describe::describe_model;
use somedoc::write::{write_document_to_string, OutputFormat};

let model = make_model();

let documentation = describe_model(&model).unwrap();

let doc_string = write_document_to_string(&documentation, OutputFormat::Html).unwrap();

以下示例演示了 ModelWriter trait 并输出文档,格式为 CommonMark,到标准输出。

use atelier_core::model::Model;
use atelier_core::io::ModelWriter;
use atelier_describe::DocumentationWriter;
use std::io::stdout;

let model = make_model();

let mut writer = DocumentationWriter::default();

let documentation = writer.write(&mut stdout(), &model).unwrap();

更改

版本 0.1.10

  • 为成员形状添加了对 HasIdentity trait 的使用。

版本 0.1.9

  • 将 MemberShape 的 ID 从 ShapeID 改为 Identifier。这既符合 Smithy IDL 的正式 BNF,也符合 JSON AST 的用法。

版本 0.1.8

  • 完成了所有形状/成员的特型表。
  • 为成员定义添加了一些额外的格式化,以增加缩进。

版本 0.1.7

  • 支持在抽象模型中添加到服务形状的 "renames" 集合。

版本 0.1.6

  • 支持核心模型构建器,现在使用 TryFrom 而不是 From。
  • 使用新的共享 atelier-test crate。

版本 0.1.5

  • 重构以具有与其他读者/写入器 crate 相似的结构。
  • 将 GraphML 和 PlantUML 从 lib 移动到这个 crate 中。

版本 0.1.4

  • 由于核心中的特型 API 更改而更新。

版本 0.1.3

  • 重构 DocumentationWriter,使其仅输出 CommonMark,与 Smithy IDL 更为紧密地匹配。

版本 0.1.1

  • 修复:提高了 somedoc 依赖项的版本。

版本 0.1.1

  • 修复:移除了 somedoc 的本地路径依赖。

版本 0.1.0

这个初始版本尽管不完整,但基本可用。

待办事项

  1. 完成预置和自定义特型输出。
  2. 测试用例。

依赖项

~6–8.5MB
~155K SLoC