From c371e3dba4b9e29b5d0696a6940656233b6ca74e Mon Sep 17 00:00:00 2001 From: sergeyyarkov Date: Wed, 17 Dec 2025 23:02:37 +0300 Subject: [PATCH] allow html in markdown --- src/content/config.ts | 60 ------------------- src/content/projects/en/digital-store.md | 9 --- src/content/projects/en/educt.md | 9 --- src/content/projects/en/memory-led-game.md | 9 --- .../projects/en/node-docker-example.md | 9 --- src/content/projects/en/react-chat-app.md | 9 --- src/content/projects/en/thermometer.md | 7 --- src/content/projects/en/web-serial-example.md | 10 ---- src/content/projects/en/yarkov-tech.md | 10 ---- src/content/projects/ru/digital-store.md | 9 --- src/content/projects/ru/educt.md | 8 --- src/content/projects/ru/memory-led-game.md | 7 --- .../projects/ru/node-docker-example.md | 8 --- src/content/projects/ru/react-chat-app.md | 8 --- src/content/projects/ru/thermometer.md | 7 --- src/content/projects/ru/web-serial-example.md | 10 ---- src/content/projects/ru/yarkov-tech.md | 9 --- src/utils/markdown.ts | 4 +- 18 files changed, 2 insertions(+), 200 deletions(-) delete mode 100644 src/content/config.ts delete mode 100644 src/content/projects/en/digital-store.md delete mode 100644 src/content/projects/en/educt.md delete mode 100644 src/content/projects/en/memory-led-game.md delete mode 100644 src/content/projects/en/node-docker-example.md delete mode 100644 src/content/projects/en/react-chat-app.md delete mode 100644 src/content/projects/en/thermometer.md delete mode 100644 src/content/projects/en/web-serial-example.md delete mode 100644 src/content/projects/en/yarkov-tech.md delete mode 100644 src/content/projects/ru/digital-store.md delete mode 100644 src/content/projects/ru/educt.md delete mode 100644 src/content/projects/ru/memory-led-game.md delete mode 100644 src/content/projects/ru/node-docker-example.md delete mode 100644 src/content/projects/ru/react-chat-app.md delete mode 100644 src/content/projects/ru/thermometer.md delete mode 100644 src/content/projects/ru/web-serial-example.md delete mode 100644 src/content/projects/ru/yarkov-tech.md diff --git a/src/content/config.ts b/src/content/config.ts deleted file mode 100644 index 7b40cd3..0000000 --- a/src/content/config.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { defineCollection, z } from "astro:content"; - -const blog = defineCollection({ - schema: z.object({ - title: z.string(), - draft: z.boolean().nullable().optional(), - coverImage: z.string().nullable().optional(), - author: z.string(), - tags: z.string().array(), - description: z.string(), - pubDate: z - .string() - .or(z.date()) - .transform((val) => new Date(val)), - updatedDate: z - .string() - .or(z.date()) - .optional() - .transform((str) => (str ? new Date(str) : undefined)), - }), -}); - -const tags = defineCollection({ - schema: z.object({ - title: z.string(), - }), -}); - -const authors = defineCollection({ - schema: z.object({ - firstName: z.string(), - lastName: z.string(), - }), -}); - -const projects = defineCollection({ - schema: z.object({ - icon: z.string(), - title: z.string(), - year: z.number(), - description: z.string(), - sourceUrl: z.string(), - demoUrl: z.string().nullable().optional(), - articleUrl: z.string().nullable().optional(), - }), -}); - -const skills = defineCollection({ - schema: z.object({ - title: z.string(), - list: z - .object({ - icon: z.string().optional(), - title: z.string(), - }) - .array(), - }), -}); - -export const collections = { blog, tags, authors, projects, skills }; diff --git a/src/content/projects/en/digital-store.md b/src/content/projects/en/digital-store.md deleted file mode 100644 index bb79f14..0000000 --- a/src/content/projects/en/digital-store.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: round-shop-two -title: digital-store -year: 2019 -description: Customizable online store with control panel for selling digital goods -sourceUrl: https://github.com/sergeyyarkov/digital-store/tree/digital-store-docker -demoUrl: http://urls.yarkov.tech/digital-store -articleUrl: null ---- diff --git a/src/content/projects/en/educt.md b/src/content/projects/en/educt.md deleted file mode 100644 index 35ccf46..0000000 --- a/src/content/projects/en/educt.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: round-school -title: educt -year: 2022 -description: Learning Management System (LMS) to publish your courses, lectures, lessons -sourceUrl: https://github.com/sergeyyarkov/educt -demoUrl: http://urls.yarkov.tech/educt -articleUrl: null ---- diff --git a/src/content/projects/en/memory-led-game.md b/src/content/projects/en/memory-led-game.md deleted file mode 100644 index 04fef72..0000000 --- a/src/content/projects/en/memory-led-game.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: chip -title: memory-led-game -year: 2022 -description: Analogue of the popular game "Simon says" on the AVR microcontroller -sourceUrl: https://github.com/sergeyyarkov/attiny24a_memory-led-game -demoUrl: null -articleUrl: null ---- diff --git a/src/content/projects/en/node-docker-example.md b/src/content/projects/en/node-docker-example.md deleted file mode 100644 index 4af6ffa..0000000 --- a/src/content/projects/en/node-docker-example.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: nodejs -title: node-docker-example -year: 2022 -description: An example of using Docker to deploy a Node.js application -sourceUrl: https://github.com/sergeyyarkov/node-docker-example -demoUrl: http://urls.yarkov.tech/node-docker-example -articleUrl: null ---- diff --git a/src/content/projects/en/react-chat-app.md b/src/content/projects/en/react-chat-app.md deleted file mode 100644 index 60dce0e..0000000 --- a/src/content/projects/en/react-chat-app.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: chat -title: react-chat-app -year: 2021 -description: Client-server web chat application developed with Node.js and Socket.io -sourceUrl: https://github.com/sergeyyarkov/react-chat-app -demoUrl: null -articleUrl: null ---- diff --git a/src/content/projects/en/thermometer.md b/src/content/projects/en/thermometer.md deleted file mode 100644 index daa41a3..0000000 --- a/src/content/projects/en/thermometer.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -icon: chip -title: thermometer -year: 2023 -description: A simple thermometer on an AVR microcontroller with a DS18B20 sensor -sourceUrl: https://github.com/sergeyyarkov/attiny45v_thermometer ---- diff --git a/src/content/projects/en/web-serial-example.md b/src/content/projects/en/web-serial-example.md deleted file mode 100644 index 5c8becc..0000000 --- a/src/content/projects/en/web-serial-example.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -icon: serial -title: web-serial-example -year: 2022 -description: An example of using the Web Serial API to interact with the - microcontroller through a browser -sourceUrl: https://github.com/sergeyyarkov/avr128da48_web-serial-example -demoUrl: https://web-serial-example.netlify.app -articleUrl: https://yarkov.tech/en/blog/2022-11-04/using-the-web-serial-api-to-communicate-with-the-microcontroller/ ---- diff --git a/src/content/projects/en/yarkov-tech.md b/src/content/projects/en/yarkov-tech.md deleted file mode 100644 index ca9cdcf..0000000 --- a/src/content/projects/en/yarkov-tech.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -icon: book -title: yarkov.tech -year: 2023 -description: My personal website where you can find information about me and a - list of various articles and tutorials... -sourceUrl: https://github.com/sergeyyarkov/yarkov.tech -demoUrl: https://yarkov.tech -articleUrl: null ---- diff --git a/src/content/projects/ru/digital-store.md b/src/content/projects/ru/digital-store.md deleted file mode 100644 index e8d2215..0000000 --- a/src/content/projects/ru/digital-store.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: round-shop-two -title: digital-store -year: 2019 -description: Настраиваемый интернет-магазин с панелью управления для продажи - цифровых товаров -sourceUrl: https://github.com/sergeyyarkov/digital-store/tree/digital-store-docker -demoUrl: http://urls.yarkov.tech/digital-store ---- diff --git a/src/content/projects/ru/educt.md b/src/content/projects/ru/educt.md deleted file mode 100644 index 5bd735e..0000000 --- a/src/content/projects/ru/educt.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -icon: round-school -title: educt -year: 2022 -description: Система управления обучением (LMS) для публикации ваших курсов, лекций, уроков -sourceUrl: https://github.com/sergeyyarkov/educt -demoUrl: http://urls.yarkov.tech/educt ---- diff --git a/src/content/projects/ru/memory-led-game.md b/src/content/projects/ru/memory-led-game.md deleted file mode 100644 index 2a47d08..0000000 --- a/src/content/projects/ru/memory-led-game.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -icon: chip -title: memory-led-game -year: 2022 -description: Аналог популярной игры "Саймон говорит" на AVR микроконтроллере -sourceUrl: https://github.com/sergeyyarkov/attiny24a_memory-led-game ---- diff --git a/src/content/projects/ru/node-docker-example.md b/src/content/projects/ru/node-docker-example.md deleted file mode 100644 index 8cf92ef..0000000 --- a/src/content/projects/ru/node-docker-example.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -icon: nodejs -title: node-docker-example -year: 2022 -description: Пример использования Docker для развертывания Node.js приложения -sourceUrl: https://github.com/sergeyyarkov/node-docker-example -demoUrl: http://urls.yarkov.tech/node-docker-example ---- diff --git a/src/content/projects/ru/react-chat-app.md b/src/content/projects/ru/react-chat-app.md deleted file mode 100644 index e2e7244..0000000 --- a/src/content/projects/ru/react-chat-app.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -icon: chat -title: react-chat-app -year: 2021 -description: Клиент-серверное веб приложение чата разработанное при помощи - Node.js и Socket.io -sourceUrl: https://github.com/sergeyyarkov/react-chat-app ---- diff --git a/src/content/projects/ru/thermometer.md b/src/content/projects/ru/thermometer.md deleted file mode 100644 index e09b26e..0000000 --- a/src/content/projects/ru/thermometer.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -icon: chip -title: thermometer -year: 2023 -description: Простой термометр на AVR микроконтроллере с датчиком DS18B20 -sourceUrl: https://github.com/sergeyyarkov/attiny45v_thermometer ---- diff --git a/src/content/projects/ru/web-serial-example.md b/src/content/projects/ru/web-serial-example.md deleted file mode 100644 index 2f9c200..0000000 --- a/src/content/projects/ru/web-serial-example.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -icon: serial -title: web-serial-example -year: 2022 -description: Пример использования Web Serial API для взаимодействия с - микроконтроллером через браузер. -sourceUrl: https://github.com/sergeyyarkov/avr128da48_web-serial-example -demoUrl: https://web-serial-example.netlify.app -articleUrl: https://yarkov.tech/blog/2022-11-04/ispolzovanie-web-serial-api-dlya-obscheniya-s-mikrokontrollerom/ ---- diff --git a/src/content/projects/ru/yarkov-tech.md b/src/content/projects/ru/yarkov-tech.md deleted file mode 100644 index ff9f147..0000000 --- a/src/content/projects/ru/yarkov-tech.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -icon: book -title: yarkov.tech -year: 2023 -description: Мой персональный веб-сайт где находятся информация обо мне и список - различных статей и туториалов... -sourceUrl: https://github.com/sergeyyarkov/yarkov.tech -demoUrl: https://yarkov.tech ---- diff --git a/src/utils/markdown.ts b/src/utils/markdown.ts index e54dd67..f9d18f9 100644 --- a/src/utils/markdown.ts +++ b/src/utils/markdown.ts @@ -22,7 +22,7 @@ export async function markdownToHTML(content: string): Promise { .use(remarkParse) .use(remarkToc, { heading: "(table[ -]of[ -])?contents?|toc|содержание", maxDepth: 2 }) .use(remarkPrism as any) - .use(remarkRehype) + .use(remarkRehype, { allowDangerousHtml: true }) .use(rehypeSlug) .use(rehypeAutolinkHeadings, { properties: { @@ -58,7 +58,7 @@ export async function markdownToHTML(content: string): Promise { createAnchorLabel(toString(heading)), ], }) - .use(rehypeStringify) + .use(rehypeStringify, { allowDangerousHtml: true }) .process(content); return String(file);