#rhai #文档 #生成文档 #文档工具 #脚本 #脚本语言 #生成HTML

app rhai-doc

Rhai文档工具 - Rhai是一个嵌入式的Rust脚本语言和引擎

5个版本

0.2.4 2022年12月1日
0.2.3 2022年9月30日
0.2.2 2022年3月15日
0.2.1 2021年8月1日
0.2.0 2021年5月6日

#4 in #生成HTML

MIT/Apache

70KB
724

rhai-doc - 从Rhai脚本文件生成HTML文档

License crates.io crates.io

rhai-doc是一个用于自动生成Rhai脚本文档的工具。

它支持在Rhai脚本的文档注释中编写Markdown文档,并创建通用文档页面。

示例请参见这里

命令行界面

USAGE:
    rhai-doc.exe [OPTIONS] [SUBCOMMAND]

OPTIONS:
    -a, --all              Generate documentation for all functions, including private ones
    -c, --config <FILE>    Set the configuration file [default: rhai.toml]
    -d, --dir <DIR>        Set the Rhai scripts (*.rhai) directory [default: .]
    -D, --dest <DIR>       Set the destination for the documentation output [default: dist]
    -h, --help             Print help information
    -p, --pages <DIR>      Set the directory where MarkDown (*.md) pages files are located [default:
                           pages]
    -v, --verbose          Use multiple to set the level of verbosity: 1 = silent, 2 (default) =
                           full, 3 = debug
    -V, --version          Print version information

SUBCOMMANDS:
    help    Print this message or the help of the given subcommand(s)
    new     Generates a new configuration file

安装

crates.io安装

cargo install rhai-doc

从源代码安装

cargo install --path .

配置文件

要开始,你需要一个配置文件。

通常命名为rhai.toml,或者你可以通过--config选项指定。

要生成一个rhai.toml骨架,使用new命令

rhai-doc new

示例

version = "1.0"                         # version of this TOML file
name = "My Rhai Project"                # project name
color = [246, 119, 2]                   # theme color
root = "/docs/"                         # root URL for generated site
index = "home.md"                       # this file becomes 'index.html`
icon = "logo.svg"                       # project icon
stylesheet = "my_stylesheet.css"        # custom stylesheet
code_theme = "atom-one-light"           # 'highlight.js' theme
code_lang = "ts"                        # default language for code blocks
extension = "rhai"                      # script extension
google_analytics = "G-ABCDEF1234"       # Google Analytics ID

[[links]]                               # external link for 'Blog'
name = "Blog"
link = "https://example.com/blog"

[[links]]                               # external link for 'Tools'
name = "Tools"
link = "https://example.com/tools"

配置选项

  • version:此TOML文件的版本;1.0是当前版本。
  • name:项目的名称(如果有的话)。它是文档页面显示的标题。
  • color:生成的文档主题颜色的RGB值(如果有的话)。
  • root:文档中生成的根URL(如果有的话)。
  • index:主Markdown文件(如果有的话),将成为index.html
  • icon:自定义图标文件的路径(如果有的话)。
  • stylesheet:自定义样式的路径(如果有的话)。
  • code_theme:代码块中的语法高亮主题(默认 default),由 highlight.js 提供。
  • code_lang:代码块的默认语言(默认 ts)。
  • extension:脚本文件 rhai-doc 将查找的扩展名(默认 .rhai)。
  • google_analytics:如果有,提供 Google Analytics ID。
  • [[links]]:如果有,提供其他相关网站的外部链接。
    • name:外部链接的标题。
    • link:外部链接的 URL。

文档注释

Rhai 支持在脚本定义的 函数 中使用 doc-comments 格式在 Markdown 中。

/// This function calculates a **secret number**!
///
/// Formula provided from this [link](https://secret_formula.com/calc_secret_number).
///
/// # Scale Factor
/// Uses a scale factor obtained by calling [`get_contribution_factor`].
///
/// # Parameters
/// `seed` - random seed to start the calculation
///
/// # Returns
/// The secret number!
///
/// # Exceptions
/// Throws when the seed is not positive.
///
/// # Example
/// ```
/// let secret = calc_secret_number(42);
/// ```
fn calc_secret_number(seed) {
    if seed <= 0 {
        throw "the seed must be positive!";
    }

    let factor = get_contribution_factor(seed);

    // Some very complex code skipped ...
    // ...
}

/// This function is private and will not be included
/// unless the `-a` flag is used.
private fn get_multiply_factor() {
    42
}

/// This function calculates a scale factor for use
/// in the [`calc_secret_number`] function.
fn get_contribution_factor(x) {
    x * get_multiply_factor()
}

语法高亮

highlight.js 用于代码块中的语法高亮。

代码块的默认语言是 ts(即 TypeScript)。选择此默认值是因为 Rhai 语法主要类似于 JavaScript/TypeScript,并且字符串插值的高亮效果良好。

函数文档可以在同一脚本文件中相互交叉链接。

格式为 [`my_func`] 的链接将自动展开为链接到目标函数的文档(在这种情况下为 my_func)。

Markdown 页面

默认情况下,rhai-doc 将从脚本目录下的 pages 子目录中的 Markdown 文档生成文档页面。

或者,您可以通过 --pages 选项指定其他位置。

功能

  • Rhai 脚本文件中的 Markdown doc-comments 生成文档。
  • 创建通用文档页面。
  • 文本搜索。
  • 未记录的函数、参数等的代码检查器。

许可

以下任一许可下,您可以选择

除非明确说明,否则任何有意提交以包含在此包中的贡献,根据 Apache-2.0 许可证定义,应如上所述双重许可,而无需任何附加条款或条件。

依赖项

~10MB
~182K SLoC