rewrite: Vite+React → Astro 5 + Content Collections
Some checks failed
deploy / deploy (push) Failing after 12s

- Бэкап старой версии на ветке vite-react-backup
- Stack: Astro 5 + nginx:alpine runtime, образ ~50 МБ (был ~600 МБ)
- @astrojs/rss заменён ручным buildRss() — гарантия CDATA в content:encoded для IPB Importer
- @astrojs/sitemap → sitemap-index.xml + sitemap.txt
- 152-ФЗ cookie consent + privacy.astro + Analytics с gating
- AI-файлы: robots.txt с явным allow для AI-краулеров, ai.txt, llms.txt
- Гибридный визуал: фото-фон шапки (аэрофото Пушкино) + PT Serif + IBM Plex Sans
- Иерархия: hero "Главная история" с рамкой + "Ещё из истории" + "Хроника"
- Категория "main" (псевдо) скрыта из плашек и из Рубрик в сайдбаре
- hideFromList: true для технических постов
- featuredImage в frontmatter для постов без хорошей первой <img>
- WP resized-URL (-WxH.ext) автоматически → оригинал
- CI/CD: .gitea/workflows/deploy.yml (push → SSH-build)
- Внешние RSS: scripts/pull-external-rss.mjs пишет news.json в bind-mount, фронт фетчит client-side
This commit is contained in:
striker
2026-05-21 03:21:31 +03:00
parent a0219ee8f3
commit c65e07cd98
75 changed files with 5926 additions and 4142 deletions

View File

@@ -1,33 +1,28 @@
{
"name": "pushkinohistory-ru-v2",
"version": "0.1.0",
"description": "История города Пушкино — статический сайт + RSS",
"private": true,
"type": "module",
"version": "0.2.0",
"private": true,
"engines": {
"node": ">=22.12.0"
},
"scripts": {
"dev": "vite",
"build": "vite build && node scripts/build-slugs.js && node scripts/build-sitemap.js && node scripts/build-rss.js",
"build:prerender": "vite build && node scripts/build-slugs.js && node scripts/build-sitemap.js && node scripts/build-rss.js && node scripts/prerender.js",
"prerender": "node scripts/prerender.js",
"preview": "vite preview",
"start": "node server/index.js",
"pull-rss": "node scripts/pull-external-rss.js"
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@fontsource/pt-serif": "^5.2.5",
"@astrojs/rss": "^4.0.12",
"@astrojs/sitemap": "^3.6.0",
"@fontsource/ibm-plex-sans": "^5.2.5",
"compression": "^1.7.5",
"express": "^4.21.2",
"fast-xml-parser": "^4.5.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
"@fontsource/pt-serif": "^5.2.5",
"astro": "^6.3.6",
"sanitize-html": "^2.17.0"
},
"devDependencies": {
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"postcss": "^8.4.49",
"puppeteer": "^23.10.4",
"tailwindcss": "^3.4.17",
"vite": "^6.0.5"
"@types/sanitize-html": "^2.16.0",
"fast-xml-parser": "^4.5.0",
"sharp": "^0.34.5"
}
}