Files

77 lines
2.0 KiB
JavaScript

import fs from 'fs';
import yaml from 'yaml';
const configs = {
'article': {
routing: '/articles/{slug}/',
chronological: true,
caps: ['detail-page', 'index-page', 'rss', 'search']
},
'devlog': {
routing: '/devlogs/{slug}/',
chronological: true,
caps: ['detail-page', 'index-page', 'rss', 'search']
},
'discussion': {
routing: '/discussions/{slug}/',
chronological: true,
caps: ['detail-page', 'index-page', 'rss', 'search']
},
'documentation': {
routing: '/docs/{slug}/',
chronological: false,
caps: ['detail-page', 'index-page', 'search']
},
'page': {
routing: '/{slug}/',
chronological: false,
caps: ['detail-page', 'search']
},
'project': {
routing: '/projects/{slug}/',
chronological: false,
caps: ['detail-page', 'index-page', 'search']
},
'release': {
routing: '/releases/{slug}/',
chronological: true,
caps: ['detail-page', 'index-page', 'rss', 'search']
},
'wiki': {
routing: '/wiki/{slug}/',
chronological: false,
caps: ['detail-page', 'index-page', 'search']
}
};
for (const modelId of Object.keys(configs)) {
const p = `packages/content-models/${modelId}/model.yml`;
if (!fs.existsSync(p)) continue;
const file = fs.readFileSync(p, 'utf8');
const data = yaml.parse(file);
const conf = configs[modelId];
const newData = {
id: data.id,
kind: 'content-model',
name: data.name,
description: data.description,
semantics: {
document: true,
chronological: conf.chronological,
searchable: true,
indexable: true
},
routing: {
detail: conf.routing
},
presentation: {
default_style_config: data.defaultStyleConfig || 'article'
},
capabilities: conf.caps
};
fs.writeFileSync(p, yaml.stringify(newData));
}