Многоязычный блог Svelte Markdown
16.04.2023
Особенности
- Многоязычный блог в формате Markdown
- Не требуется база данных
- Удобная организация с помощью структуры папок /static
- Frontmatter для указания названия поста, даты создания, тегов, видимости и отображения на главной странице
- Автоматическое определение иллюстраций постов на основе названия папки
- Удобный для мобильных устройств отзывчивый дизайн с меню бургера
- Посты сортируются по дате на главной странице и внутри блога
- Поддержка тегов для постов
- Простой автопостинг для планирования постов на определенные даты
- SEO оптимизация с помощью Server Site Generation (SSG)
- Поддержка смены темных и светлых тем
- Простое управление контентом через github с любого устройства (при использовании Vercel или аналогичного CD/CI)
- Два типа i18n: 1) на основе домена: site.com & site.kg, 2) на основе пути: site.org/en & site.org/kg
Расширенные возможности (требуется БД)
- Голосование за и против поста (для этой функции вам действительно нужна БД, мы используем, например, Deta)
- Комменты к постам
Супер продвинутые функции с ИИ (интеграция с chatGPT)
- Очень быстрая базовая автоматическая модерация через chatGPT (в среднем 1-5 сек.). Позволяет отсечь грубое нарушение этики.
- Длительное Расширенное обнаружение СПАМа (в среднем занимает 20-60 сек., для длительных фоновых задач нужен аккаунт Vercel Pro или аналогичный)
Todo
- Оптимизируйте загрузку изображений
- Различные размеры изображений для предварительного просмотра и для полной статьи
- Перевести страницу проекта
- Перенести переводы в отдельный файл t.js для более удобного запуска.
(сделано) Добавить возможность изменения языка через локальное хранилище или через домен (/en).- Добавить возможность полной статической прегенерации (только для i18n на основе домена, потому что нужно изменить маршрутизацию на /[lang]/)
- Добавить поддержку пользовательских тем
(сделано) Теперь у нас есть i18n на основе домена, добавьте git-ветку для альтернативного i18n с путем (/[lang]/).- Добавьте мета-тег на все страницы (не только на блог).
- Установить ограничения: по ip, времени, размеру.
- Помечать пост как СПАМ не только после перезагрузки страницы
- Если длительное обнаружение СПАМа не удается из-за таймаута - пометьте эти сообщения как подозрительные
Ссылки
Рабочая демонстрация: https://lazarevsky.com