Перейти к основному содержимому

Инструкция по использованию скрипта fix-mdx-errors.sh

📋 Описание

Скрипт автоматически исправляет следующие ошибки в Markdown файлах Docusaurus:

  1. CRLF → LF - конвертирует окончания строк из Windows формата в Unix
  2. **<текст>**`<текст>` - экранирует угловые скобки, которые MDX воспринимает как HTML теги
  3. <русский текст>`<русский текст>` - экранирует все русские теги
  4. Дублирующиеся frontmatter - удаляет лишние блоки frontmatter
  5. ** Заголовок **## Заголовок - исправляет неправильные заголовки

🚀 Использование на Ubuntu сервере

1. Загрузка скрипта на сервер

# Копируем скрипт на сервер
scp fix-mdx-errors.sh admin@your-server:/home/admin/wiki-az-doc/

# Или создаем прямо на сервере
ssh admin@your-server
cd /home/admin/wiki-az-doc
nano fix-mdx-errors.sh
# Вставляем содержимое скрипта и сохраняем

2. Делаем скрипт исполняемым

cd /home/admin/wiki-az-doc
chmod +x fix-mdx-errors.sh

3. Запуск скрипта

Проверка без изменений (dry-run):

# Проверить все .md файлы в текущей директории
./fix-mdx-errors.sh --dry-run

# Проверить конкретную директорию
./fix-mdx-errors.sh docs/ --dry-run

# Проверить конкретный файл
./fix-mdx-errors.sh docs/1c-ut/chestnyi-znak/poln-instruks-chz/poln-instruks-chz.md --dry-run

Применение исправлений:

# Исправить все файлы в текущей директории рекурсивно
./fix-mdx-errors.sh

# Исправить конкретную директорию
./fix-mdx-errors.sh docs/

# Исправить конкретный файл
./fix-mdx-errors.sh docs/1c-ut/chestnyi-znak/poln-instruks-chz/poln-instruks-chz.md

# Подробный вывод
./fix-mdx-errors.sh docs/ --verbose

4. Пересборка проекта

После исправления ошибок:

# Очищаем кэш
npm run clear

# Пересобираем
npm run build

# Или через Docker
sudo docker compose -f docker-compose.production.yml up -d --build

📊 Примеры вывода

Dry-run режим:

╔══════════════════════════════════════════════════════════╗
║ Скрипт исправления ошибок MDX в Markdown файлах ║
║ для Docusaurus ║
╚══════════════════════════════════════════════════════════╝

📁 Путь для обработки: docs/

📄 Найдено файлов: 15
🔧 Режим: Просмотр (dry-run)

🔍 Будет исправлен: docs/1c-ut/chestnyi-znak/poln-instruks-chz/poln-instruks-chz.md
- CRLF → LF
- Экранированы угловые скобки <>

============================================================
📊 Статистика:
Всего файлов: 15
Исправлено: 1
Чистых файлов: 14
Применено исправлений: 2
============================================================

💡 Запустите без --dry-run для применения исправлений:
python3 fix-mdx-errors.sh docs/

Режим исправления:

📁 Путь для обработки: docs/

📄 Найдено файлов: 15
🔧 Режим: Исправление

✅ Исправлен: docs/1c-ut/chestnyi-znak/poln-instruks-chz/poln-instruks-chz.md

============================================================
📊 Статистика:
Всего файлов: 15
Исправлено: 1
Чистых файлов: 14
Применено исправлений: 2
============================================================

✅ Скрипт завершил работу успешно!

🔧 Автоматизация в CI/CD

Можно добавить скрипт в pipeline для автоматической проверки:

#!/bin/bash
# pre-build-check.sh

echo "Проверка MDX файлов перед сборкой..."

# Запускаем проверку
./fix-mdx-errors.sh docs/ --dry-run

# Если есть ошибки, исправляем
if [ $? -ne 0 ]; then
echo "Найдены ошибки, исправляем..."
./fix-mdx-errors.sh docs/
fi

# Собираем проект
npm run build

⚠️ Важные замечания

  1. Всегда делайте backup перед запуском скрипта
  2. Используйте --dry-run для предварительной проверки
  3. Проверяйте изменения через git diff после исправления
  4. Тестируйте сборку после применения исправлений

🐛 Решение проблем

Ошибка: Python3 не найден

sudo apt update
sudo apt install python3

Ошибка: Нет прав на выполнение

chmod +x fix-mdx-errors.sh

Скрипт не нашел файлы

# Укажите правильный путь
./fix-mdx-errors.sh /home/admin/wiki-az-doc/docs/

📞 Поддержка

При возникновении проблем проверьте:

  1. Версию Python3: python3 --version
  2. Права на файл: ls -l fix-mdx-errors.sh
  3. Путь к файлам: ls -la docs/**/*.md