forked from denoland/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlint_rule.page.tsx
More file actions
39 lines (31 loc) · 896 Bytes
/
lint_rule.page.tsx
File metadata and controls
39 lines (31 loc) · 896 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { extractYaml } from "@std/front-matter";
import { walkSync } from "@std/fs/walk";
import { basename } from "@std/path";
export { sectionHref, sidebar } from "./_data.ts";
export const sectionTitle = "Lint rules";
export const layout = "lintRule.tsx";
export const toc = [];
export default function* (_data: Lume.Data, helpers: Lume.Helpers) {
const files = walkSync("lint/rules/", { exts: [".md"] });
for (const file of files) {
const content = Deno.readTextFileSync(file.path);
let fmData = {
body: "",
attrs: {},
};
try {
fmData = extractYaml(content);
} catch {
fmData.body = content;
}
const ruleName = basename(file.path).slice(0, -3);
yield {
url: `/lint/rules/${ruleName}/`,
title: ruleName,
content: helpers.md(fmData.body),
data: {
tags: fmData.attrs.tags,
},
};
}
}