#tnip #tnipv #telcoin #tnips

tnipv-lint

tnipv 的 lint 库,Telcoin 网络改进提案验证器

1 个不稳定版本

0.1.0 2024 年 8 月 12 日

#561Web 编程

Download history 111/week @ 2024-08-10

111 每月下载次数

MPL-2.0 许可证

220KB
5K SLoC

tnipv

markdown 提交的 TNIP 验证器。

这是 Telcoin 网络特有的 EIPW 实现。我们衷心感谢他们的努力,他们的代码质量以及他们的开源精神。

USAGE:
    tnipv [OPTIONS] [SOURCES]...

ARGS:
    <SOURCES>...    Files and/or directories to check

OPTIONS:
        --format <FORMAT>     Output format [default: text] [possible values: text, json]
    -h, --help                Print help information
        --lints <LINTS>       Additional lints to enable
        --list-lints          List all available lints
        --no-default-lints    Do not enable the default lints

演示

示例 TNIP

---
tnip: 2
description: A really short example of an TNIP.
title: Sample of an TNIP
author: Grant Kee (@grantkee)
discussions-to: https://forum.telcoin.org/t/great-feature/100
status: Living
type: Meta
created: 2022-06-30
---

## Specification

Implementers of this TNIP must...

## Abstract

This is an abstract!

输出

error[markdown-order-section]: section `Specification` must come after `Motivation`
  --> /tmp/demo.md
   |
12 | ## Specification
   |
error[preamble-order]: preamble header `description` must come after `title`
 --> /tmp/demo.md
  |
3 | description: A really short example of an TNIP.
  |

lints

id 描述
markdown-html-comments 审查就绪的 TNIP 中没有 HTML 注释。
markdown-json-cite 所有 csl-json 代码块都遵循正确的模式。
markdown-link-first 对 TNIP 的第一次提及必须是链接。
markdown-link-status 在正文中链接的 TNIP 的状态比当前提案更靠后。
markdown-order-section 没有额外的部分,部分顺序正确。
markdown-re-tnip-dash 其他 TNIP 使用 TNIP-X 引用,而不是 TNIPX 或 TNIP X。
markdown-rel-links 页面中的所有 URL 都是相对的。
markdown-req-section 提案正文中包含所需的部分。
markdown-headings-space 标题后有空格字符
preamble-author 作者标题格式正确,至少有一个 GitHub 用户列表。
preamble-date-created created 标题是日期。
preamble-date-last-call-deadline last-call-deadline 标题是日期。
preamble-discussions-to discussions-to 标题是有效的 URL。
preamble-tnip tnip 标题是非负整数。
preamble-enum-category category 标题是认可的价值。
preamble-enum-status status 标题是认可的价值。
preamble-enum-type type 标题是认可的价值。
preamble-file-name 文件名反映 TNIP 编号。
preamble-len-description description 标题不是太长。
preamble-len-title title 标题不是太长。
preamble-len-requires requires 标题至少有一个条目。
preamble-list-author author 标题是正确格式的逗号分隔列表。
preamble-list-requires requires 标题是正确格式的逗号分隔列表。
preamble-no-dup 没有重复的标题。
preamble-order 前言标题顺序正确。
preamble-re-description 描述不包含 "标准" 或类似词语。
前言-重新描述-冒号 描述中不包含任何 ":" 字符。
前言-重新描述-tnip-破折号 描述 标题中引用的 TNIP 使用破折号。
前言-重新讨论-到 讨论到 标题指向 Telcoin 论坛。
前言-标题 标题不包含 "标准" 或类似词汇。
前言-标题-冒号 标题不包含任何 ":" 字符。
前言-标题-tnip-破折号 标题 标题中引用的 TNIP 使用破折号。
前言-要求 所有必需的前言标题都存在。
前言-要求-类别 当需要时,存在 类别 标题。
前言-要求-最后调用截止日期 当需要时,存在 最后调用截止日期 标题。
前言-要求-撤回原因 当需要时,存在 撤回原因 标题。
前言-要求-引用描述 描述 标题中提到的提案出现在 要求 标题中。
前言-要求-引用标题 标题 标题中提到的提案出现在 要求 标题中。
前言-要求-状态 要求 中列出的 TNIP 的状态比当前提案更进。
前言-修剪 前言字段周围没有多余的空白。
前言-无符号整数要求 要求 标题是非负整数的排序列表。

JavaScript / WebAssembly

tnipv-lint-jstnipv 作为 npm 包打包,用于 JavaScript / TypeScript。

您可以在 npm 上找到这个包

构建 & 发布

cd tnipv-lint-js
wasm-pack test --node
wasm-pack build -t nodejs
wasm-pack publish -t nodejs

依赖关系

~15–24MB
~389K SLoC