diff --git a/package.json b/package.json index 40aa4ef..1240657 100644 --- a/package.json +++ b/package.json @@ -20,21 +20,21 @@ "dependencies": { "@astrojs/check": "^0.9.6", "@astrojs/cloudflare": "^12.6.12", + "@astrojs/node": "^9.5.2", "@astrojs/rss": "^4.0.15", "@astrojs/sitemap": "^3.7.0", "@astrojs/svelte": "7.2.5", "@astrojs/vercel": "^9.0.4", - "@astrojs/node": "^9.5.2", "@expressive-code/core": "^0.41.6", "@expressive-code/plugin-collapsible-sections": "^0.41.6", "@expressive-code/plugin-line-numbers": "^0.41.6", "@fancyapps/ui": "^6.1.10", "@fontsource-variable/jetbrains-mono": "^5.2.8", "@fontsource/roboto": "^5.2.9", + "@iconify-json/devicon": "^1.2.5", "@iconify-json/fa6-brands": "^1.2.6", "@iconify-json/fa6-regular": "^1.2.4", "@iconify-json/fa6-solid": "^1.2.4", - "@iconify-json/devicon": "^1.2.5", "@iconify-json/game-icons": "^1.2.3", "@iconify-json/hugeicons": "^1.2.18", "@iconify-json/iconoir": "^1.2.10", @@ -43,6 +43,7 @@ "@iconify-json/material-symbols": "^1.2.53", "@iconify-json/mdi": "^1.2.3", "@iconify-json/mingcute": "^1.2.5", + "@iconify-json/simple-icons": "^1.2.93", "@iconify-json/skill-icons": "^1.2.3", "@iconify-json/vscode-icons": "^1.2.40", "@swup/astro": "^1.7.0", @@ -88,13 +89,13 @@ "devDependencies": { "@astrojs/ts-plugin": "^1.10.6", "@biomejs/biome": "2.3.13", + "@iconify/utils": "^2.3.0", "@rollup/plugin-yaml": "^4.1.2", "@types/hast": "^3.0.4", "@types/markdown-it": "^14.1.2", "@types/mdast": "^4.0.4", "@types/sanitize-html": "^2.16.0", - "postcss-import": "^16.1.1", - "@iconify/utils": "^2.3.0" + "postcss-import": "^16.1.1" }, "packageManager": "pnpm@9.14.4" } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 386ac30..402ac3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,6 +83,9 @@ importers: '@iconify-json/mingcute': specifier: ^1.2.5 version: 1.2.7 + '@iconify-json/simple-icons': + specifier: ^1.2.93 + version: 1.2.93 '@iconify-json/skill-icons': specifier: ^1.2.3 version: 1.2.4 @@ -1383,6 +1386,9 @@ packages: '@iconify-json/mingcute@1.2.7': resolution: {integrity: sha512-bp4z6F53KAQp99aSL7qPCHL7HWUNGMNKIhfo/dx9pwVHiad/WusUbTOFXEZfpA44syJPzSOxa3O6Pwiq7qZz1g==} + '@iconify-json/simple-icons@1.2.93': + resolution: {integrity: sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==} + '@iconify-json/skill-icons@1.2.4': resolution: {integrity: sha512-S6iRKHGlGCb/zfx3Isv1TBe5PunbDE5FEwJcaXji60+yRZMrcFFtYEI1xivKqaGKXyVZ508yjGDItsehQdJmSg==} @@ -6927,6 +6933,10 @@ snapshots: dependencies: '@iconify/types': 2.0.0 + '@iconify-json/simple-icons@1.2.93': + dependencies: + '@iconify/types': 2.0.0 + '@iconify-json/skill-icons@1.2.4': dependencies: '@iconify/types': 2.0.0 diff --git a/scripts/collect-icons.mjs b/scripts/collect-icons.mjs index a5f5fdd..fdf5014 100644 --- a/scripts/collect-icons.mjs +++ b/scripts/collect-icons.mjs @@ -27,6 +27,7 @@ const KNOWN_PREFIXES = new Set([ "material-icon-theme", "game-icons", "iconoir", + "simple-icons", ]); const ICON_PATTERN = diff --git a/scripts/generate-site-icons.mjs b/scripts/generate-site-icons.mjs index 985698c..a61e8c8 100644 --- a/scripts/generate-site-icons.mjs +++ b/scripts/generate-site-icons.mjs @@ -24,6 +24,7 @@ const PACKAGE_BY_PREFIX = { "material-icon-theme": "@iconify-json/material-icon-theme", "game-icons": "@iconify-json/game-icons", iconoir: "@iconify-json/iconoir", + "simple-icons": "@iconify-json/simple-icons", }; function loadIconSet(prefix) { diff --git a/src/content/posts/о-моём-опыте-с-matrix-на-локальном-сервере.md b/src/content/posts/о-моём-опыте-с-matrix-на-локальном-сервере.md index add75b5..a80f5ee 100644 --- a/src/content/posts/о-моём-опыте-с-matrix-на-локальном-сервере.md +++ b/src/content/posts/о-моём-опыте-с-matrix-на-локальном-сервере.md @@ -5,15 +5,16 @@ cover: /images/screenshot_4.png tags: [] draft: false --- + В какой-то момент блокировки Telegram достали меня и моих близких окончательно. \ \ Непоймите меня неправильно - тот кто хочет всегда найдёт обходной путь, но постоянно изобретать велосипед, который ломается каждый раз, когда тебе срочно нужно с кем-то связаться очень утомляет. Поэтому я начал искать альтернативы. \ \ Раз уж у меня есть сервер и домен, было бы логичным придумать решение, которое бы смогло хотя бы частично заменить Telegram, при этом сохранив нашу приватность. Выбор пал на протокол Matrix, а если конкретнее то на основную его реализацию - сервер [Synapse](https://github.com/matrix-org/synapse) и клиенты [Element](https://element.io) (Web) и [Element X](https://github.com/element-hq/element-x-android) (Android). -По разумным причинам сервер было решено сделать приватным и отрезанным от общей сети Matrix - получился доступ только для "своих". Для управления пользователями отлично подошёл [Synapse Admin](https://github.com/Awesome-Technologies/synapse-admin). Более подробную настройку вы можете посмотреть в моём репозитории посвящённому домашнему серверу. \ +По разумным причинам сервер было решено сделать приватным и отрезанным от общей сети Matrix - получился доступ только для "своих". Для управления пользователями отлично подошёл [Synapse Admin](https://github.com/Awesome-Technologies/synapse-admin). Более подробную настройку вы можете посмотреть в моём репозитории посвящённому домашнему серверу. ::github{repo="StepanovPlaton/HomeServerServices"} \ Искушённым пользователям такая замена покажется неудобной. Нету привычных всем кружков и стикеров. Даже поиск по сообщениям, и тот работает через всем известное место. Но даже такая альтернатива лучше постоянных проблем с подключением и доступностью сервиса. -В заключении скажем, что опыт получился удачный. Сервер стабильно работает уже более полу года и разросся до пары десятков пользователей - близких круг друзей и родственников. Могу рекомендовать тем, кто ищет способ всегда оставаться на связи +В заключении скажем, что опыт получился удачный. Сервер стабильно работает уже более полу года и разросся до пары десятков пользователей - близкий круг друзей и родственников. Могу рекомендовать тем, кто ищет способ всегда оставаться на связи diff --git a/src/content/projects/https-github-com-stepanovplaton-brainfuckrisc-v.json b/src/content/projects/brainfuckrisc-v.json similarity index 93% rename from src/content/projects/https-github-com-stepanovplaton-brainfuckrisc-v.json rename to src/content/projects/brainfuckrisc-v.json index 6361d9b..1fddcab 100644 --- a/src/content/projects/https-github-com-stepanovplaton-brainfuckrisc-v.json +++ b/src/content/projects/brainfuckrisc-v.json @@ -8,7 +8,7 @@ "ASM" ], "status": "completed", - "title": "BrainFuckRISC-V", + "title": "BrainFuck RISC-V", "tags": [], "description": "Интерпретатор языка Brainfuck на ассемблере RISC-V (RV32I). 300 байт и никакого мошенничества!", "category": "actual" diff --git a/src/content/projects/openprojectboardwidgets.json b/src/content/projects/openprojectboardwidgets.json index fdf9b56..d5ca0fd 100644 --- a/src/content/projects/openprojectboardwidgets.json +++ b/src/content/projects/openprojectboardwidgets.json @@ -7,7 +7,7 @@ "Cursor" ], "status": "in-progress", - "title": "OpenProjectBoardWidgets", + "title": "OpenProject Board Widgets", "tags": [], "description": "Расширение для Chrome, которое обогащает карточки досок OpenProject через REST API\n\n", "category": "actual" diff --git a/src/content/timeline/производственная-практика-в-simbirsoft-opensource-contributor.json b/src/content/timeline/производственная-практика-в-simbirsoft-opensource-contributor.json index a375805..1732210 100644 --- a/src/content/timeline/производственная-практика-в-simbirsoft-opensource-contributor.json +++ b/src/content/timeline/производственная-практика-в-simbirsoft-opensource-contributor.json @@ -11,7 +11,7 @@ "endDate": "2026-06-30T20:00:00.000+04:00", "startDate": "2026-05-01T10:00:00.000+04:00", "title": "Производственная практика в \"Simbirsoft\", OpenSource Contributor", - "icon": "elusive-icons:opensource", + "icon": "simple-icons:opensourceinitiative", "links": [ { "name": "Сайт OpenEverest", diff --git a/src/content/timeline/финалист-акселерационной-программы-самарского-университета-студенческий-стартап.json b/src/content/timeline/финалист-акселерационной-программы-самарского-университета-студенческий-стартап.json index 9d6e48b..01d70b5 100644 --- a/src/content/timeline/финалист-акселерационной-программы-самарского-университета-студенческий-стартап.json +++ b/src/content/timeline/финалист-акселерационной-программы-самарского-университета-студенческий-стартап.json @@ -5,10 +5,10 @@ "endDate": "2026-05-31T20:00:00.000+04:00", "startDate": "2026-01-01T10:00:00.000+04:00", "title": "Финалист акселерационной программы Самарского университета \"Студенческий стартап\"", - "icon": "mdi:education-outline", + "icon": "mdi:book-education-outline", "links": [ { - "name": "Диплом", + "name": "Фото с защиты проекта", "url": "https://stepanovplaton.ru/albums/защита-акселерационной-программы-студенческий-стартап-самгу/", "type": "certificate" } diff --git a/src/generated/icon-include.mjs b/src/generated/icon-include.mjs index 3d38c0b..95d4f0b 100644 --- a/src/generated/icon-include.mjs +++ b/src/generated/icon-include.mjs @@ -80,6 +80,7 @@ export default { "telegram" ], "mdi": [ + "book-education-outline", "car-outline", "certificate-outline", "pin" @@ -133,5 +134,8 @@ export default { ], "game-icons": [ "podium-winner" + ], + "simple-icons": [ + "opensourceinitiative" ] }; diff --git a/src/generated/icon-inventory.json b/src/generated/icon-inventory.json index b82a227..9b72df1 100644 --- a/src/generated/icon-inventory.json +++ b/src/generated/icon-inventory.json @@ -79,6 +79,7 @@ "telegram" ], "mdi": [ + "book-education-outline", "car-outline", "certificate-outline", "pin" @@ -132,5 +133,8 @@ ], "game-icons": [ "podium-winner" + ], + "simple-icons": [ + "opensourceinitiative" ] } diff --git a/src/generated/site-icon-svgs.ts b/src/generated/site-icon-svgs.ts index 9291e29..47cfc64 100644 --- a/src/generated/site-icon-svgs.ts +++ b/src/generated/site-icon-svgs.ts @@ -100,6 +100,7 @@ export const siteIconSvgs: Record = { "material-symbols:wallpaper": "", "material-symbols:wb-sunny-outline-rounded": "", "material-symbols:work": "", + "mdi:book-education-outline": "", "mdi:car-outline": "", "mdi:certificate-outline": "", "mdi:pin": "", @@ -107,6 +108,7 @@ export const siteIconSvgs: Record = { "mingcute:robot-line": "", "mingcute:volleyball-fill": "", "mingcute:vue-fill": "", + "simple-icons:opensourceinitiative": "", "skill-icons:neovim-dark": "", "vscode-icons:file-type-cursorrules": "", };