[
  { "title": "Нейросети_1", "url": "/blog/nejroseti-1/", "summary": "\u003cdiv class=\"post-box\"\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Мой первый существенный опыт использования нейросетей был связан с  онлайн-моделью Gemini. В вопросах изучения некоторых языков эта модель неплохо себя показала. В большей мере я пытался лучше познакомиться с японским языком при помощи этой модели. Об идеальной работе модели в этом плане я сказать не могу, потому что не так давно начал знакомиться с японским языком, но комментарии и объяснения мне понравились.\n\u003cp\u003e    Что ещё могу сказать по этому поводу? Нейросети не идеальны — в их работе не исключены ошибки. Человек может ошибаться, а нейросети тем более.\u003c/p\u003e", "content": " \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Мой первый существенный опыт использования нейросетей был связан с онлайн-моделью Gemini. В вопросах изучения некоторых языков эта модель неплохо себя показала. В большей мере я пытался лучше познакомиться с японским языком при помощи этой модели. Об идеальной работе модели в этом плане я сказать не могу, потому что не так давно начал знакомиться с японским языком, но комментарии и объяснения мне понравились. Что ещё могу сказать по этому поводу? Нейросети не идеальны — в их работе не исключены ошибки. Человек может ошибаться, а нейросети тем более.\nКроме работы с языками, я также обращался к Gemini с вопросами, которые связаны с IT-технологиями. И наверное, тогда у меня появилась мысль, что IT-сфера — это та область, в которой нейросети могут быть наиболее полезны. Тоже, кстати, могу и ошибаться в этом. Однако, с помощью той же Gemini мне удалось перепрошить свой телефон. Это не было лёгким путём, но получилось. Eщё я использовал данную модель и в настройках сервера VPS какое-то время, и в других вопросах, связанных с IT.\nОднажды я утратил доступ к Gemini. Модель стала недоступна для меня, а танцев с бубном мне не хотелось. Пришлось искать альтернативу. С изучением японского языка я пока что приостановился. Много информации и вопросов накопилось общего характера. И что касается самой информации и её полезного использования, тоже не убавилось вопросов. Но, альтернативу Gemini я искал недолго.\nDeepSeek пришла на смену. Решение вопросов, связанных с терминалом Linux Mint, с сервером, с различными программами для ПК и смартфона — это те области, в которых онлайн-модель DeepSeek оказалась для меня полезной. Плюс, создание собственного статического сайта на VPS — также в большей мере заслуга DeepSeek.\n❗❗❗Думаю, что нейросети можно рассматривать как вспомогательный инструмент в процессе обучения, и как со всяким инструментом, в работе с нейросетью необходимо соблюдать меры безопасности.\nНапример:\nЖелательно ли знакомить нейросетьевую модель со своими персональными данными?\nНадо ли полагаться на нейросеть в вопросах физического и психологического здоровья?\nМогут быть и другие вопросы, на которые я бы ответил отрицательно.\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Продолжение следует... " },
  { "title": "Первая мысль", "url": "/thoughts/pervaya-mysl/", "summary": "\u003cp\u003eЭто первая запись в разделе \u0026ldquo;Мысли\u0026rdquo;. Здесь будут размышления о жизни.\u003c/p\u003e", "content": "Это первая запись в разделе \u0026ldquo;Мысли\u0026rdquo;. Здесь будут размышления о жизни.\n" },
  { "title": "Работа с нейросетью", "url": "/blog/%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D1%81%D1%82%D0%B0/", "summary": "\u003cdiv class=\"post-box\"\u003e\n## Как мы чинили поиск на сайте\n\u003cblockquote\u003e\u003cp\u003e\u003cstrong\u003eЯ:\u003c/strong\u003e Теперь переход на страницу поиска всегда со светлой темой. А сам поиск не работает.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eНейронка:\u003c/strong\u003e Страница поиска не работает, потому что скрипт был удалён из-за CSP. Давайте пересоздадим страницу поиска с внешним скриптом.\u003c/p\u003e\n\u003cp\u003eСоздаём внешний JS-файл:\u003c/p\u003e\n\u003cdiv class=\"highlight-wrapper\"\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etheme\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elocalStorage\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetItem\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;appearance\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003etheme\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e===\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;light\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etheme\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e===\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;dark\u0026#39;\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    document.\u003cspan style=\"color:#a6e22e\"\u003ebody\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclassName\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etheme\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    document.\u003cspan style=\"color:#a6e22e\"\u003ebody\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclassName\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;dark\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003efetch\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/index.json\u0026#39;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003ethen\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003er\u003c/span\u003e) { \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003er\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ejson\u003c/span\u003e(); })\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003ethen\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003edata\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003einput\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;search-input\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eresults\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;search-results\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003einput\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;input\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eq\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etrim\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003etoLowerCase\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003eq\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e) { \u003cspan style=\"color:#a6e22e\"\u003eresults\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003einnerHTML\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e; \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e; }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efound\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edata\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003efilter\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etitle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003etoLowerCase\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003eindexOf\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eq\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e!==\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                 (\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econtent\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003etoLowerCase\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003eindexOf\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eq\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e!==\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                 (\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esummary\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003etoLowerCase\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003eindexOf\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eq\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e!==\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003efound\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e===\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e) { \u003cspan style=\"color:#a6e22e\"\u003eresults\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003einnerHTML\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;p\u0026gt;Ничего не найдено\u0026lt;/p\u0026gt;\u0026#39;\u003c/span\u003e; \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e; }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003efound\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eforEach\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#a6e22e\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;div class=\u0026#34;result-item\u0026#34;\u0026gt;\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#a6e22e\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;a href=\u0026#34;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;\u0026gt;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etitle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;/a\u0026gt;\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#a6e22e\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;p\u0026gt;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esummary\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003ereplace\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e/\u0026lt;[^\u0026gt;]*\u0026gt;/g\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;/p\u0026gt;\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#a6e22e\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026lt;/div\u0026gt;\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003eresults\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003einnerHTML\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehtml\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})();\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eЯ:\u003c/strong\u003e Теперь поиск работает, но страница всегда в тёмной теме.\u003c/p\u003e", "content": " ## Как мы чинили поиск на сайте Я: Теперь переход на страницу поиска всегда со светлой темой. А сам поиск не работает.\nНейронка: Страница поиска не работает, потому что скрипт был удалён из-за CSP. Давайте пересоздадим страницу поиска с внешним скриптом.\nСоздаём внешний JS-файл:\n(function() { var theme = localStorage.getItem(\u0026#39;appearance\u0026#39;); if (theme === \u0026#39;light\u0026#39; || theme === \u0026#39;dark\u0026#39;) { document.body.className = theme; } else { document.body.className = \u0026#39;dark\u0026#39;; } fetch(\u0026#39;/index.json\u0026#39;) .then(function(r) { return r.json(); }) .then(function(data) { var input = document.getElementById(\u0026#39;search-input\u0026#39;); var results = document.getElementById(\u0026#39;search-results\u0026#39;); input.addEventListener(\u0026#39;input\u0026#39;, function() { var q = this.value.trim().toLowerCase(); if (q.length \u0026lt; 2) { results.innerHTML = \u0026#39;\u0026#39;; return; } var found = data.filter(function(item) { return (item.title || \u0026#39;\u0026#39;).toLowerCase().indexOf(q) !== -1 || (item.content || \u0026#39;\u0026#39;).toLowerCase().indexOf(q) !== -1 || (item.summary || \u0026#39;\u0026#39;).toLowerCase().indexOf(q) !== -1; }); if (found.length === 0) { results.innerHTML = \u0026#39;\u0026lt;p\u0026gt;Ничего не найдено\u0026lt;/p\u0026gt;\u0026#39;; return; } var html = \u0026#39;\u0026#39;; found.forEach(function(item) { html += \u0026#39;\u0026lt;div class=\u0026#34;result-item\u0026#34;\u0026gt;\u0026#39;; html += \u0026#39;\u0026lt;a href=\u0026#34;\u0026#39; + item.url + \u0026#39;\u0026#34;\u0026gt;\u0026#39; + item.title + \u0026#39;\u0026lt;/a\u0026gt;\u0026#39;; html += \u0026#39;\u0026lt;p\u0026gt;\u0026#39; + (item.summary || \u0026#39;\u0026#39;).replace(/\u0026lt;[^\u0026gt;]*\u0026gt;/g, \u0026#39;\u0026#39;) + \u0026#39;\u0026lt;/p\u0026gt;\u0026#39;; html += \u0026#39;\u0026lt;/div\u0026gt;\u0026#39;; }); results.innerHTML = html; }); }); })(); Я: Теперь поиск работает, но страница всегда в тёмной теме.\nНейронка: Проверим localStorage. Blowfish использует ключ appearance, а не pref-theme.\nИсправляем скрипт:\nsed -i \u0026#34;s|localStorage.getItem(\u0026#39;pref-theme\u0026#39;)|localStorage.getItem(\u0026#39;appearance\u0026#39;)|\u0026#34; static/js/search.js Собираем и загружаем:\ncd ~/Рабочий\\ стол/infoguardtech-blog \u0026amp;\u0026amp; /usr/local/bin/hugo \u0026amp;\u0026amp; \\ ssh myvps \u0026#34;sudo rm -rf /var/www/infoguardtech.ru/* \u0026amp;\u0026amp; sudo cp -r /tmp/new-site/* /var/www/infoguardtech.ru/\u0026#34; \u0026amp;\u0026amp; \\ echo \u0026#34;ГОТОВО\u0026#34; Я: Готово. Бекапимся.\nТеперь поиск работает в обеих темах. Потребовалось найти правильный ключ localStorage (appearance) и вынести скрипт во внешний файл, чтобы обойти ограничения Content Security Policy.\n" },
  { "title": "О проекте", "url": "/about/", "summary": "\u003cp\u003e\u003cstrong\u003eInfo Guard Tech\u003c/strong\u003e — сайт о технологиях и не только.\u003c/p\u003e\n\u003cp\u003eЗдесь я пишу о том, что мне интересно:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eБезопасность и серверы\u003c/strong\u003e — настройка VPS, защита от атак, VPN и анонимность в сети.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLinux и open source\u003c/strong\u003e — работа с терминалом, обзоры программ, автоматизация.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eНейросети и OCR\u003c/strong\u003e — локальные модели, распознавание текста, работа с языками.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eМысли о жизни\u003c/strong\u003e — заметки, наблюдения, размышления.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eЛингвистика\u003c/strong\u003e — языки, переводы, работа с текстами.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eСайт статический, работает на Hugo и Nginx, живёт на VPS от Beget. Без рекламы, без сбора данных, без Google Analytics.\u003c/p\u003e", "content": "Info Guard Tech — сайт о технологиях и не только.\nЗдесь я пишу о том, что мне интересно:\nБезопасность и серверы — настройка VPS, защита от атак, VPN и анонимность в сети. Linux и open source — работа с терминалом, обзоры программ, автоматизация. Нейросети и OCR — локальные модели, распознавание текста, работа с языками. Мысли о жизни — заметки, наблюдения, размышления. Лингвистика — языки, переводы, работа с текстами. Сайт статический, работает на Hugo и Nginx, живёт на VPS от Beget. Без рекламы, без сбора данных, без Google Analytics.\nСвязь: sergik@infoguardtech.ru\n" },
  { "title": "Контакты", "url": "/contact/", "summary": "\u003cp\u003eСвязаться с автором проекта:\u003c/p\u003e\n\u003cp\u003eEmail: sergik\u003c!-- --\u003e@\u003c!-- --\u003einfoguardtech.ru\u003c/p\u003e", "content": "Связаться с автором проекта:\nEmail: sergik@infoguardtech.ru\n" },
  { "title": "Политика конфиденциальности", "url": "/privacy/", "summary": "\u003ch2 class=\"relative group\"\u003eПолитика конфиденциальности\n    \u003cdiv id=\"политика-конфиденциальности\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#%d0%bf%d0%be%d0%bb%d0%b8%d1%82%d0%b8%d0%ba%d0%b0-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b4%d0%b5%d0%bd%d1%86%d0%b8%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8\" aria-label=\"Якорь\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003eСайт \u003cstrong\u003eInfo Guard Tech\u003c/strong\u003e (https\u003c!-- --\u003e://infoguardtech.ru) не собирает и не хранит персональные данные пользователей.\u003c/p\u003e\n\n\u003ch3 class=\"relative group\"\u003eЧто мы не делаем\n    \u003cdiv id=\"что-мы-не-делаем\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#%d1%87%d1%82%d0%be-%d0%bc%d1%8b-%d0%bd%d0%b5-%d0%b4%d0%b5%d0%bb%d0%b0%d0%b5%d0%bc\" aria-label=\"Якорь\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eНе используем файлы cookie для отслеживания.\u003c/li\u003e\n\u003cli\u003eНе собираем адреса электронной почты, имена или другую личную информацию.\u003c/li\u003e\n\u003cli\u003eНе используем Google Analytics, Яндекс.Метрику или другие системы аналитики.\u003c/li\u003e\n\u003cli\u003eНе показываем рекламу и не используем рекламные трекеры.\u003c/li\u003e\n\u003cli\u003eНе передаём данные третьим лицам.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3 class=\"relative group\"\u003eЛоги сервера\n    \u003cdiv id=\"логи-сервера\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#%d0%bb%d0%be%d0%b3%d0%b8-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0\" aria-label=\"Якорь\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h3\u003e\n\u003cp\u003eЛогирование доступа полностью отключено. IP-адреса посетителей не записываются и не хранятся.\u003c/p\u003e", "content": " Политика конфиденциальности # Сайт Info Guard Tech (https://infoguardtech.ru) не собирает и не хранит персональные данные пользователей.\nЧто мы не делаем # Не используем файлы cookie для отслеживания. Не собираем адреса электронной почты, имена или другую личную информацию. Не используем Google Analytics, Яндекс.Метрику или другие системы аналитики. Не показываем рекламу и не используем рекламные трекеры. Не передаём данные третьим лицам. Логи сервера # Логирование доступа полностью отключено. IP-адреса посетителей не записываются и не хранятся.\nСервер фиксирует только технические ошибки (для обеспечения работоспособности и защиты от атак). Эти записи не содержат персональных данных.\nВаши права # Вы имеете право обратиться к владельцу сайта с вопросами о конфиденциальности:\nEmail: sergik@infoguardtech.ru\nОбновления # Эта политика может обновляться. Актуальная версия всегда доступна на этой странице.\nПоследнее обновление: 3 июня 2026 г.\n" },
  { "title": "Настройки", "url": "/blog/%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8/", "summary": "\u003cp\u003e\u003cfigure\u003e\u003cimg\n    class=\"my-0 rounded-md\"\n    loading=\"lazy\"\n    decoding=\"async\"\n    fetchpriority=\"low\"\n    alt=\"Огород\"\n    src=\"/img/rain.jpg\"\n    \u003e\u003c/figure\u003e\n\u003c/p\u003e\n\u003cdiv class=\"post-box\"\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Сегодня пришлось заставить себя оторваться от кнопок и пойти продолжить выполнение огородной миссии.\nОднако, на огороде не получилось задержаться, потому что от туда меня прогнал дождь. В общем, вернулся к кнопкам и продолжил настраивать сайт.\n\u003c/div\u003e", "content": " \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Сегодня пришлось заставить себя оторваться от кнопок и пойти продолжить выполнение огородной миссии. Однако, на огороде не получилось задержаться, потому что от туда меня прогнал дождь. В общем, вернулся к кнопкам и продолжил настраивать сайт. " },
  { "title": "Test", "url": "/blog/test/", "summary": "\u003cp\u003eПростой текст. Без HTML. Проверка.\u003c/p\u003e", "content": "Простой текст. Без HTML. Проверка.\n" },
  { "title": "Hello World", "url": "/blog/hello-world/", "summary": "\u003cp\u003eЭто первая новость в блоге InfoGuard Tech.\u003c/p\u003e\n\u003cp\u003eСайт запущен, блог работает. Впереди много интересного!\u003c/p\u003e", "content": "Это первая новость в блоге InfoGuard Tech.\nСайт запущен, блог работает. Впереди много интересного!\n" }
]
