HTML CSS JavaScript TypeScript
Семантика, DOM, события, формы, модули, Fetch, async/await, типизация и проверка данных
111 материаловHTML, CSS, JavaScript, TypeScript, компоненты и статические сайты.
Семантика, DOM, события, формы, модули, Fetch, async/await, типизация и проверка данных
111 материаловReact, Vue, Web Components, состояние, навигация, работа с API, SSR, статическая генерация и организация проекта.
Материалы готовятсяMarkdown, шаблоны, темы, оглавления, поиск, пагинация, таблицы, примеры кода, ресурсы и локальная сборка.
34 материалаHTTP в браузере, CORS, cookies, хранилища, workers, разрешения, прогрессивное улучшение и различия браузеров.
13 материаловПереводы, даты, числа, валюты, множественное число, языки справа налево и работа переводчиков
Материалы готовятсяМодули C/C++ и Rust в браузере, обработка файлов и изображений, взаимодействие с JavaScript и измерение вычислений.
Материалы готовятсяДевять последовательных учебных серий: Markdown, SEO, поиск, деплоймент, дизайн, аналитика, PWA, доступность и безопасность. Всего 178 уроков.
Последовательно создаём библиотеку статей: от первой HTML-страницы до каталога, поиска и публикации на Beget. Сохраняем постоянные адреса и отделяем материалы от оформления.
Первый урок серии «Статический сайт из Markdown»: создаём исходник, собираем HTML на Python и проверяем изменение страницы после пересборки.
Добавляем метаданные в тот же Markdown-исходник: отделяем YAML от текста, проверяем типы и подставляем название и описание в HTML.
Собираем несколько Markdown-файлов по явным permalink, исключаем черновики и обнаруживаем небезопасные и повторяющиеся адреса до записи HTML.
Выносим HTML-оболочку, хедер и футер в общие файлы и добавляем простой шаблонизатор, который сохраняет примеры кода внутри Markdown.
Подключаем общий CSS и SVG к учебному статическому сайту, копируем ресурсы при сборке и разбираем адреса на вложенных страницах.
Переносим собственную учебную HTML-страницу в Markdown, сохраняем сложную таблицу и якоря, оставляем прежний адрес с расширением PHP.
Строим разделы, темы и страницы проектов из метаданных Markdown, сохраняя единственный постоянный адрес каждой статьи.
Задаём учебную последовательность отдельно от каталога, создаём ссылки на предыдущий и следующий урок и обрабатываем границы серии.
Девятый урок серии: создаём поисковый индекс при сборке и ищем по Markdown-статьям в браузере без PHP и базы данных.
Десятый урок серии: задаём домен, формируем canonical, управляем noindex и создаём sitemap.xml из общего реестра страниц.
Одиннадцатый урок серии: проверяем старые URL, ссылки, ресурсы, пагинацию и карту сайта; готовим ручную проверку в GitLab CI.
Заключительный урок серии: готовим резервную копию, проверяем статическую выдачу старых .php URL на тестовом домене и планируем переключение с откатом.
Строим поиск по учебной библиотеке: готовим данные из Markdown, индекс, ранжирование и интерфейс. Затем переходим к серверному API, семантическому и гибридному поиску.
Как определить задачи поиска, подготовить контрольные запросы и различать качество результатов и скорость.
Как экспортировать опубликованные Markdown-материалы для поиска, сохранить старые URL и исключить черновики.
Как загрузить JSON с материалами, выполнить поиск подстроки и безопасно показать результаты в браузере.
Как построить инвертированный индекс и находить документы по нескольким словам запроса.
Как упорядочить результаты по совпадениям в заголовке, разделах и тексте и проверить влияние весов.
Как согласованно обработать русский текст, C#, .NET и проверенные словоформы в документах и запросах.
Как расширять запрос синонимами и небольшими исправлениями, сохраняя точность технических терминов.
Как фильтровать результаты до разбивки на страницы и сохранять правильный общий счётчик.
Как сохранить запрос в URL, различать состояния поиска и защитить интерфейс от запоздавших ответов.