/
slagutin
/
eshop-edu
ОбзорДокументацияВойти
/
slagutin
/
eshop-edu
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
ДокументацияПоддержка
Политика конфиденциальностиПользовательское соглашениеПолитика использования «cookies»Согласие субъекта персональных данных
2026 ©
eshop-edu/
scripts/hooks/
..
class-mmd-to-readme.js

init commit

2 месяца назад
er-mmd-to-readme.js

init commit

2 месяца назад
generate-puml-diagrams.js

init commit

2 месяца назад
class-mmd-to-readme.js
const fs = require('fs');
const path = require('path');
 
const ROOT_DIR = path.join(__dirname, '..', '..');
const README_PATH = path.join(ROOT_DIR, 'diagrams/class/README.md');
const DIAGRAMS = [
{ key: 'class-cart', file: 'diagrams/class/class-cart.mmd' },
{ key: 'class-product', file: 'diagrams/class/class-product.mmd' }
];
 
let readme = fs.readFileSync(README_PATH, 'utf8');
let hasChanges = false;
 
DIAGRAMS.forEach(({ key, file }) => {
const filePath = path.join(ROOT_DIR, file);
if (!fs.existsSync(filePath)) {
console.log(`Class: Файл ${path.relative(ROOT_DIR, file)} не найден`);
process.exit(1);
}
 
const mmdContent = fs.readFileSync(filePath, 'utf8').trim();
const mermaidBlock = `\`\`\`mermaid\n${mmdContent}\n\`\`\``;
 
const startTag = `<!-- MERMAID_START:${key} -->`;
const endTag = `<!-- MERMAID_END:${key} -->`;
const regex = new RegExp(`${startTag}[\\s\\S]*?${endTag}`, 'g');
 
if (regex.test(readme)) {
const newContent = `${startTag}\n${mermaidBlock}\n${endTag}`;
const oldMatch = readme.match(regex)?.[0] || '';
if (oldMatch !== newContent) {
readme = readme.replace(regex, newContent);
fs.writeFileSync(README_PATH, readme, 'utf8');
console.log('Class: README.md обновлен');
}
else
console.log('Class: README.md не требует обновлений');
} else {
console.log(`Class: Маркеры для ${key} не найдены в README.md`);
process.exit(1);
}
});