markdown linter for MoonBit
npm install @moonbit/markdown-linterThis is a Markdown linter for MoonBit. It gathers all MoonBit codes in Markdown, checks them using MoonBit's compiler, and reports any diagnostics.
To use the MoonBit Markdown Linter, you need to install the MoonBit compiler.
```
npm install -g @moonbit/markdown-linter
Create a markdown file fib.md, write some MoonBit code in code block:
# Fibonacci
Calculate the nth Fibonacci number using recursion and pattern matching.
`moonbit`
fn fib(n : Int) -> Int {
match n {
0 => 0
1 => true // type error here
_ => fib(n - 1) + fib(n - 2)
}
}
Check it by MoonBit markdown linter.
``
$ mdlint fib.md
fib.md:6:4-6:7 Warning 001: Unused function 'fib'
fib.md:9:14-9:18 Expr Type Mismatch
has type : Bool
wanted : Int
In file identity.md:
# Identity
`moonbit`
fn idT : Eq -> T {
x
}
You can also write expression directly.
`moonbit expr`
id(5)
Test function id.
`moonbit`
test "id" {
if id(5) != 5 { return Result::Err("test failed") }
}
Run test and evaluate the expression by mdlint:
`
$ mdlint identity.md
5
running 1 tests in package identity
test identity::id ... ok
test result: 1 passed; 0 failed
`
You can also disable checking for some code block by sepcifying no-check.
`moonbit no-check``
// some pseudo code
fn id(x : T) -> T
fn succ(x : T) -> T