mirror of
https://github.com/Llewellynvdm/conky.git
synced 2025-01-16 04:02:15 +00:00
f5b7106088
Fix alignment documentation: - while it renders fine on the web, it's stripped from man pages. Inline HTML renders fine in some cases, but tables don't. There's no unified (remark) plugin that works well with headless tables pandoc supports as well, so the only way to achieve a similar effect is to leave header cells empty. Signed-off-by: Tin Švagelj <tin.svagelj@live.com>
74 lines
1.7 KiB
TypeScript
74 lines
1.7 KiB
TypeScript
import fs from 'fs'
|
|
import path from 'path'
|
|
import yaml from 'js-yaml'
|
|
import { unified } from 'unified'
|
|
import remarkParse from 'remark-parse'
|
|
import remarkGfm from 'remark-gfm'
|
|
import remarkRehype from 'remark-rehype'
|
|
import rehypeStringify from 'rehype-stringify'
|
|
|
|
const DOC_PATH = path.join(process.cwd(), '..', 'doc')
|
|
|
|
export interface Documentation {
|
|
desc: string
|
|
desc_md: string
|
|
values: DocItem[]
|
|
}
|
|
export interface DocItem {
|
|
name: string
|
|
desc: string
|
|
desc_md: string
|
|
default: string | undefined
|
|
args: string[]
|
|
}
|
|
|
|
function getDocumentation(source: string): Documentation {
|
|
const configSettingsFile = fs.readFileSync(
|
|
path.join(DOC_PATH, source),
|
|
'utf-8'
|
|
)
|
|
const parsed = yaml.load(configSettingsFile.toString()) as Documentation
|
|
const docs = {
|
|
...parsed,
|
|
desc_md: processMarkdown(parsed.desc),
|
|
values: parsed.values.map((c) => ({
|
|
...c,
|
|
desc_md: processMarkdown(c.desc),
|
|
})),
|
|
}
|
|
|
|
return docs
|
|
}
|
|
|
|
export function filterDesc(docs: Documentation): Documentation {
|
|
return {
|
|
...docs,
|
|
desc: '',
|
|
values: docs.values.map((v) => ({
|
|
...v,
|
|
desc: '',
|
|
})),
|
|
}
|
|
}
|
|
|
|
export function getConfigSettings(): Documentation {
|
|
return getDocumentation('config_settings.yaml')
|
|
}
|
|
|
|
export function getVariables(): Documentation {
|
|
return getDocumentation('variables.yaml')
|
|
}
|
|
export function getLua(): Documentation {
|
|
return getDocumentation('lua.yaml')
|
|
}
|
|
|
|
function processMarkdown(input: string): string {
|
|
return unified()
|
|
.use(remarkParse)
|
|
.use(remarkGfm)
|
|
.use(remarkRehype, {allowDangerousHtml: true})
|
|
.use(rehypeStringify, {allowDangerousHtml: true})
|
|
.processSync(input)
|
|
.toString()
|
|
}
|