Files
SecondBrain/.obsidian/workspace.json
T
2026-06-04 09:31:57 +03:00

319 lines
138 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"main": {
"id": "5324373015726ba8",
"type": "split",
"children": [
{
"id": "4e9db25a7859d46d",
"type": "tabs",
"children": [
{
"id": "b338ee701498f876",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "99 System/Archive/Основные команды git.md",
"mode": "preview",
"source": false,
"backlinks": false
},
"icon": "lucide-file",
"title": "Основные команды git"
}
},
{
"id": "3e242b36cec6a5ec",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "90 Library/Programming/Web/Подготовка к экзамену по веб-разработке.pdf"
},
"icon": "lucide-file-text",
"title": "Подготовка к экзамену по веб-разработке"
}
}
],
"currentTab": 1
}
],
"direction": "vertical"
},
"left": {
"id": "a9c2d5e65288011a",
"type": "split",
"children": [
{
"id": "383cca303cf4b57d",
"type": "tabs",
"children": [
{
"id": "27e6486165131cfa",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": true
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "66079465678173e5",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "tag:#gym",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "c2541ce190da912e",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
},
{
"id": "673ce6e6c09cfc9c",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
}
]
}
],
"direction": "horizontal",
"width": 207
},
"right": {
"id": "38c591aa0966839e",
"type": "split",
"children": [
{
"id": "86a193b1d3159ff8",
"type": "tabs",
"children": [
{
"id": "06940eb960fc1db5",
"type": "leaf",
"pinned": true,
"state": {
"type": "terminal:terminal",
"state": {
"terminal:terminal": {
"cwd": "/home/ada/Documents/Vaults/SecondBrain",
"focus": false,
"profile": {
"args": [
"--login"
],
"executable": "/usr/bin/zsh",
"followTheme": true,
"name": "ZSH",
"platforms": {
"darwin": false,
"linux": true
},
"pythonExecutable": "python3",
"restoreHistory": true,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"fontFamily": "FiraCode Nerd Font Mono",
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": false
},
"profileSourceId": "7004edff-76db-412f-95d3-5fd8e180d055",
"serial": {
"columns": 48,
"data": "\u001b[48;5;22m \u001b[2m \u001b[38;2;205;214;244;22mНазад к краткой теме</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[11X\r\n\u001b[39m \u001b[2m596 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\u001b[25X\r\n\u001b[39m \u001b[2m597 \u001b[32;22m+\u001b[39X\r\n\u001b[39m \u001b[2m598 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-html\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[1X\r\n\u001b[39m \u001b[2m599 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mHTML</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[20X\r\n\u001b[39m \u001b[2m600 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"Основы HTML (структура\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m таблицы\u001b[38;2;147;153;178m,\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mформы)\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mОсновы HTML (структура\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m табл\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mицы\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m формы)</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[20X\r\n\u001b[39m \u001b[2m601 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mHTML описывает структуру докум\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mента. Важно знать базовый каркас\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m роль\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m`\u001b[38;2;137;180;250mhead\u001b[38;2;205;214;244m` и `\u001b[38;2;137;180;250mbody\u001b[38;2;205;214;244m`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m блочные и строчные эле\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mменты\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m семантические теги\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m атрибуты `cl\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mass`/`id`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m ссылки\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m изображения\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m списки\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи таблицы.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[25X\r\n\u001b[39m \u001b[2m602 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `class\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m` можно повторять\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `id` должен быть уни\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mкальным; таблицы — для табличных данных\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m,\u001b[38;2;205;214;244m не для макета.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\u001b[17X\r\n\u001b[39m \u001b[2m603 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-2\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[2X\r\n\u001b[39m \u001b[2m604 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\u001b[25X\r\n\u001b[39m \u001b[2m605 \u001b[32;22m+\u001b[39X\r\n\u001b[39m \u001b[2m606 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-html-fo\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mrms\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[34X\r\n\u001b[39m \u001b[2m607 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mHTML Forms</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[14X\r\n\u001b[39m \u001b[2m608 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"Основы HTML (структура\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m таблицы\u001b[38;2;147;153;178m,\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mформы)\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mОсновы HTML (структура\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m табл\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mицы\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m формы)</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[20X\r\n\u001b[39m \u001b[2m609 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mФорма отправляет данные на сер\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mвер. `action` задаёт URL\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `method` — сп\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mособ отправки. `\u001b[38;2;137;180;250mlabel\u001b[38;2;205;214;244m` связывается с по\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mлем через `for` и `id`. `name` определя\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mет имя параметра при отправке. `require\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22md` и типы \u001b[38;2;137;180;250minput\u001b[38;2;205;214;244m помогают браузерной вал\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mидации\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m но не заменяют серверную провер\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mку.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m610 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: у \u001b[38;2;137;180;250mradi\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mo-кнопок\u001b[38;2;205;214;244m одной группы должен быть одина\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mковый `name`; у `\u001b[38;2;137;180;250mbutton\u001b[38;2;205;214;244m` внутри формы л\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mучше явно задавать `type`.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m611 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-3\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку HTML Forms</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m612 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m613 \u001b[32;22m+\r\n\u001b[39m \u001b[2m614 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-css-sel\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mectors\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m615 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mCSS selectors</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m616 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"Основы\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m селекторы и блочная модел\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mCSS: Основы и селекторы</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m617 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mCSS-селектор выбирает элементы\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m,\u001b[38;2;205;214;244m к которым применяются правила. Нужно\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mразличать селекторы тега\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m класса\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m id\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m а\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтрибута\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m псевдокласса и комбинаторы. Ка\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mскад учитывает важность\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m специфичность\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи порядок правил.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m618 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mСпецифичность:\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22minline &gt; ID &gt; класс/атрибут/псевд\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mокласс &gt; тег/псевдоэлемент.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m619 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-4\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку CSS</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m620 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m621 \u001b[32;22m+\r\n\u001b[39m \u001b[2m622 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-css-pro\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mps\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m623 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mCSS базовые свойства</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m624 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"Основы\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m селекторы и блочная модел\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mь\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mCSS: Основы и селекторы</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m625 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mБлочная модель состоит из \u001b[38;2;137;180;250mcont\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22ment\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m padding\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m border и margin. `\u001b[38;2;137;180;250mbox-siz\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22ming\u001b[38;2;205;214;244m` меняет расчёт ширины. Текстовые св\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mойства управляют шрифтами\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m выравнивание\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mм\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m межстрочным расстоянием\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m расстоянием\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m между буквами и декором текста. Фон за\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mдаётся через группу `background-\u001b[38;2;137;180;250m*\u001b[38;2;205;214;244m`.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m626 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `width\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m` при `\u001b[38;2;137;180;250mcontent-box\u001b[38;2;205;214;244m` не включает padding\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m/border\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m при `\u001b[38;2;137;180;250mborder-box\u001b[38;2;205;214;244m` включает.</\u001b[38;2;137;180;250mdi\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m627 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-4\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку CSS</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m628 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m629 \u001b[32;22m+\r\n\u001b[39m \u001b[2m630 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-layout\u001b[38;2;205;214;244m\"\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\r\n\u001b[39m \u001b[2m631 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mFlexbox и Grid</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m632 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"Адаптивность\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m Flexbox и Grid\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mCSS: Адаптивность\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m Flexbox и Grid</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m633 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mFlexbox — одномерная модель ра\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mскладки по главной и поперечной оси. Gr\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mid — двумерная сетка строк и колонок. F\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mlex удобен для распределения элементов\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mв строке или колонке\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m Grid — для общего\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m макета страницы.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m634 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `\u001b[38;2;137;180;250mjusti\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mfy-content\u001b[38;2;205;214;244m` работает по главной оси fle\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mx\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `\u001b[38;2;137;180;250malign-items\u001b[38;2;205;214;244m` — по поперечной; `fr`\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m— доля свободного пространства Grid.</\u001b[38;2;137;180;250md\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22miv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m635 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-5\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку Flex/Grid</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m/\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m636 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m637 \u001b[32;22m+\r\n\u001b[39m \u001b[2m638 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mmodels\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m639 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango models</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m640 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Модели и ORM\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m Модели и ORM</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m641 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mМодели описывают структуру таб\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mлиц и связи между ними. `CharField` тре\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mбует `max_length`; `ForeignKey` задаёт\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m`on_delete`; `ManyToManyField` создаёт\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mпромежуточную таблицу или использует ук\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mазанную через `through`. Миграции перен\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mосят изменения моделей в БД.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m642 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `null=\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mTrue` относится к БД\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `blank=True` — к\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mформам/валидации Django.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m643 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-d\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mjango\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку Django</\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m644 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m645 \u001b[32;22m+\r\n\u001b[39m \u001b[2m646 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mfbv\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m647 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango FBV</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m648 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Представления, шаблоны\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи CBV\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango: Представления\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m шаблон\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mы и CBV</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m649 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mFBV — обычная функция-представ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mление. Она принимает `request`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m получае\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mт данные\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m вызывает `render` или возвращ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mает другой `HttpResponse`. Маршрутизиру\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mется через `\u001b[38;2;137;180;250mpath\u001b[38;2;205;214;244m()` прямой передачей фу\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mнкции.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m650 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `rende\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mr(request\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;137;180;250mtemplate\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m context)` возвраща\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mет HTTP-ответ; `get_object_or_404` возв\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mращает объект или 404.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m651 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-d\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mjango\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку Django</\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m652 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m653 \u001b[32;22m+\r\n\u001b[39m \u001b[2m654 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mcbv\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m655 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango CBV</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m656 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Представления, шаблоны\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи CBV\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango: Представления\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m шаблон\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mы и CBV</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m657 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mCBV — классовые представления\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mс готовой логикой. `TemplateView` показ\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mывает шаблон\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `ListView` выводит список\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m,\u001b[38;2;205;214;244m `DetailView` выводит один объект. В U\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mRL подключаются через `\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mas_view\u001b[38;2;205;214;244m()`.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m658 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `ListV\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22miew` по умолчанию даёт `object_list`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mDetailView` — `\u001b[38;2;137;180;250mobject\u001b[38;2;205;214;244m`; шаблоны по умол\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mчанию `model_list\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mhtml\u001b[38;2;205;214;244m` и `model_detail\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m.\u001b[38;2;249;226;175mhtml\u001b[38;2;205;214;244m`.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m659 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mblock-d\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mjango\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткому блоку Django</\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m660 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m661 \u001b[32;22m+\r\n\u001b[39m \u001b[2m662 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22murls\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m663 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango URLs</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m664 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Представления, шаблоны\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи CBV\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango: Представления\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m шаблон\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mы и CBV</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m665 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m`urlpatterns` связывает URL с\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mпредставлениями. `\u001b[38;2;137;180;250mpath\u001b[38;2;205;214;244m()` использует ro\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mute\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m view\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m kwargs и name. Конвертеры вр\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mоде `int`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `slug`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `uuid`\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `\u001b[38;2;137;180;250mpath\u001b[38;2;205;214;244m` извле\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mкают параметры. `reverse()` и `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m% url %\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m}\u001b[38;2;205;214;244m` строят URL по имени маршрута.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m666 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: не хар\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mдкодить URL\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m если есть именованный марш\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mрут и `reverse`/`url`.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m667 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175ms-djang\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mo-urls\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткой теме</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m668 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m669 \u001b[32;22m+\r\n\u001b[39m \u001b[2m670 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mtemplates\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m671 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mЯзык шаблонов Django</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m672 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Представления, шаблоны\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи CBV\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango: Представления\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m шаблон\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mы и CBV</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m673 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDTL использует переменные `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m{\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mvalue \u001b[38;2;147;153;178m}\u001b[38;2;205;214;244m}`, теги `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m% tag %\u001b[38;2;147;153;178m}\u001b[38;2;205;214;244m` и фильтры `\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m{\u001b[38;2;205;214;244m{ value|\u001b[38;2;137;180;250mfilter\u001b[38;2;205;214;244m \u001b[38;2;147;153;178m}\u001b[38;2;205;214;244m}`. Наследование строи\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтся через `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m% extends %\u001b[38;2;147;153;178m}\u001b[38;2;205;214;244m` и `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m% block %\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m}\u001b[38;2;205;214;244m`. Статика подключается через `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m% load\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m static %\u001b[38;2;147;153;178m}\u001b[38;2;205;214;244m` и `\u001b[38;2;147;153;178m{\u001b[38;2;205;214;244m% static 'path' %\u001b[38;2;147;153;178m}\u001b[38;2;205;214;244m`.</\u001b[38;2;137;180;250mp\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\r\n\u001b[39m \u001b[2m674 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: функци\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mи Python с произвольными аргументами на\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mпрямую из шаблона вызывать нельзя; испо\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mльзуют теги\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m фильтры или подготовку дан\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mных во view.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m675 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175ms-djang\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mo-templates\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткой теме</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m676 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m677 \u001b[32;22m+\r\n\u001b[39m \u001b[2m678 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mqueries\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m679 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango queries</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m680 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Модели и ORM\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m Модели и ORM</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m681 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mQuerySet ленив: запрос выполня\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mется при фактическом обращении к данным\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m. Методы можно цепочечно комбинировать.\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m `get()` возвращает один объект или оши\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mбку, `\u001b[38;2;137;180;250mfilter\u001b[38;2;205;214;244m()` возвращает QuerySet\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `a\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mggregate()` возвращает итоговый словарь\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m, `annotate()` добавляет вычисляемые по\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mля к объектам.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m682 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `selec\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mt_related` — для ForeignKey/OneToOne че\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mрез JOIN; `prefetch_related` — для Many\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mToMany и обратных связей отдельными зап\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mросами.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m683 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175ms-djang\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mo-queries\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткой теме</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m684 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m685 \u001b[32;22m+\r\n\u001b[39m \u001b[2m686 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"note\" id=\"\u001b[38;2;137;180;250md-django-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mforms\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m687 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango forms</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m688 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mnote-source\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mVault: <\u001b[38;2;137;180;250ma\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mhref=\"../Python/Работа с формами и CUD\u001b[38;2;147;153;178m.\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mmd\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mDjango: Работа с формами и CUD</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m/\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m689 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m`forms\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mForm\u001b[38;2;205;214;244m` описывает форму в\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mручную\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `forms\u001b[38;2;147;153;178m.\u001b[38;2;249;226;175mModelForm\u001b[38;2;205;214;244m` строится по м\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mодели через `Meta`. `is_valid()` запуск\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mает валидацию, `cleaned_data` содержит\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mочищенные данные\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m `clean_<field\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m()` вал\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mидирует поле, `clean()` — форму целиком\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m. `widget` управляет HTML-представление\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mм поля.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m690 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m class=\"exam\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ тесте: `\u001b[38;2;137;180;250mform\u001b[38;2;147;153;178m.\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22msave\u001b[38;2;205;214;244m()` есть у ModelForm; серверная вал\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mидация обязательна\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m HTML `required` не\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mзащита.</\u001b[38;2;137;180;250mdiv\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m691 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175ms-djang\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mo-forms\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНазад к краткой теме</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m692 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m693 \u001b[32;22m+\u001b[38;2;205;214;244m </\u001b[38;2;137;180;250msection\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m694 \u001b[32;22m+\r\n\u001b[39m \u001b[2m695 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mp\u001b[38;2;205;214;244m class=\"back\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175mtop\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНаверх\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m696 \u001b[32;22m+\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mmain\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m697 \u001b[32;22m+\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mbody\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m698 \u001b[32;22m+\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mhtml\u001b[38;2;147;153;178m>\r\n\u001b[0m\u001b[48X\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mHTML собран. Проверяю технические вещи:\r\n повторяющиеся якоря, наличие целевых файлов и\r\n возможность напечатать PDF через headless\r\n Chromium.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mwhich\u001b[38;2;205;214;244m chromium\r\n\u001b[39;2m └ /usr/bin/chromium\r\n\r\n\u001b[31;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"id=\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m[^\"\u001b[38;2;205;214;244m]+\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m\" \"\u001b[38;2;205;214;244m90 Library/\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mProgramming/Web/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mвеб-разработке.html\u001b[38;2;166;227;161m\"\r\n\u001b[39;2m └ zsh:1: unmatched \"\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mstat\r\n\u001b[39;2m └ .obsidian/workspace.json | 28 ++++++++++++\r\n\u001b[0m \u001b[2m++--------------\r\n\u001b[0m \u001b[2m 1 file changed, 14 insertions(+), 14\r\n\u001b[0m \u001b[2mdeletions(-)\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mОдна проверочная команда сломалась на\r\n кавычках, без влияния на файлы. Повторяю её\r\n нормальной quoting-командой и сразу исправлю\r\n найденные дубли якорей, если будут.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git status\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mshort\r\n\u001b[39;2m └ M .obsidian/workspace.json\r\n\u001b[0m \u001b[2m?? \"90 Library/Programming/Web/Подготовка к\r\n\u001b[0m \u001b[2mэкзамену по веб-разработке.html\"\r\n\r\n\u001b[31;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mo\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'id=\"[^\"]+\"'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mProgramming/Web/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.html\"\r\n\u001b[39;2m └ (no output)\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[36;22mrg\u001b[0m с шаблоном для атрибутов не поймал HTML,\r\n поэтому проверю через более простые поиски по\r\n \u001b[36mid=\u001b[0m и ссылкам. Заодно вижу, что \u001b[36m.obsidian/\r\n\u001b[0m \u001b[36mworkspace.json\u001b[0m уже изменён вне моей задачи,\r\n его не трогаю.\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"href=\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m#[^\"\u001b[38;2;205;214;244m]+\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m\" \"\u001b[38;2;205;214;244m90 Library/\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mProgramming/Web/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22mвеб-разработке.html\u001b[38;2;166;227;161m\"\r\n\u001b[39;2m └ zsh:1: unmatched \"\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"href=\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m#s-meta\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mid=\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161ms-meta\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mWeb/Подготовка к экзамену по\r\n\u001b[39;2m │ … +1 lines\r\n └ 4 matches in 3F:\r\n\r\n … +11 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 300: <a href=\"#s-meta\">Class Meta</a>\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"id=\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mWeb/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.html\"\r\n\u001b[39;2m └ 115 matches in 71F:\r\n\r\n … +237 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +20\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mНашёл реальный конфликт якоря \u001b[36ms-meta\u001b[0m: HTML\r\n meta-теги и Django \u001b[36mClass Meta\u001b[0m. Исправляю\r\n Django-якорь на отдельный \u001b[36ms-django-meta\u001b[0m.\r\n\r\n\u001b[2m• \u001b[1;22mEdited\u001b[0m 90 Library/Programming/Web/Подготовка к\r\nэкзамену по веб-разработке.html (\u001b[32m+2\u001b[0m \u001b[31m-2\u001b[0m)\r\n \u001b[2m299 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#s-migrations\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mМиграци\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mи\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m>\r\n\u001b[39;48;5;52m \u001b[2m300 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#s-meta\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mClass Meta\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\r\n\u001b[39;22m \u001b[2m \u001b[38;2;148;226;213m>\r\n\u001b[39;48;5;22;22m \u001b[2m300 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#s-django-meta\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mClass\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mMeta\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m>\r\n\u001b[0m \u001b[2m301 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#s-null-blank\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mnull/bl\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mank\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m>\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m471 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-migra\r\n\u001b[0m \u001b[2m \u001b[38;2;166;227;161;22mtions\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mМиграции\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`makemigrati\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mons` создаёт файлы миграций из изменени\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mй моделей, `migrate` применяет их к баз\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mе данных.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhre\r\n\u001b[0m \u001b[2m \u001b[38;2;249;226;175;22mf\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-django-models\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: Django m\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22models\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\u001b[38;2;148;226;213m>\r\n\u001b[39;48;5;52m \u001b[2m472 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-meta\"\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m уровне форм/валидации Django.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mcl\r\n\u001b[0m \u001b[2m \u001b[38;2;249;226;175;22mass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-django-model\r\n\u001b[0m \u001b[2m \u001b[38;2;166;227;161;22ms\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: Django models\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m\"$1\\n\"}'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ … +1 lines\r\n └ (no output)\r\n\u001b[0m Web/Подготовка к экзамену по веб-\r\n разработке.html\\\"); s=p.read_text();\r\n ids=set(re.findall(r\\\"id=\\\\\\\"([\"'^'\"\\\\\r\n \\\"]+)\\\\\\\"\\\", s));\r\n missing=sorted(set(hrefs)-ids);\r\n print(\\\"missing\\\", missing);\r\n print(\\\"ids\\\",\r\n len(ids), \\\"hash_links\\\", len(hrefs))\"\r\n\r\n\u001b[33m⚠ Falling back from WebSockets to HTTPS\r\n\u001b[0m \u001b[33mtransport. stream disconnected before\r\n\u001b[0m \u001b[33mcompletion: Connection reset by peer (os error\r\n\u001b[0m \u001b[33m104)\r\n\r\n\u001b[31m■ stream disconnected before completion: error\r\nsending request for url\r\n(https://chatgpt.com/backend-api/codex/responses)\r\n\r\n\u001b[39;48;5;238m\u001b[48X\r\n\u001b[1;2m \u001b[22;22mПродолжи\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[31m■ stream disconnected before completion: error\r\nsending request for url\r\n(https://chatgpt.com/backend-api/codex/responses)\r\n\r\n\u001b[39;48;5;238m\u001b[48X\r\n\u001b[1;2m \u001b[22;22mПродолжи\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mПродолжаю. Осталось: собрать PDF, перенести\r\n обработанные Inbox-исходники в архив и\r\n обновить \u001b[36m99 System/INDEX.md\u001b[0m.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"generated:|Vault Index|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mtotal:\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"*.py\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"*.sh\"\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mg\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m\"*.md\"\r\n\u001b[39;2m └ 3 matches in 1F:\r\n\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 6: # Vault Index\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/Archive\"\r\n\u001b[39;2m └ 04 Tools/\r\n\u001b[0m \u001b[2mCourses/\r\n … +93 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mЭкзамен - MOC.md 8.2K\r\n\u001b[0m \u001b[2mЭкзамен.pdf 179.2K\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrealpath\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.html\"\r\n\u001b[39;2m └ /home/ada/Documents/Vaults/SecondBrain/90\r\n\u001b[0m \u001b[2mLibrary/Programming/Web/Подготовка к\r\n\u001b[0m \u001b[2mэкзамену по веб-разработке.html\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mГенерирую PDF из локального HTML через\r\n headless Chromium. Если Chromium упрётся в\r\n sandbox/Wayland, повторю с нужными флагами.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mchromium\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mheadless\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mno-sandbox\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mdisable-gpu\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mprint-to-pdf\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"/home/ada/Documents/Vaults\r\n\u001b[39;2m │ … +4 lines\r\n └ 160997 bytes written to file /home/ada/\r\n\u001b[0m \u001b[2mDocuments/Vaults/SecondBrain/90 Library/\r\n\u001b[0m \u001b[2mProgramming/Web/Подготовка к экзамену по\r\n\u001b[0m \u001b[2mвеб-разработке.pdf\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mPDF собрался. Перед архивированием проверяю,\r\n нет ли уже файлов с такими именами в \u001b[36m99\r\n\u001b[0m \u001b[36mSystem/Archive\u001b[0m, чтобы не перезаписать\r\n источник.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mfile\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.pdf\"\r\n\u001b[39;2m └ 90 Library/Programming/Web/Подготовка к\r\n\u001b[0m \u001b[2mэкзамену по веб-разработке.pdf: PDF\r\n\u001b[0m \u001b[2mdocument, version 1.4, 5 page(s)\r\n\r\n\u001b[31;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mArchive/00_базовые_понятия.pdf\"\r\n\u001b[39;2m └ ls: cannot access '99 System/\r\n\u001b[0m \u001b[2mArchive/00_базовые_понятия.pdf': No such\r\n\u001b[0m \u001b[2mfile or directory\r\n\r\n\u001b[31;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/Archive/Подготовка к\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mэкзамену по Веб-Разработке.md\"\r\n\u001b[39;2m └ ls: cannot access '99 System/Archive/\r\n\u001b[0m \u001b[2mПодготовка к экзамену по Веб-Разработке.md':\r\n\u001b[0m \u001b[2mNo such file or directory\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox\"\r\n\r\n\u001b[39;2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mКонфликтов в архиве нет. Переношу обработанные\r\n исходники из Inbox в Archive, как в workflow\r\n ingest.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mmv\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox/Подготовка к экзамену по\r\n\u001b[39;2m └ (no output)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mmv\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox/00_базовые_понятия.pdf\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mSystem/Archive/00_базовые_понятия.pdf\"\r\n\u001b[39;2m └ (no output)\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mТеперь обновляю индекс точечно: добавлю новые\r\n Markdown-заметки в их разделы,\r\n перенесённый \u001b[36m.md\u001b[0m из Inbox в Archive и поправлю\r\n дату/общее количество. PDF/HTML в индекс не\r\n входят, он индексирует \u001b[36m.md\u001b[0m.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m read \u001b[38;2;166;227;161m\"99 System/INDEX.md\"\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mtail-lines\r\n\u001b[39;2m │ \u001b[38;2;205;214;244;22m80\r\n\u001b[39;2m └\r\n\u001b[0m \u001b[2m| Заметка | Aliases | Status | Type | Tags |\r\n … +81 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m| [[Travel Item]] | — | seed | knowledge |\r\n\u001b[0m \u001b[2m[travel] |\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mSearch\u001b[0m *.md\u001b[2m in \u001b[0m.\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mТекущий фактический счётчик Markdown-файлов —\r\n 504, значит индекс надо поднять с 497 до 504.\r\n Сейчас внесу только нужные строки, без полной\r\n перегенерации всего индекса.\r\n\r\n\u001b[2m• \u001b[1;22mEdited\u001b[0m 99 System/INDEX.md (\u001b[32m+9\u001b[0m \u001b[31m-3\u001b[0m)\r\n \u001b[2m 1 \u001b[0m \u001b[38;2;147;153;178m---\r\n\u001b[39;48;5;52m \u001b[2m 2 \u001b[31;22m-\u001b[38;2;205;214;244;2mgenerated: 2026-06-03\u001b[18X\r\n\u001b[39;22m \u001b[2m 3 \u001b[31;22m-\u001b[38;2;205;214;244;2mtotal: 497\r\n\u001b[39;48;5;22;22m \u001b[2m 2 \u001b[32;22m+\u001b[38;2;205;214;244mgenerated: 2026-06-04\u001b[18X\r\n\u001b[39m \u001b[2m 3 \u001b[32;22m+\u001b[38;2;205;214;244mtotal: 504\r\n\u001b[0m \u001b[2m 4 \u001b[0m \u001b[38;2;147;153;178m---\u001b[36X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m 11 \u001b[0m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m----------\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m----------\u001b[38;2;147;153;178m|\r\n\u001b[39;48;5;52m \u001b[2m 12 \u001b[31;22m-\u001b[38;2;147;153;178;2m|\u001b[38;2;205;214;244m Всего заметок \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m 497 \u001b[38;2;147;153;178m|\u001b[16X\r\n\u001b[39;48;5;22;22m \u001b[2m 12 \u001b[32;22m+\u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m Всего заметок \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m 504 \u001b[38;2;147;153;178m|\u001b[16X\r\n\u001b[0m \u001b[2m 13\u001b[41X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m474 \u001b[0m \u001b[38;2;205;214;244m| [[Networking - MOC]] | Networking - M\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mOC | stable | moc | [network, networkin\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mg] |\r\n\u001b[39;48;5;22m \u001b[2m475 \u001b[32;22m+\u001b[38;2;205;214;244m| [[OAuth 2.0]] | OAuth 2.0 | seed | co\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mncept | [web, security, oauth, authoriz\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mation] |\r\n\u001b[0m \u001b[2m476 \u001b[0m \u001b[38;2;205;214;244m| [[VLSM]] | VLSM | stable | concept |\u001b[1X\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m[network, networking] |\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m478 \u001b[0m \u001b[38;2;205;214;244m| [[Базовая настройка коммутатора]] | Б\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mазовая Настройка Коммутатора | stable |\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m concept | [network, networking] |\r\n\u001b[39;48;5;22m \u001b[2m479 \u001b[32;22m+\u001b[38;2;205;214;244m| [[Веб-аутентификация и авторизация]]\u001b[1X\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m| Идентификация, аутентификация и автор\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mизация | seed | concept | [web, securit\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22my, authentication, authorization, oauth\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m] |\r\n\u001b[0m \u001b[2m480 \u001b[0m \u001b[38;2;205;214;244m| [[Введение в сетевую безопасность]] |\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m Введение в сетевую безопасность | seed\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m | concept | [networking, security, inf\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mosec] |\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m486 \u001b[0m \u001b[38;2;205;214;244m| [[Пример настройки DHCPv6]] | Пример\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mНастройки DHCPv6 | stable | concept | [\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mnetwork, networking] |\r\n\u001b[39;48;5;22m \u001b[2m487 \u001b[32;22m+\u001b[38;2;205;214;244m| [[Подсети и маска подсети]] | Маска п\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mодсети, Подсети | seed | concept | [net\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mwork, networking, subnet, ipv4] |\r\n\u001b[0m \u001b[2m488 \u001b[0m \u001b[38;2;205;214;244m| [[Режимы передачи данных в сетях]] |\u001b[1X\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mРежимы Передачи Данных В Сетях | stable\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m | concept | [network, networking] |\r\n\u001b[0m \u001b[2m489 \u001b[0m \u001b[38;2;205;214;244m| [[Сегментация сети]] | Сегментация Се\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mти | stable | concept | [network, netwo\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mrking] |\r\n\u001b[39;48;5;22m \u001b[2m490 \u001b[32;22m+\u001b[38;2;205;214;244m| [[Сетевые порты]] | Сетевые порты | s\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22meed | concept | [network, networking, p\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22morts, tcp, udp, web] |\r\n\u001b[0m \u001b[2m491 \u001b[0m \u001b[38;2;205;214;244m| [[Сетевые устройства]] | Сетевые Устр\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mойства | stable | concept | [network, n\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22metworking] |\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m520 \u001b[0m \u001b[38;2;205;214;244m| [[DNS]] | DNS | stable | concept | [n\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22metwork, networking, protocols, dns] |\r\n\u001b[39;48;5;22m \u001b[2m521 \u001b[32;22m+\u001b[38;2;205;214;244m| [[HTTP, HTTPS и HTTP3]] | HTTP, HTTPS\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m и HTTP/3 | seed | concept | [web, netw\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mork, networking, protocols, http, https\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m, http3] |\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22motocols, icmp] |\u001b[23X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m525 \u001b[0m \u001b[38;2;205;214;244m| [[TCP vs UDP]] | TCP Vs UDP | stable\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m| concept | [network, networking, proto\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mcols] |\r\n\u001b[39;48;5;22m \u001b[2m526 \u001b[32;22m+\u001b[38;2;205;214;244m| [[URI, URL, URN]] | URI, URL, URN | s\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22meed | concept | [web, network, networki\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mng, uri, url, urn] |\r\n\u001b[0m \u001b[2m527\u001b[41X\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"## 99 System/Archive$|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка Speaking|Подготовка к экзамену\"\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m\"99 System/INDEX.md\"\r\n\u001b[39;2m └ 3 matches in 1F:\r\n\r\n … +7 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m|...\r\n\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mДобавляю в раздел Archive сам Markdown-файл с\r\n исходным списком вопросов, который был в Inbox\r\n и теперь перенесён.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[2m• \u001b[1;22mEdited\u001b[0m 99 System/INDEX.md (\u001b[32m+1\u001b[0m \u001b[31m-0\u001b[0m)\r\n \u001b[2m652 \u001b[0m \u001b[38;2;205;214;244m| [[Подготовка к защите ЛР2]] | Подгото\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mвка к защите ЛР2 | processing | lab | [\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mmephi] |\r\n\u001b[39;48;5;22m \u001b[2m653 \u001b[32;22m+\u001b[38;2;205;214;244m| [[Подготовка к экзамену по Веб-Разраб\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mотке]] | — | seed | concept | [] |\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mПроверка выявила важный момент: в HTML-тексте\r\n есть буквальные примеры тегов вроде \u001b[36m<head>\u001b[0m и\r\n \u001b[36m<form>\u001b[0m. Браузер может воспринять их как\r\n разметку, поэтому экранирую такие примеры и\r\n пересоберу PDF.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"<(doctype|html|head|body|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mtitle|meta|link|style|script|div|p|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22msection|span|a |img|br|form|label|input|\r\n\u001b[39;2m │ … +5 lines\r\n └ 351 matches in 145F:\r\n\r\n … +460 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +182\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mЭкранировать нужно не весь файл, а только\r\n примеры тегов внутри учебного текста. Правлю\r\n эти строки вручную, чтобы не задеть настоящую\r\n HTML-разметку документа.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Подготовка к экзамену по веб-\r\n разработке.html\r\n\r\n\u001b[2m• \u001b[1;22mEdited\u001b[0m 90 Library/Programming/Web/Подготовка к\r\nэкзамену по веб-разработке.html (\u001b[32m+6\u001b[0m \u001b[31m-6\u001b[0m)\r\n \u001b[2m400 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mdiv\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"cards\"\u001b[38;2;148;226;213m>\r\n\u001b[39;48;5;52m \u001b[2m401 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-html-\r\n\u001b[39;22m \u001b[2m \u001b[38;2;166;227;161mstructure\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mСтруктура документа\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\r\n\u001b[39;22m \u001b[2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mHTML5-документ начинается с `<!docty\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mpe html>`, затем `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mhtml\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`, внутри `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mhea\r\n\u001b[39;22m \u001b[2m \u001b[38;2;137;180;250md\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m` с метаданными и `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mbody\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m` с видимым\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mсодержимым.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mh\r\n\u001b[39;22m \u001b[2m \u001b[38;2;249;226;175mref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: HTML\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250martic\r\n\u001b[39;22m \u001b[2m \u001b[38;2;137;180;250mle\u001b[38;2;148;226;213m>\r\n\u001b[39;22m \u001b[2m402 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-html-\r\n\u001b[39;22m \u001b[2m \u001b[38;2;166;227;161mcomments\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mКомментарии в HTML\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\r\n\u001b[39;22m \u001b[2m \u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mКомментарий пишется как `\u001b[38;2;147;153;178m<!-- текст --\r\n\u001b[39;22m \u001b[2m \u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m`. Браузер его не отображает, но он ви\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mден в исходном коде.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detai\r\n\u001b[39;22m \u001b[2m \u001b[38;2;166;227;161ml-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: HTML\u001b[38;2;148;226;213m</\r\n\u001b[39;22m \u001b[2m \u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\u001b[38;2;148;226;213m>\r\n\u001b[39;22m \u001b[2m403 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-head\"\r\n\u001b[39;22m \u001b[2m \u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mТеги внутри head\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mВ `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mhead\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244m обычно находятся `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mtitle\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`, `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mmeta\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`,\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244m`\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mlink\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`, `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mstyle\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`, `<\u001b[38;2;137;180;250mscript\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m` и техни\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mческие данные страницы.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mde\r\n\u001b[39;22m \u001b[2m \u001b[38;2;137;180;250mtail-link\u001b[38;2;205;214;244m\" href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-html\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mПодробно: HTM\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mL</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39;22m \u001b[2m404 \u001b[31;22m-\u001b[38;2;205;214;244;2m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"card\" id=\"\u001b[38;2;137;180;250ms-meta\u001b[38;2;205;214;244m\"\r\n\u001b[39;22m \u001b[2m \u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mМета-теги и viewport</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m`<\u001b[38;2;137;180;250mmeta\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244m charset=\"\u001b[38;2;137;180;250mutf-8\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m` задаёт кодировку. `v\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244miewport` нужен адаптивной вёрстке: `wid\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mth=\u001b[38;2;137;180;250mdevice-width\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;137;180;250minitial-scale\u001b[38;2;205;214;244m=1.0`.</\u001b[38;2;137;180;250mp\r\n\u001b[39;22m \u001b[2m \u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mdetail-link\u001b[38;2;205;214;244m\" href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-html\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mПодробно: HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39;48;5;22;22m \u001b[2m401 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"card\" id=\"\u001b[38;2;137;180;250ms-html-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mstructure\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mСтруктура документа</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m<\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mHTML5-документ начинается с <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&l\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mt;!doctype \u001b[38;2;137;180;250mhtml\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>,\u001b[38;2;205;214;244m затем <\u001b[38;2;137;180;250mcode\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m&lt;\u001b[38;2;137;180;250mhtml\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>,\u001b[38;2;205;214;244m внутри <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mhead\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m с метаданными и <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mlt;\u001b[38;2;137;180;250mbody\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m с видимым содержимым\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mdetail-link\u001b[38;2;205;214;244m\" href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-ht\r\n\u001b[39m \u001b[2m \u001b[38;2;249;226;175;22mml\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mПодробно: HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m402 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"card\" id=\"\u001b[38;2;137;180;250ms-html-\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mcomments\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mКомментарии в HTML</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mp\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244mКомментарий пишется как <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;!--\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтекст --&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m. Браузер его не ото\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mбражает\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m но он виден в исходном коде.</\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mdetail-link\u001b[38;2;205;214;244m\" href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-html\u001b[38;2;205;214;244m\"\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244mПодробно: HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m403 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"card\" id=\"\u001b[38;2;137;180;250ms-head\u001b[38;2;205;214;244m\"\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mТеги внутри \u001b[38;2;137;180;250mhead\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mВ <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&l\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mt;\u001b[38;2;137;180;250mhead\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m обычно находятся <\u001b[38;2;137;180;250mcod\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22me\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;\u001b[38;2;137;180;250mtitle\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>,\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;\u001b[38;2;137;180;250mmeta\u001b[38;2;205;214;244m&\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mgt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>,\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;\u001b[38;2;137;180;250mlink\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>,\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m<\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;\u001b[38;2;137;180;250mstyle\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>,\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m&lt;\u001b[38;2;137;180;250ms\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mcript\u001b[38;2;205;214;244m&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m и технические данные с\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтраницы.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mdetail-link\u001b[38;2;205;214;244m\" href\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-html\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mПодробно: HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m404 \u001b[32;22m+\u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"card\" id=\"\u001b[38;2;137;180;250ms-meta\u001b[38;2;205;214;244m\"\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mМета-теги и viewport</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m&lt;\u001b[38;2;137;180;250mmeta\u001b[38;2;205;214;244m charset=\"\u001b[38;2;137;180;250mutf-8\u001b[38;2;205;214;244m\"&gt;</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m зад\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mаёт кодировку. <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mviewport</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m ну\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mжен адаптивной вёрстке: <\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mwidth=\u001b[38;2;137;180;250mdev\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mice-width\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m \u001b[38;2;137;180;250minitial-scale\u001b[38;2;205;214;244m=1.0</\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m.</\u001b[38;2;137;180;250mp\r\n\u001b[39m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mdetail-link\u001b[38;2;205;214;244m\" href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-html\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mПодробно: HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[0m \u001b[2m405 \u001b[0m \u001b[38;2;205;214;244m <\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m class=\"card\" id=\"\u001b[38;2;137;180;250ms-flow\u001b[38;2;205;214;244m\"\r\n\u001b[0m \u001b[2m \u001b[38;2;147;153;178;22m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНормальный поток</\u001b[38;2;137;180;250mh3\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mНормальный\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m поток — базовое расположение элементов\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22m без flex/grid/position: блочные идут с\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mверху вниз\u001b[38;2;147;153;178m,\u001b[38;2;205;214;244m строчные текут внутри строк\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mи.</\u001b[38;2;137;180;250mp\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m class=\"\u001b[38;2;137;180;250mdetail-link\u001b[38;2;205;214;244m\" href=\"\u001b[38;2;147;153;178m#\u001b[38;2;249;226;175md-h\r\n\u001b[0m \u001b[2m \u001b[38;2;249;226;175;22mtml\u001b[38;2;205;214;244m\"\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244mПодробно: HTML</\u001b[38;2;137;180;250ma\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m</\u001b[38;2;137;180;250marticle\u001b[38;2;147;153;178m>\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m411 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-text-\r\n\u001b[0m \u001b[2m \u001b[38;2;166;227;161;22mtable\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mЗаголовки, абзацы, списки, т\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mаблицы\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`h1-h6` задают структуру\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mзаголовков, `p` — абзац, `ul/ol/li` — с\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mписки, `table/tr/th/td` — табличные дан\r\n\u001b[0m \u001b[2m \u001b[38;2;205;214;244;22mные.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d\r\n\u001b[0m \u001b[2m \u001b[38;2;166;227;161;22m-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: HTML\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\u001b[38;2;148;226;213m>\r\n\u001b[39;48;5;52m \u001b[2m412 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-img-l\r\n\u001b[39;22m \u001b[2m \u001b[38;2;166;227;161mink\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mКартинки и ссылки\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mСсылк\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mа: `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"...\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`. Картинка: `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mimg\u001b[38;2;205;214;244m \u001b[38;2;249;226;175msr\r\n\u001b[39;22m \u001b[2m \u001b[38;2;249;226;175mc\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"...\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175malt\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"...\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`; `alt` важен для до\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mступности и случаев, когда изображение\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mне загрузилось.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-lin\r\n\u001b[39;22m \u001b[2m \u001b[38;2;166;227;161mk\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: HTML\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250ma\r\n\u001b[39;22m \u001b[2m \u001b[38;2;137;180;250mrticle\u001b[38;2;148;226;213m>\r\n\u001b[39;22m \u001b[2m413 \u001b[31;22m-\u001b[38;2;205;214;244;2m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-white\r\n\u001b[39;22m \u001b[2m \u001b[38;2;166;227;161mspace\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПереносы строк и пробелы\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\r\n\u001b[39;22m \u001b[2m \u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mВ HTML последовательности пробелов\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mсхлопываются. Перенос строки в коде обы\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mчно не равен переносу на странице; для\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mявного переноса есть `\u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mbr\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m`.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclas\r\n\u001b[39;22m \u001b[2m \u001b[38;2;249;226;175ms\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244m: HTML\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\u001b[38;2;148;226;213m>\r\n\u001b[39;48;5;22;22m \u001b[2m412 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-img-l\r\n\u001b[39m \u001b[2m \u001b[38;2;166;227;161;22mink\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mКартинки и ссылки\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mСсылк\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mа: \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;243;139;168m&lt;\u001b[38;2;205;214;244ma href=\"...\"\u001b[38;2;243;139;168m&gt;\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m. К\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mартинка: \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;243;139;168m&lt;\u001b[38;2;205;214;244mimg src=\"...\" alt=\".\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22m..\"\u001b[38;2;243;139;168m&gt;\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m; \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244malt\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m важен\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mдля доступности и случаев, когда изобра\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mжение не загрузилось.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"deta\r\n\u001b[39m \u001b[2m \u001b[38;2;166;227;161;22mil-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"#d-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: HTML\u001b[38;2;148;226;213m<\r\n\u001b[39m \u001b[2m \u001b[38;2;148;226;213;22m/\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\u001b[38;2;148;226;213m>\r\n\u001b[39m \u001b[2m413 \u001b[32;22m+\u001b[38;2;205;214;244m \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250marticle\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"card\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mid\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"s-white\r\n\u001b[39m \u001b[2m \u001b[38;2;166;227;161;22mspace\"\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250mh3\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПереносы строк и пробелы\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mh3\r\n\u001b[39m \u001b[2m \u001b[38;2;148;226;213;22m><\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mВ HTML последовательности пробелов\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mсхлопываются. Перенос строки в коде обы\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mчно не равен переносу на странице; для\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mявного переноса есть \u001b[38;2;148;226;213m<\u001b[38;2;137;180;250mcode\u001b[38;2;148;226;213m>\u001b[38;2;243;139;168m&lt;\u001b[38;2;205;214;244mbr\u001b[38;2;243;139;168m&gt;\u001b[38;2;148;226;213m</\r\n\u001b[39m \u001b[2m \u001b[38;2;137;180;250;22mcode\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244m.\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mp\u001b[38;2;148;226;213m><\u001b[38;2;137;180;250ma\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mclass\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"detail-link\"\u001b[38;2;205;214;244m \u001b[38;2;249;226;175mhref\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"\r\n\u001b[39m \u001b[2m \u001b[38;2;166;227;161;22m#d-html\"\u001b[38;2;148;226;213m>\u001b[38;2;205;214;244mПодробно: HTML\u001b[38;2;148;226;213m</\u001b[38;2;137;180;250ma\u001b[38;2;148;226;213m></\u001b[38;2;137;180;250marticle\u001b[38;2;148;226;213m>\r\n\u001b[0m \u001b[2m414 \u001b[0m \u001b[38;2;205;214;244m \u001b[38;2;148;226;213m</\u001b[38;2;137;180;250mdiv\u001b[38;2;148;226;213m>\u001b[29X\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"\u001b[38;2;147;153;178m`\u001b[38;2;148;226;213m<|>\u001b[38;2;147;153;178m`\u001b[38;2;166;227;161m|<code>[^<]*<[^/]|&lt;\"\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m\"90 Library/Programming/Web/Подготовка к\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mэкзамену по веб-разработке.html\"\r\n\u001b[39;2m └ zsh:1: parse error near `|'\r\n\u001b[0m \u001b[2mzsh:1: parse error in command substitution\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'`<'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mWeb/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.html\"\r\n\u001b[39;2m └ 1 matches in 1F:\r\n\r\n … +4 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mtr><tr><td>`POST`</td>...\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'&lt;'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mProgramming/Web/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.html\"\r\n\u001b[39;2m └ 7 matches in 7F:\r\n\r\n … +21 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mclass=\"detai...\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'>`'\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mWeb/Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.html\"\r\n\r\n\r\n\u001b[39;2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mКритичные \u001b[36m<...>\u001b[0m-примеры исправлены.\r\n Пересобираю PDF, чтобы он соответствовал\r\n исправленному HTML.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mchromium\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mheadless\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mno-sandbox\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mdisable-gpu\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mprint-to-pdf\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"/home/ada/Documents/Vaults\r\n\u001b[39;2m │ … +4 lines\r\n └ 475983 bytes written to file /home/ada/\r\n\u001b[0m \u001b[2mDocuments/Vaults/SecondBrain/90 Library/\r\n\u001b[0m \u001b[2mProgramming/Web/Подготовка к экзамену по\r\n\u001b[0m \u001b[2mвеб-разработке.pdf\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mДобавлю ссылку на готовый HTML/PDF в\r\n существующий MOC экзамена и уберу устаревший\r\n список “недостающих” тем, потому что HTTP/3 и\r\n OAuth теперь закрыты отдельными заметками.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m Экзамен - Веб-ориентированные\r\n\u001b[2m \u001b[0mсистемы.md\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mMOC оказался действительно устаревшим только\r\n по сетевым недостающим темам. Оставляю его\r\n коротким: добавляю готовый файл подготовки и\r\n новые сетевые ссылки.\r\n\r\n\u001b[2m• \u001b[1;22mEdited\u001b[0m 90 Library/Programming/Web/Экзамен -\r\nВеб-ориентированные системы.md (\u001b[32m+6\u001b[0m \u001b[31m-6\u001b[0m)\r\n \u001b[2m 6 \u001b[0m \u001b[38;2;205;214;244mcreated: 2026-06-01\r\n\u001b[39;48;5;52m \u001b[2m 7 \u001b[31;22m-\u001b[38;2;205;214;244;2mupdated: 2026-06-01\u001b[21X\r\n\u001b[39;48;5;22;22m \u001b[2m 7 \u001b[32;22m+\u001b[38;2;205;214;244mupdated: 2026-06-04\u001b[21X\r\n\u001b[0m \u001b[2m 8 \u001b[0m \u001b[38;2;205;214;244msource: \"[[Экзамен.pdf]]\"\u001b[15X\r\n\u001b[0m \u001b[2m ⋮\r\n\u001b[0m \u001b[2m18 \u001b[0m \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m :--- \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m :--- \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m :--- \u001b[38;2;147;153;178m|\r\n\u001b[39;48;5;52m \u001b[2m19 \u001b[31;22m-\u001b[38;2;147;153;178;2m|\u001b[38;2;205;214;244m **Сети и основы** \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m IPv4/v6, TCP, DNS,\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244m HTTP, OAuth 2.0 \u001b[38;2;147;153;178m|\u001b[38;2;205;214;244m [[IPv6]], [[TCP vs UD\r\n\u001b[39;22m \u001b[2m \u001b[38;2;205;214;244mP]], [[DNS]] \u001b[38;2;147;153;178m|\r\n\u001b[39;48;5;22;22m \u001b[2m \u001b[38;2;205;214;244;22mтке.html]]\u001b[30X\r\n\u001b[39m \u001b[2m26 \u001b[32;22m+\u001b[38;2;147;153;178m-\u001b[38;2;205;214;244m [[Подготовка к экзамену по веб-разрабо\r\n\u001b[39m \u001b[2m \u001b[38;2;205;214;244;22mтке.pdf]]\r\n\u001b[0m \u001b[2m27\u001b[42X\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mФинальная проверка: якоря HTML, PDF после\r\n пересборки, пустой Inbox, архивированные\r\n исходники и итоговый git status.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mList\u001b[0m python3 -c \"import re, pathlib;\r\n p=pathlib.Path(\\\"90 Library/\r\n Programming/\r\n Web/Подготовка к экзамену по веб-\r\n разработке.html\\\"); s=p.read_text();\r\n ids=set(re.findall(r\\\"id=\\\\\\\"([\"'^'\"\\\\\r\n \\\"]+)\\\\\\\"\\\", s));\r\n print(\\\"duplicate_ids\\\",\r\n len(re.findall(r\\\"id=\\\\\\\"([\"'^'\"\\\\\r\n \\\"]+)\\\\\r\n \\\"\\\", s))-len(ids)); print(\\\"ids\\\",\r\n len(ids), \\\"hash_links\\\", len(hrefs))\"\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mfile\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.pdf\"\r\n\u001b[39;2m └ 90 Library/Programming/Web/Подготовка к\r\n\u001b[0m \u001b[2mэкзамену по веб-разработке.pdf: PDF\r\n\u001b[0m \u001b[2mdocument, version 1.4, 8 page(s)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"00 Inbox\"\r\n\u001b[39;2m └ (empty)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mArchive/00_базовые_понятия.pdf\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mSystem/Archive/Подготовка к экзамену по\r\n\u001b[39;2m │ … +1 lines\r\n └ 99 System/Archive/00_базовые_понятия.pdf\r\n\u001b[0m \u001b[2m967.5K\r\n\u001b[0m \u001b[2m99 System/Archive/Подготовка к экзамену по\r\n\u001b[0m \u001b[2mВеб-Разработке.md 7.5K\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mSearch\u001b[0m *.md\u001b[2m in \u001b[0m.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git status\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mshort\r\n\u001b[39;2m └ M .obsidian/workspace.json\r\n\u001b[0m \u001b[2m M \"90 Library/Programming/Web/Подготовка к\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m M \"90 Library/Programming/Web/Экзамен -\r\n\u001b[0m \u001b[2mВеб-ориентированные системы.md\"\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mstat\r\n\u001b[39;2m └ .obsidian/workspace.json\r\n\u001b[0m \u001b[2m| 20 ++++++++------------\r\n … +7 lines (ctrl + t to view transcript)\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.pdf\"\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m|\u001b[38;2;205;214;244m \u001b[38;2;137;180;250msed\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'1,80p'\r\n\u001b[39;2m └ 04.06.2026, 09:27\r\n\r\n … +76 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2mtextarea\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[36;22mgit status\u001b[0m в коротком виде не показывает новые\r\n Markdown-заметки, похоже, из-за правил\r\n отслеживания/ignore. Проверю явным режимом\r\n \u001b[36m--untracked-files=all\u001b[0m и наличие созданных\r\n файлов на диске.\r\n\r\n \u001b[2m M \"90 Library/Programming/Web/Подготовка к\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m M \"90 Library/Programming/Web/Экзамен -\r\n\u001b[0m \u001b[2mВеб-ориентированные системы.md\"\r\n\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mList\u001b[0m HTTP, HTTPS и HTTP3.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m ls\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mla\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Networking/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПротоколы/HTTP, HTTPS и HTTP3.md\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mLibrary/Networking/Протоколы/URI, URL,\r\n\u001b[39;2m │ … +5 lines\r\n └ 90 Library/Networking/OAuth 2.0.md 2.5K\r\n\u001b[0m \u001b[2mURN.md 2.3K\r\n\u001b[0m \u001b[2m90 Library/Networking/Сетевые порты.md 1.9K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mСозданные сетевые заметки уже находятся под\r\n git-tracking, поэтому не попали как untracked.\r\n Проверю, что индекс действительно обновлён в\r\n файле и не расходится с фактическим счётчиком.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mRead\u001b[0m INDEX.md\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m grep\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"HTTP, HTTPS и HTTP3|OAuth\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22m2.0|Подготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mВеб-Разработке|total: 504|Всего заметок \\|\r\n\u001b[39;2m │ … +1 lines\r\n └ 5 matches in 2F:\r\n\r\n … +12 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m|...\r\n\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git diff\u001b[38;2;148;226;213m --\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/INDEX.md\"\r\n\u001b[39;2m └\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mPDF сейчас содержит стандартный chromium-\r\n header с датой. Пересоберу с флагом без\r\n header/footer, чтобы файл выглядел как\r\n самостоятельный конспект.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mchromium\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mheadless\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mno-sandbox\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mdisable-gpu\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mno-pdf-header-footer\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172mprint-to-pdf\u001b[38;2;148;226;213m=\u001b[38;2;166;227;161m\"/home/ada/Documents/Vaults\r\n\u001b[39;2m │ … +4 lines\r\n └ 440516 bytes written to file /home/ada/\r\n\u001b[0m \u001b[2mDocuments/Vaults/SecondBrain/90 Library/\r\n\u001b[0m \u001b[2mProgramming/Web/Подготовка к экзамену по\r\n\u001b[0m \u001b[2mвеб-разработке.pdf\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mfile\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.pdf\"\r\n\u001b[39;2m └ 90 Library/Programming/Web/Подготовка к\r\n\u001b[0m \u001b[2mэкзамену по веб-разработке.pdf: PDF\r\n\u001b[0m \u001b[2mdocument, version 1.4, 8 page(s)\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mrtk\u001b[38;2;205;214;244m git status\u001b[38;2;147;153;178m --\u001b[38;2;235;160;172mshort\r\n\u001b[39;2m │ \u001b[38;2;147;153;178;22m--\u001b[38;2;235;160;172muntracked-files\u001b[38;2;148;226;213m=\u001b[38;2;205;214;244mall\r\n\u001b[39;2m └ M .obsidian/workspace.json\r\n\u001b[0m \u001b[2m M \"90 Library/Programming/Web/Подготовка к\r\n … +3 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m M \"90 Library/Programming/Web/Экзамен -\r\n\u001b[0m \u001b[2mВеб-ориентированные системы.md\"\r\n\r\n\u001b[32;1;22m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpdftotext\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/Programming/Web/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mПодготовка к экзамену по\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mвеб-разработке.pdf\"\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m|\u001b[38;2;205;214;244m \u001b[38;2;137;180;250msed\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'1,24p'\r\n\u001b[39;2m └ Подготовка к экзамену по веб-разработке\r\n\u001b[0m \u001b[2mКраткий конспект по темам из файла\r\n … +23 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mDNS\r\n\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mГотово.\r\n\r\n Создал файл подготовки:\r\n\r\n - \u001b[36m90 Library/Programming/Web/Подготовка к\r\n\u001b[0m \u001b[36mэкзамену по веб-разработке.pdf\u001b[0m — 8 страниц,\r\n без chromium header/footer.\r\n\r\n Проинджестил блок 1 в подробные заметки:\r\n Также обновил MOC \u001b[36m90 Library/Programming/Web/\r\n\u001b[0m \u001b[36mЭкзамен - Веб-ориентированные системы.md\u001b[0m и \u001b[36m99\r\n\u001b[0m \u001b[36mSystem/INDEX.md\u001b[0m.\r\n\r\n Исходники перенёс в архив:\r\n\r\n - \u001b[36m99 System/Archive/00_базовые_понятия.pdf\r\n\u001b[0m - \u001b[36m99 System/Archive/Подготовка к экзамену по\r\n\u001b[0m \u001b[36mВеб-Разработке.md\r\n\r\n\u001b[0m Проверки: якоря HTML без битых ссылок и\r\n дублей, PDF пересобран, \u001b[36m00 Inbox\u001b[0m пустой. В git\r\n ещё висит изменённый \u001b[36m.obsidian/workspace.json\u001b[0m;\r\n я его не трогал.\r\n\r\n\u001b[2m─ Worked for 6m 32s ────────────────────────────\r\n\r\n\u001b[48;5;238;22m\u001b[48X\r\n\u001b[1;2m \u001b[22;22mКакой лучше инструмент скачать для экспорта в\r\n pdf?\r\n И убери ссылки напрямую на Vault, просто\r\n заметки из vault впиши полностью в этот\r\n конспект, В короткой инфе - самое важно, в\r\n подробной - всё, что есть\r\n\r\n\u001b[0m\u001b[48X\r\n\u001b[2m• \u001b[0mПлан: сначала отвечу по инструменту экспорта с\r\n опорой на актуальные официальные источники,\r\n затем перепишу HTML так, чтобы подробные блоки\r\n содержали полный текст заметок из vault без\r\n прямых ссылок на \u001b[36m.md\u001b[0m. После этого пересоберу\r\n PDF и проверю якоря.\r\n\r\n•\u001b[1C\u001b[1mSearching the web\r\n\r\n\u001b[0m•\u001b[1C\u001b[2mWorking\u001b[1C(24s • esc to interrupt)\r\n\r\n\u001b[48;5;238;22m \u001b[47X\r\n\u001b[1m\u001b[22m \u001b[2mSummarize recent commits\r\n\u001b[22m \r\n\u001b[0m\u001b[2X\u001b[2C\u001b[38;2;246;226;183mgpt-5.5 high\u001b[39;2m · \u001b[38;2;171;223;167;22m~/Documents/Vaults/SecondBrain\u001b[1X\u001b[2A\u001b[45D\u001b[0m",
"rows": 34,
"scrollLine": -1
}
}
},
"pinned": true,
"icon": "terminal",
"title": "Terminal: ⠙ SecondBrain"
}
},
{
"id": "1ef10fc51fc1f1e1",
"type": "leaf",
"pinned": true,
"state": {
"type": "git-view",
"state": {},
"pinned": true,
"icon": "git-pull-request",
"title": "Source Control"
}
},
{
"id": "394fb6e28d09b8f3",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "e51be669e29cd994",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "90 Library/Programming/Web/Основы HTML (структура, таблицы, формы).md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for Основы HTML (структура, таблицы, формы)"
}
},
{
"id": "86ea4ddeaafff092",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Sidekiq - основа работы"
}
},
{
"id": "a0ffd3bace615787",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "00 Inbox/Экзамен - MOC.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Экзамен - MOC"
}
}
]
}
],
"direction": "horizontal",
"width": 482
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"markdown-importer:Open format converter": false,
"random-note:Open random note": false,
"audio-recorder:Start/stop recording": false,
"bases:Create new base": false,
"omnisearch:Omnisearch": false,
"templater-obsidian:Templater": false,
"obsidian-git:Open Git source control": false,
"obsidian-excalidraw-plugin:New drawing": false,
"terminal:Open terminal": false,
"3d-graph-new:Global 3D Graph": false
}
},
"active": "06940eb960fc1db5",
"lastOpenFiles": [
"90 Library/Programming/Web/Подготовка к экзамену по веб-разработке.pdf",
"90 Library/Programming/Programming - MOC.md",
"99 System/Archive/00_базовые_понятия.pdf",
"99 System/Archive/Подготовка к экзамену по Веб-Разработке.md",
"90 Library/Networking/Веб-аутентификация и авторизация.md",
"90 Library/Programming/Web/Подготовка к экзамену по веб-разработке.html",
"90 Library/Programming/Web/Адаптивность, Flexbox и Grid.md",
"90 Library/Programming/Web/Основы веб-разработки.md",
"90 Library/Programming/Web/Основы Bootstrap.md",
"90 Library/Programming/Web/Основы HTML (структура, таблицы, формы).md",
"90 Library/Programming/Web/Основы, селекторы и блочная модель.md",
"90 Library/Programming/Web/Экзамен - Веб-ориентированные системы.md",
"90 Library/Networking/OAuth 2.0.md",
"90 Library/Networking/Подсети и маска подсети.md",
"90 Library/Networking/Сетевые порты.md",
"90 Library/Networking/Протоколы/URI, URL, URN.md",
"90 Library/Networking/Протоколы/HTTP, HTTPS и HTTP3.md",
"00 Inbox/Подготовка к экзамену по Веб-Разработке.md",
"00 Inbox/00_базовые_понятия.pdf",
"99 System/Archive/Основные команды git.md",
"99 System/Archive/Подготовка к защите ЛР2.md",
"99 System/Archive/Подготовка к экзамену по Экономическому анализу.md",
"AGENTS.md",
"90 Library/Other/Сканер отпечатка пальцев.md",
"00 Inbox/Краткая теория с важными формулами по нечетким выводам.sync-conflict-20260603-140755-23DMR5O.md",
"90 Library/Programming/Python/Работа с формами и CUD.md",
"90 Library/Programming/Python/Представления, шаблоны и CBV.md",
"90 Library/Programming/Python/Модели и ORM.md",
"90 Library/Programming/Python/Базовый синтаксис и основы.md",
"04 Tools/StudyTracker/Courses",
"04 Tools/StudyTracker/Books",
"04 Tools/SocialBase/04 Другие",
"04 Tools/SocialBase/03 Коллеги",
"04 Tools/SocialBase/02 Друзья",
"04 Tools/SocialBase/01 Семья",
"99 System/Cache/Pasted image 20260526204029.png",
"99 System/Cache/Pasted image 20260526203848.png",
"99 System/Cache/Pasted image 20260526203807.png",
"99 System/Cache/Pasted image 20260521134256.png",
"99 System/Cache/Pasted image 20260521134238.png",
"99 System/Cache/Pasted image 20260521134228.png",
"99 System/Cache/Pasted image 20260521134207.png",
"99 System/Cache/Pasted image 20260521133832.png",
"99 System/Cache/Pasted image 20260521133824.png",
"99 System/Cache/Pasted image 20260521133344.png",
"00 Inbox/Untitled.canvas"
]
}