GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — docs/script/standardize-frontmatter-order.js at main · runningcode/docs Expand file tree/ Copy pathstandardize-frontmatter-order.jsMore file actions executable file ·42 lines (35 loc) · 1.08 KB / Copy pathstandardize-frontmatter-order.jsFile metadata and controlsexecutable file ·42 lines (35 loc) · 1.08 KB 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 40 41 42 #!/usr/bin/env node // [start-readme] // // Run this script to standardize frontmatter fields in all content files, // per the order: // - title // - intro // - product callout // - productVersion // - map topic status // - hidden status // - layout // - redirect // // [end-readme] import { fileURLToPath } from 'url' import path from 'path' import fs from 'fs' import walk from 'walk-sync' import matter from 'gray-matter' import { schema } from '../lib/frontmatter.js' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const properties = Object.keys(schema.properties) const contentDir = path.join(__dirname, '../content') const contentFiles = walk(contentDir, { includeBasePath: true }).filter( (relativePath) => relativePath.endsWith('.md') && !relativePath.includes('README') ) contentFiles.forEach((fullPath) => { const { content, data } = matter(fs.readFileSync(fullPath, 'utf8')) const newData = {} properties.forEach((prop) => { if (data[prop]) newData[prop] = data[prop] }) fs.writeFileSync(fullPath, matter.stringify(content, newData, { lineWidth: 10000 })) }) |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |