Мы в эфире!
1 августа 2024 г.Я собирался сделать себе личную страницу уже последние два года. Это отличная идея на бумаге: способ представлять и рекламировать себя окружающим, который может перерасти в полноценное портфолио со временем — словом, кому-то вроде меня заиметь личный сайт всегда будет актуально.
Самая ранняя версия этого сайта датируется сентябрем 2023 года. Текст был написан с чуть большим энтузиазмом и выражением и сегодня отдавал бы ChatGPT — поэтому он был переписан — а сайт был написан на ванильном HTML и JS. Планировалось использовать Firebase как хост и как базу данных для хранения записей в блоге. Позже я забросил ту версию, не зная, что с ней делать и как ее довести до ума — у меня не было четкого плана в голове и я работал только когда мне хотелось.
Со временем стало понятно, однако, что откладывать сайт было нельзя, потому что я приближался к обучению в университете и мне неизбежно в какой-то момент потребовалось бы портфолио, которое могло бы говорить за меня. Тогда я решил начать с чистого листа — хотя из-за идентичного дизайна так не выглядит. Это довольно немаленький проект сам по себе для кого-то, кто не работает в команде, и время еще только покажет, насколько затратно его развивать содержать.
Самым большим новшеством стало использование SvelteKit. Я как-то всегда скептически относился к использованию JS фреймворков в маленьких проектах; я был тем, кто либо пытался бы написать все с нуля самостоятельно, либо — еще хуже — сделать собственный фреймворк. Но SvelteKit удивил и покорил меня своей простотой и теперь обещает долго оставаться моим предпочитаемым фреймворком.
<!-- из src/routes/navbar.svelte -->
<div>
<a href='/'>Главная</a>
<a href='/projects'>Работы</a>
<a href='/blog'>Блог</a>
<a href='https://github.com/st-U00F6-pa'>Github</a>
</div>
Это исходный код для навбара без стилей на момент написания статьи. Разве не здорово? Просто вписывай
<Navbar/>
в+layout.svelte
и он на каждой странице. Как-то хочется теперь еще сайтов написать...
Кстати, если Вы читаете это на чем-то кроме экрана компьютера — дайте мне знать, как сайт отображается у Вас. Текст читаем? Верстка в норме? Напишите мне на почту если что-то не так.
Я думаю, я проделал неплохую работу. К примеру, статья, которую Вы сейчас читаете, хранится в Markdown файле по имени were_online.md
. Метаданные статьи хранятся рядышком, в JSON файле по имени were_online.json
. Все записи в блоге в одной директории, все страницы проектов в другой, оба прослушиваются через Chokidar и обновляются каждый раз, когда что-то меняются. Я думаю, это неплохой компромисс между написанием каждой записи как .html документа и созданием полноценной панели управления с редактором.
Я несколько раз упоминал так называемые "проекты". Я думаю, не было бы смысла иметь вкладку "Работы" без хотя бы одной опубликованной, и я решил начать с чего-то простого, но достаточно интересного для реализации.
Я представляю Вам... ASCII-Часы!
Они отображаются в терминале. Как я говорил, я трепетно отношусь к псевдографике, к CPU рендерерам и особенно к CPU-отрендеренной псевдографике, поэтому я соединил в маленькую программу два простых алгоритма растеризации — для прямых линий и для окружностей — и получил часы. Про них можно подробнее почитать тут. В какой-то момент я наверняка перепишу и верстак с заглавной странцы, для чего мне придется писать OpenGL-подобную графическую библиотеку. Я думаю, будет интересно.
Давно я, кстати, не играл в Minecraft ...