Tldraw/scripts/docs-gen.js

45 wiersze
1.0 KiB
JavaScript

// @ts-check
/*
This script will generate content for the code editor's markdown docs. To change
the docs, edit the file at `state/code/docs.md`.
*/
const fs = require('fs/promises')
const root = process.cwd()
async function inlineFileContents(path) {
console.log(`📄 Inlining contents of ${path}`)
const text = await fs.readFile(`${root}${path}`, 'utf-8')
return text.replaceAll('`', '\\`')
}
async function copyDocsToDocsContentFile() {
console.log('⚙️ Generating docs-content.ts')
const content =
`
/* eslint-disable */
// HEY! DO NOT MODIFY THIS FILE. THE CONTENTS OF THIS FILE
// ARE AUTO-GENERATED BY A SCRIPT AT: /scripts/docs-gen.js
// ANY CHANGES WILL BE LOST WHEN THE SCRIPT RUNS AGAIN!
export default {` +
`
name: "docs-content.ts",
content: \`
${await inlineFileContents('/state/code/docs.md')}
\`}`
await fs.writeFile(
__dirname + '/../components/code-panel/docs-content.ts',
content
)
console.log('✅ Process complete')
}
// Kickoff
copyDocsToDocsContentFile()