Skip to content
Snippets Groups Projects
Unverified Commit f2a86992 authored by Michael Kriese's avatar Michael Kriese Committed by GitHub
Browse files

docs: separate pages for datasources (#19611)

parent a1e0f379
No related branches found
No related tags found
No related merge requests found
title: Datasources
nav:
- Introduction: index.md
- ...
collapse_single_pages: true
order: asc
sort_type: natural
import { codeBlock } from 'common-tags';
import { getDatasources } from '../../lib/modules/datasource'; import { getDatasources } from '../../lib/modules/datasource';
import { readFile, updateFile } from '../utils'; import { readFile, updateFile } from '../utils';
import { import {
formatDescription, formatDescription,
formatUrls, formatUrls,
getDisplayName, getDisplayName,
getModuleLink,
replaceContent, replaceContent,
} from './utils'; } from './utils';
export async function generateDatasources(dist: string): Promise<void> { export async function generateDatasources(dist: string): Promise<void> {
const dsList = getDatasources(); const dsList = getDatasources();
let datasourceContent = let datasourceContent = '\nSupported values for `datasource` are:\n\n';
'\nSupported values for `datasource` are: ' +
[...dsList.keys()].map((v) => `\`${v}\``).join(', ') +
'.\n\n';
for (const [datasource, definition] of dsList) { for (const [datasource, definition] of dsList) {
const { const {
id, id,
...@@ -22,32 +22,44 @@ export async function generateDatasources(dist: string): Promise<void> { ...@@ -22,32 +22,44 @@ export async function generateDatasources(dist: string): Promise<void> {
defaultVersioning, defaultVersioning,
} = definition; } = definition;
const displayName = getDisplayName(datasource, definition); const displayName = getDisplayName(datasource, definition);
datasourceContent += `\n### ${displayName} Datasource\n\n`; datasourceContent += `* ${getModuleLink(
datasourceContent += `**Identifier**: \`${id}\`\n\n`; datasource,
`\`${datasource}\``
)}\n`;
let md = codeBlock`
---
title: ${displayName}
---
# ${displayName} Datasource
`;
md += '\n\n';
md += `**Identifier**: \`${id}\`\n\n`;
if (defaultVersioning) { if (defaultVersioning) {
datasourceContent += `**Default versioning**: \`${defaultVersioning}\`\n\n`; md += `**Default versioning**: \`${defaultVersioning}\`\n\n`;
} else { } else {
datasourceContent += `**Default versioning**: no default versioning\n\n`; md += `**Default versioning**: no default versioning\n\n`;
} }
datasourceContent += formatUrls(urls); md += formatUrls(urls);
datasourceContent += `**Custom registry support**: \n\n`; md += `**Custom registry support**: \n\n`;
if (customRegistrySupport) { if (customRegistrySupport) {
datasourceContent += `✅ Custom registries are supported.\n\n`; md += `✅ Custom registries are supported.\n\n`;
} else { } else {
datasourceContent += `❌ No custom registry support.\n\n`; md += `❌ No custom registry support.\n\n`;
} }
datasourceContent += await formatDescription('datasource', datasource); md += await formatDescription('datasource', datasource);
if (defaultConfig) { if (defaultConfig) {
datasourceContent += md +=
'**Default configuration**:\n\n```json\n' + '**Default configuration**:\n\n```json\n' +
JSON.stringify(defaultConfig, undefined, 2) + JSON.stringify(defaultConfig, undefined, 2) +
'\n```\n'; '\n```\n';
} }
datasourceContent += `\n----\n\n`; await updateFile(`${dist}/modules/datasource/${datasource}/index.md`, md);
} }
let indexContent = await readFile(`docs/usage/modules/datasource.md`);
let indexContent = await readFile(`docs/usage/modules/datasource/index.md`);
indexContent = replaceContent(indexContent, datasourceContent); indexContent = replaceContent(indexContent, datasourceContent);
await updateFile(`${dist}/modules/datasource.md`, indexContent); await updateFile(`${dist}/modules/datasource/index.md`, indexContent);
} }
import { getPlatformList } from '../../lib/modules/platform'; import { getPlatformList } from '../../lib/modules/platform';
import { readFile, updateFile } from '../utils'; import { readFile, updateFile } from '../utils';
import { replaceContent } from './utils'; import { getModuleLink, replaceContent } from './utils';
function getModuleLink(module: string, title: string): string {
return `[${title ?? module}](${module}/)`;
}
export async function generatePlatforms(dist: string): Promise<void> { export async function generatePlatforms(dist: string): Promise<void> {
let platformContent = 'Supported values for `platform` are: '; let platformContent = 'Supported values for `platform` are: ';
......
...@@ -67,3 +67,7 @@ export async function formatDescription( ...@@ -67,3 +67,7 @@ export async function formatDescription(
} }
return `**Description**:\n\n${content}\n`; return `**Description**:\n\n${content}\n`;
} }
export function getModuleLink(module: string, title: string): string {
return `[${title ?? module}](${module}/)`;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment