323 lines
107 KiB
JSON
323 lines
107 KiB
JSON
{
|
||
"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": "markdown",
|
||
"state": {
|
||
"file": "90 Library/Programming/Web/Основы, селекторы и блочная модель.md",
|
||
"mode": "preview",
|
||
"source": false,
|
||
"backlinks": false
|
||
},
|
||
"icon": "lucide-file",
|
||
"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[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></\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<\u001b[38;2;137;180;250mhtml\u001b[38;2;205;214;244m></\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;137;180;250;22mhead\u001b[38;2;205;214;244m></\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></\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<!--\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. Браузер его не ото\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></\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<\u001b[38;2;137;180;250mtitle\u001b[38;2;205;214;244m></\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<\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<\u001b[38;2;137;180;250mlink\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<\u001b[38;2;137;180;250mcode\u001b[38;2;147;153;178m>\u001b[38;2;205;214;244m<\u001b[38;2;137;180;250mstyle\u001b[38;2;205;214;244m></\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<\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></\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<\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\"></\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<\u001b[38;2;205;214;244ma href=\"...\"\u001b[38;2;243;139;168m>\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<\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>\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<\u001b[38;2;205;214;244mbr\u001b[38;2;243;139;168m>\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>[^<]*<[^/]|<\"\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'<'\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[2m◦\u001b[0m \u001b[1mSearching the web\r\n\r\n\u001b[22;2m•\u001b[0m \u001b[1mSearched\u001b[0m Chrome headless print to pdf command\r\n official documentation\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mПо инструменту коротко: для этого кейса лучше\r\n не скачивать отдельный конвертер, а\r\n использовать уже установленный Chromium\r\n headless. Он официально поддерживает \u001b[36m--print-\r\n\u001b[0m \u001b[36mto-pdf\u001b[0m и \u001b[36m--no-pdf-header-footer\u001b[0m; для HTML с\r\n якорями и браузерной CSS-вёрсткой это самый\r\n предсказуемый вариант. \u001b[36mWeasyPrint\u001b[0m хорош для\r\n печатной CSS-вёрстки, но может отличаться от\r\n браузерного рендера; \u001b[36mpandoc\u001b[0m сильнее для\r\n Markdown/LaTeX-документов, а PDF обычно\r\n требует отдельный PDF engine. Сейчас переделаю\r\n конспект под твоё требование.\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 pandoc\r\n\u001b[39;2m └ /usr/bin/pandoc\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\"<section class=\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161mdetails\u001b[38;2;245;194;231m\\\"\u001b[38;2;166;227;161m|</\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22msection>|note-source|Vault:\"\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 │ … +1 lines\r\n └ 33 matches in 25F:\r\n\r\n … +83 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m 693: </section>\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 wc\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\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\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"90 Library/\r\n\u001b[39;2m │ … +17 lines\r\n └ 698 веб-разработке.html\r\n\u001b[0m \u001b[2m123 HTTP3.md\r\n … +10 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m190 CUD.md\r\n\u001b[0m \u001b[2mΣ 2207\r\n\r\n────────────────────────────────────────────────\r\n │ \u001b[38;2;166;227;161;22mimport re\r\n\u001b[39;2m │ … +287 lines\r\n └ (no output)\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mПодробная часть заменена. Проверяю, что не\r\n осталось ссылок на \u001b[36m.md\u001b[0m, что якоря целые, и что\r\n все прежние короткие ссылки ведут в\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 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=\"[^\"]+\\.md|\\.md\">|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mVault:|note-source|data-note-title'\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/Programming/Web/Подготовка к\r\n\u001b[39;2m │ … +1 lines\r\n … +32 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +9\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 wc\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172ml\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 └ 2591\r\n\r\n•\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 hrefs=re.findall(r\\\"href=\\\\\\\"#([\"'^'\"\\\\\r\n \\\"]+)\\\\\\\"\\\", s); print(\\\"missing\\\",\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 \u001b[36mRead\u001b[0m Подготовка к экзамену по веб-\r\n разработке.html\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[36;22mpandoc\u001b[0m добавил одинаковые \u001b[36mid\u001b[0m на заголовки\r\n внутри вставленных заметок, это может ломать\r\n якоря. Уберу эти внутренние \u001b[36mid\u001b[0m, оставлю только\r\n наши управляемые якоря карточек и подробных\r\n\u001b[2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re\r\n\u001b[39;2m │ … +18 lines\r\n └ (no output)\r\n\r\n• \u001b[0mModel interrupted to submit steer\r\ninstructions.\r\n\r\n\u001b[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Понял. Сейчас проверю все \u001b[36m<img src=...>\u001b[0m из\r\n HTML: какие пути не существуют относительно\r\n файла конспекта, исправлю относительные пути/\r\n кодирование и пересоберу PDF.\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172mc\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'import bs4;\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mprint(bs4.__version__)'\r\n\u001b[39;2m └ Traceback (most recent call last):\r\n\u001b[0m \u001b[2m File \"<string>\", line 1, in <module>\r\n•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mSearch\u001b[0m *.png\u001b[2m in \u001b[0m90 Library\r\n\r\n\u001b[31;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom bs4 import BeautifulSoup\r\n\u001b[39;2m │ … +23 lines\r\n └ Traceback (most recent call last):\r\n\u001b[0m \u001b[2m File \"<stdin>\", line 2, in <module>\r\n\u001b[0m \u001b[2mModuleNotFoundError: No module named 'bs4'\r\n• \u001b[0mПричина уже видна: в \u001b[36m90 Library\u001b[0m нет ни одного\r\n локального изображения, а подробные заметки\r\n что исходных файлов картинок нет рядом с\r\n заметками. Сейчас найду, есть ли эти\r\n изображения в vault в других папках; если нет\r\n — уберу битые \u001b[36m<img>\u001b[0m из конспекта и оставлю\r\n подписи/текст, чтобы PDF был без сломанных\r\n картинок.\r\n\r\n\u001b[2m•\u001b[0m \u001b[1mExplored\r\n\u001b[22;2m └ \u001b[36;22mSearch\u001b[0m *.png\u001b[2m in \u001b[0m.\r\n \u001b[36mSearch\u001b[0m *.png\u001b[2m in \u001b[0m.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom urllib.parse import unquote\r\n\u001b[39;2m │ … +19 lines\r\n └ imgs 15\r\n\u001b[0m \u001b[2mMISS ../../Networking/Протоколы/\r\n … +34 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mhome/ada/Documents/Vaults/SecondBrain/90\r\n\u001b[0m \u001b[2mLibrary/Networking/3_NAT_image.png\r\n\r\n• \u001b[0mModel interrupted to submit steer\r\ninstructions.\r\n\r\n\u001b[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Починю именно изображения: перенаправлю все\r\n \u001b[36msrc\u001b[0m на реальные файлы в \u001b[36m99 System/Cache\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'<img[^>]+src='\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 └ 15 matches in 1F:\r\n\r\n … +22 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mNetworking/3_NAT_image.png\" /></p>\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/Cache/\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mIPv6_image.png\"\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;22mCache/5_IPv6_image.png\"\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m\"99 System/\r\n\u001b[39;2m │ … +13 lines\r\n └ 99 System/Cache/11_IPv6_image.png 5.9K\r\n\u001b[0m \u001b[2m99 System/Cache/12_IPv6_image.png 10.4K\r\n … +12 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m99 System/Cache/NAT_image.png 13.5K\r\n\u001b[0m \u001b[2m99 System/Cache/TCP vs UDP_2.png 9.5K\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mВсе нужные картинки есть в \u001b[36m99 System/Cache\u001b[0m;\r\n сломаны были только относительные пути после\r\n встраивания заметок. Меняю \u001b[36msrc\u001b[0m на реальные\r\n относительные пути от HTML.\r\n \u001b[2mmissing 0\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'<img[^>]+src='\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 └ 15 matches in 1F:\r\n\r\n … +22 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mCache/3_NAT_image.png\" /></p>\r\n\r\n\r\n•\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 hrefs=re.findall(r\\\"href=\\\\\\\"#([\"'^'\"\\\\\r\n \\\"]+)\\\\\\\"\\\", s);\r\n print(\\\"missing_anchors\\\",\r\n sorted(set(hrefs)-ids));\r\n print(\\\"duplicate_ids\\\",\r\n len(re.findall(r\\\"id=\\\\\\\"([\"'^'\"\\\\\r\n \\\"]+)\\\\\r\n \\\"\\\", s))-len(ids))\"\r\n\r\n\u001b[2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mКартинки уже указывают на реальные файлы.\r\n Остался технический мусор: \u001b[36mpandoc\u001b[0m оставил\r\n внутренние повторяющиеся \u001b[36mid\u001b[0m из встроенных\r\n заметок; уберу их, сохранив только якоря\r\n коротких карточек и основных подробных блоков.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mimport re, collections\r\n\u001b[39;2m │ … +8 lines\r\n └ 4 cb1\r\n\u001b[0m \u001b[2m4 cb1-1\r\n … +126 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m2 cb2-12\r\n\u001b[0m \u001b[2m2 cb2-13\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/\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 └ 590 matches in 132F:\r\n\r\n … +424 lines (ctrl + t to view transcript)\r\n\r\n\u001b[0m \u001b[2m... +434\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mДубли \u001b[36mid\u001b[0m оказались у подсветки кода (\u001b[36mcb1\u001b[0m, \u001b[36mcb2\r\n\u001b[0m и т.п.), это не наши навигационные якоря.\r\n Убираю только эти служебные \u001b[36mid\u001b[0m и добавляю CSS,\r\n чтобы картинки не вылезали за страницу в HTML/\r\n PDF.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mperl\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172m0pi\u001b[38;2;147;153;178m -\u001b[38;2;235;160;172me\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m's/ id=\"cb[^\"]+\"//g'\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/Programming/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• \u001b[1;22mEdited\u001b[0m 90 Library/Programming/Web/Подготовка к\r\nэкзамену по веб-разработке.html (\u001b[32m+8\u001b[0m \u001b[31m-0\u001b[0m)\r\n \u001b[2m 91\r\n\u001b[48;5;22;22m \u001b[2m 92 \u001b[32;22m+\u001b[38;2;205;214;244m img {\u001b[30X\r\n\u001b[39m \u001b[2m 93 \u001b[32;22m+\u001b[38;2;205;214;244m display: block;\r\n\u001b[39m \u001b[2m 94 \u001b[32;22m+\u001b[38;2;205;214;244m max-width: 100%;\r\n\u001b[39m \u001b[2m 95 \u001b[32;22m+\u001b[38;2;205;214;244m height: auto;\r\n\u001b[39m \u001b[2m 96 \u001b[32;22m+\u001b[38;2;205;214;244m margin: 10px auto 14px;\r\n\u001b[39m \u001b[2m 97 \u001b[32;22m+\u001b[38;2;205;214;244m page-break-inside: avoid;\r\n\u001b[39m \u001b[2m 98 \u001b[32;22m+\u001b[38;2;205;214;244m }\r\n\u001b[39m \u001b[2m 99 \u001b[32;22m+\r\n\u001b[0m \u001b[2m100 \u001b[0m \u001b[38;2;205;214;244m .meta {\u001b[28X\r\n\r\n\u001b[39;2m────────────────────────────────────────────────\r\n\r\n• \u001b[0mТеперь проверяю: нет битых картинок, нет\r\n ссылок на \u001b[36m.md\u001b[0m, нет дублирующихся якорей.\r\n\r\n\u001b[32;1m•\u001b[0m \u001b[1mRan\u001b[0m \u001b[38;2;137;180;250mpython3\u001b[38;2;205;214;244m - \u001b[38;2;148;226;213m<<\u001b[38;2;166;227;161m'\u001b[38;2;203;166;247mPY\u001b[38;2;166;227;161m'\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom pathlib import Path\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mfrom urllib.parse import unquote\r\n\u001b[39;2m │ … +27 lines\r\n └ images 15 missing_images 0\r\n\u001b[0m \u001b[2mmissing_anchors ['cb1-1', 'cb1-10',\r\n … +53 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2m'cb9-7', 'cb9-8', 'cb9-9']\r\n\u001b[0m \u001b[2mduplicate_ids 0\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;172mn\u001b[38;2;205;214;244m \u001b[38;2;166;227;161m'href=\"[^\"]+\\.md|\\.md\">|\r\n\u001b[39;2m │ \u001b[38;2;166;227;161;22mVault:'\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 └ 0 matches for 'href=\"[^\"]+\\.md|\\.md\">|\r\n\u001b[0m \u001b[2mVault:'\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'<img[^>]+src='\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 └ 15 matches in 1F:\r\n\r\n … +22 lines (ctrl + t to view transcript)\r\n\u001b[0m \u001b[2mCache/3_NAT_image.png\" /></p>\r\n\r\n\r\n────────────────────────────────────────────────\r\n\r\n• \u001b[0mКартинки уже валидны, но после удаления\r\n служебных \u001b[36mid\u001b[0m остались служебные ссылки\r\n подсветки кода на \u001b[36m#cb...\u001b[0m. Они не относятся к\r\n оглавлению; убираю их, чтобы проверка якорей\r\n была чистой.\r\n\r\n\u001b[31m■ Conversation interrupted - tell the model what\r\nto do differently. Something went wrong? Hit `/\r\nfeedback` to report the issue.\r\n\u001b[0mToken usage: total=324 789 input=272 952 (+ 6 291 456 cached) output=51 837 (reasoning 11 493)\r\nTo continue this session, run \u001b[36mcodex resume 019e9134-c801-7193-bd43-df25eb59688b\r\n\r\n\u001b[38;5;244m╭─\u001b[30m \u001b[0m \u001b[38;5;31m \u001b[38;5;39;1m~\u001b[38;5;31;22m/\u001b[38;5;103mDoc\u001b[38;5;31m/\u001b[38;5;103mV\u001b[38;5;31m/\u001b[38;5;39;1mSecondBrain\u001b[38;5;31;22m \u001b[0mon \u001b[38;5;76m\u001b[38;5;178m \u001b[38;5;76m main \u001b[38;5;178m!2\r\n\u001b[38;5;244m╰─\u001b[38;5;76m❯\u001b[0m ",
|
||
"rows": 34,
|
||
"scrollLine": -1
|
||
}
|
||
}
|
||
},
|
||
"pinned": true,
|
||
"icon": "terminal",
|
||
"title": "Terminal: ZSH"
|
||
}
|
||
},
|
||
{
|
||
"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,
|
||
"collapsed": true
|
||
},
|
||
"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": "3e242b36cec6a5ec",
|
||
"lastOpenFiles": [
|
||
"90 Library/Programming/Web/Основы веб-разработки.md",
|
||
"90 Library/Programming/Web/Основы Bootstrap.md",
|
||
"90 Library/Programming/Web/Экзамен - Веб-ориентированные системы.md",
|
||
"90 Library/Programming/Web/Подготовка к экзамену по веб-разработке.pdf",
|
||
"90 Library/Programming/Web/XXnoTYCY",
|
||
"90 Library/Programming/Web/XXUPzo1Z",
|
||
"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/Основы HTML (структура, таблицы, формы).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 Коллеги",
|
||
"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"
|
||
]
|
||
} |