| 221 | } |
| 222 | |
| 223 | function collectMarkdownSlugs(dir) { |
| 224 | return fs |
| 225 | .readdirSync(dir, { withFileTypes: true }) |
| 226 | .filter((entry) => entry.isFile() && entry.name.endsWith(".md")) |
| 227 | .map((entry) => { |
| 228 | const basename = entry.name.slice(0, -".md".length); |
| 229 | return { |
| 230 | slug: basename, |
| 231 | entry: basename === "readme" ? "readme.md" : basename, |
| 232 | }; |
| 233 | }) |
| 234 | .filter((file) => file.slug.length > 0) |
| 235 | .sort((a, b) => a.slug.localeCompare(b.slug, "en")); |
| 236 | } |
| 237 | |
| 238 | function collectRefs(block) { |
| 239 | const refs = []; |