<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
        <title>  Пермакультура   - кз Блог</title>
        <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/</link>
        <description>  Пермакультура   - кз Блог</description>
                    <item>
                <title>гкз 2</title>
                <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/params/post/4958557/gkz-2</link>
                <pubDate>Wed, 30 Apr 2025 18:02:00 +0000</pubDate>
                <description>&lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Куборедактор Зайцева&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 20px;
      background: #f9f9f9;
    }

    .controls {
      margin-bottom: 20px;
    }

    .controls label {
      margin-right: 10px;
    }

    .cube-net {
      display: grid;
      grid-template-columns: repeat(3, auto);
      grid-template-rows: repeat(4, auto);
      gap: 5px;
      margin-bottom: 20px;
    }

    .cell {
      width: 120px;
      height: 120px;
      border: 1px solid #ccc;
      display: flex;
      align-items: center;
      justify-content: center;
      background: white;
      position: relative;
    }

    .cell input {
      width: 90%;
      height: 70%;
      font-size: 20px;
      text-align: center;
    }

    .hidden {
      visibility: hidden;
    }

    canvas {
      border: 1px solid #000;
      margin-top: 20px;
    }
  &lt;/style&gt;


  &lt;h2&gt;Куборедактор Зайцева&lt;/h2&gt;

  &lt;div class=&quot;controls&quot;&gt;
    &lt;label&gt;Розмір кубика:
      &lt;select id=&quot;cubeSize&quot;&gt;
        &lt;option value=&quot;5&quot;&gt;5x5 см&lt;/option&gt;
        &lt;option value=&quot;6&quot; selected=&quot;&quot;&gt;6x6 см&lt;/option&gt;
      &lt;/select&gt;
    &lt;/label&gt;

    &lt;label&gt;Фон:
      &lt;select id=&quot;bgColor&quot;&gt;
        &lt;option value=&quot;#ffffff&quot;&gt;Білий&lt;/option&gt;
        &lt;option value=&quot;#fff176&quot;&gt;Жовтий (голосні)&lt;/option&gt;
        &lt;option value=&quot;#cfd8dc&quot;&gt;Сірий (дзвінкі)&lt;/option&gt;
        &lt;option value=&quot;#bcaaa4&quot;&gt;Коричневий (глухі)&lt;/option&gt;
      &lt;/select&gt;
    &lt;/label&gt;

    &lt;button onclick=&quot;generateCube()&quot;&gt;Створити розгортку&lt;/button&gt;
  &lt;/div&gt;

  &lt;div class=&quot;cube-net&quot;&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face1&quot; placeholder=&quot;Грань 1&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;

    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face2&quot; placeholder=&quot;Грань 2&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face3&quot; placeholder=&quot;Грань 3&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face4&quot; placeholder=&quot;Грань 4&quot;&gt;&lt;/div&gt;

    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face5&quot; placeholder=&quot;Грань 5&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;

    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face6&quot; placeholder=&quot;Грань 6&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;canvas id=&quot;canvas&quot; width=&quot;600&quot; height=&quot;600&quot;&gt;&lt;/canvas&gt;
  &lt;button onclick=&quot;saveImage()&quot;&gt;Зберегти як PNG&lt;/button&gt;

  &lt;script&gt;
    function generateCube() {
      const canvas = document.getElementById(&#039;canvas&#039;);
      const ctx = canvas.getContext(&#039;2d&#039;);
      const sizeCm = parseInt(document.getElementById(&#039;cubeSize&#039;).value);
      const cellSize = sizeCm * 10; // 10 px = 1 мм =&gt; 100 px = 1 см
      const bgColor = document.getElementById(&#039;bgColor&#039;).value;

      const faces = [
        document.getElementById(&#039;face1&#039;).value,
        document.getElementById(&#039;face2&#039;).value,
        document.getElementById(&#039;face3&#039;).value,
        document.getElementById(&#039;face4&#039;).value,
        document.getElementById(&#039;face5&#039;).value,
        document.getElementById(&#039;face6&#039;).value
      ];

      canvas.width = cellSize * 3 + 60;
      canvas.height = cellSize * 4 + 60;
      ctx.clearRect(0, 0, canvas.width, canvas.height);
      ctx.font = `${cellSize / 3}px sans-serif`;
      ctx.textAlign = &#039;center&#039;;
      ctx.textBaseline = &#039;middle&#039;;

      const offsetX = 30;
      const offsetY = 30;

      const positions = [
        [offsetX + cellSize, offsetY],
        [offsetX, offsetY + cellSize],
        [offsetX + cellSize, offsetY + cellSize],
        [offsetX + 2 * cellSize, offsetY + cellSize],
        [offsetX + cellSize, offsetY + 2 * cellSize],
        [offsetX + cellSize, offsetY + 3 * cellSize]
      ];

      for (let i = 0; i &lt; 6; i++) {
        const [x, y] = positions[i];
        ctx.fillStyle = bgColor;
        ctx.fillRect(x, y, cellSize, cellSize);

        ctx.strokeStyle = &#039;#000&#039;;
        ctx.setLineDash([5, 5]);
        ctx.strokeRect(x, y, cellSize, cellSize);
        ctx.setLineDash([]);

        ctx.fillStyle = &#039;#000&#039;;
        ctx.fillText(faces[i], x + cellSize / 2, y + cellSize / 2);
      }

      // Додаємо клапани
      drawFlap(ctx, positions[0][0], positions[0][1] - 15, cellSize, &#039;top&#039;); // верхній клапан для face1
      drawFlap(ctx, positions[1][0] - 15, positions[1][1], cellSize, &#039;left&#039;); // лівий для face2
      drawFlap(ctx, positions[3][0] + cellSize, positions[3][1], cellSize, &#039;right&#039;); // правий для face4
      drawFlap(ctx, positions[4][0], positions[4][1] + cellSize, cellSize, &#039;bottom&#039;); // нижній для face5
      drawFlap(ctx, positions[5][0], positions[5][1] + cellSize, cellSize, &#039;bottom&#039;); // нижній для face6
    }

    function drawFlap(ctx, x, y, size, side) {
      ctx.fillStyle = &#039;#fff&#039;;
      switch (side) {
        case &#039;top&#039;:
          ctx.fillRect(x, y, size, 15);
          ctx.strokeRect(x, y, size, 15);
          break;
        case &#039;bottom&#039;:
          ctx.fillRect(x, y, size, 15);
          ctx.strokeRect(x, y, size, 15);
          break;
        case &#039;left&#039;:
          ctx.fillRect(x, y, 15, size);
          ctx.strokeRect(x, y, 15, size);
          break;
        case &#039;right&#039;:
          ctx.fillRect(x, y, 15, size);
          ctx.strokeRect(x, y, 15, size);
          break;
      }
    }

    function saveImage() {
      const canvas = document.getElementById(&#039;canvas&#039;);
      const link = document.createElement(&#039;a&#039;);
      link.download = &#039;kubik.png&#039;;
      link.href = canvas.toDataURL();
      link.click();
    }
  &lt;/script&gt;</description>
            </item>
                    <item>
                <title>гкз 1</title>
                <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/params/post/4957736/gkz-1</link>
                <pubDate>Wed, 30 Apr 2025 08:13:00 +0000</pubDate>
                <description>оооооооооооооооооооооооооо&lt;hr class=&quot;moze-more-divider&quot;&gt;&lt;p&gt;ааааааааааааааааааааааа&lt;/p&gt;


  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Куборедактор Зайцева&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 20px;
      background: #f9f9f9;
    }

    .controls {
      margin-bottom: 20px;
    }

    .controls label {
      margin-right: 10px;
    }

    .cube-net {
      display: grid;
      grid-template-columns: repeat(4, auto);
      grid-template-rows: repeat(3, auto);
      gap: 5px;
      margin-bottom: 20px;
    }

    .cell {
      width: 120px;
      height: 120px;
      border: 1px solid #ccc;
      display: flex;
      align-items: center;
      justify-content: center;
      background: white;
      position: relative;
    }

    .cell input {
      width: 90%;
      height: 70%;
      font-size: 20px;
      text-align: center;
    }

    .hidden {
      visibility: hidden;
    }

    canvas {
      border: 1px solid #000;
      margin-top: 20px;
    }
  &lt;/style&gt;


  &lt;h2&gt;Куборедактор Зайцева&lt;/h2&gt;

  &lt;div class=&quot;controls&quot;&gt;
    &lt;label&gt;Розмір кубика:
      &lt;select id=&quot;cubeSize&quot;&gt;
        &lt;option value=&quot;5&quot;&gt;5x5 см&lt;/option&gt;
        &lt;option value=&quot;6&quot; selected=&quot;&quot;&gt;6x6 см&lt;/option&gt;
      &lt;/select&gt;
    &lt;/label&gt;

    &lt;label&gt;Фон:
      &lt;select id=&quot;bgColor&quot;&gt;
        &lt;option value=&quot;#ffffff&quot;&gt;Білий&lt;/option&gt;
        &lt;option value=&quot;#fff176&quot;&gt;Жовтий (голосні)&lt;/option&gt;
        &lt;option value=&quot;#cfd8dc&quot;&gt;Сірий (дзвінкі)&lt;/option&gt;
        &lt;option value=&quot;#bcaaa4&quot;&gt;Коричневий (глухі)&lt;/option&gt;
      &lt;/select&gt;
    &lt;/label&gt;

    &lt;button onclick=&quot;generateCube()&quot;&gt;Створити розгортку&lt;/button&gt;
  &lt;/div&gt;

  &lt;div class=&quot;cube-net&quot;&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face1&quot; placeholder=&quot;Грань 1&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face2&quot; placeholder=&quot;Грань 2&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face3&quot; placeholder=&quot;Грань 3&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face4&quot; placeholder=&quot;Грань 4&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face5&quot; placeholder=&quot;Грань 5&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell&quot;&gt;&lt;input id=&quot;face6&quot; placeholder=&quot;Грань 6&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;cell hidden&quot;&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;canvas id=&quot;canvas&quot; width=&quot;600&quot; height=&quot;600&quot;&gt;&lt;/canvas&gt;
  &lt;button onclick=&quot;saveImage()&quot;&gt;Зберегти як PNG&lt;/button&gt;

  &lt;script&gt;
    function generateCube() {
      const canvas = document.getElementById(&#039;canvas&#039;);
      const ctx = canvas.getContext(&#039;2d&#039;);
      const sizeCm = parseInt(document.getElementById(&#039;cubeSize&#039;).value);
      const cellSize = sizeCm * 10; // 10 px = 1 мм =&gt; 100 px = 1 см
      const bgColor = document.getElementById(&#039;bgColor&#039;).value;

      const faces = [
        document.getElementById(&#039;face1&#039;).value,
        document.getElementById(&#039;face2&#039;).value,
        document.getElementById(&#039;face3&#039;).value,
        document.getElementById(&#039;face4&#039;).value,
        document.getElementById(&#039;face5&#039;).value,
        document.getElementById(&#039;face6&#039;).value
      ];

      canvas.width = cellSize * 4 + 60;
      canvas.height = cellSize * 3 + 60;
      ctx.clearRect(0, 0, canvas.width, canvas.height);
      ctx.font = `${cellSize / 3}px sans-serif`;
      ctx.textAlign = &#039;center&#039;;
      ctx.textBaseline = &#039;middle&#039;;

      const offsetX = 30;
      const offsetY = 30;

      const positions = [
        [offsetX + cellSize, offsetY],
        [offsetX, offsetY + cellSize],
        [offsetX + cellSize, offsetY + cellSize],
        [offsetX + 2 * cellSize, offsetY + cellSize],
        [offsetX + 3 * cellSize, offsetY + cellSize],
        [offsetX + cellSize, offsetY + 2 * cellSize]
      ];

      for (let i = 0; i &lt; 6; i++) {
        const [x, y] = positions[i];

        // фон
        ctx.fillStyle = bgColor;
        ctx.fillRect(x, y, cellSize, cellSize);

        // пунктир рамка
        ctx.strokeStyle = &#039;#000&#039;;
        ctx.setLineDash([5, 5]);
        ctx.strokeRect(x, y, cellSize, cellSize);
        ctx.setLineDash([]);

        // текст
        ctx.fillStyle = &#039;#000&#039;;
        ctx.fillText(faces[i], x + cellSize / 2, y + cellSize / 2);

        // клапани для склеювання (приклад — зверху грані 1)
        if (i === 0) drawFlap(ctx, x, y - 15, cellSize, &#039;top&#039;);
        if (i === 1) drawFlap(ctx, x - 15, y, cellSize, &#039;left&#039;);
        if (i === 4) drawFlap(ctx, x + cellSize, y, cellSize, &#039;right&#039;);
        if (i === 5) drawFlap(ctx, x, y + cellSize, cellSize, &#039;bottom&#039;);
      }
    }

    function drawFlap(ctx, x, y, size, side) {
      ctx.fillStyle = &#039;#fff&#039;;
      switch (side) {
        case &#039;top&#039;:
          ctx.fillRect(x, y, size, 15);
          ctx.strokeRect(x, y, size, 15);
          break;
        case &#039;bottom&#039;:
          ctx.fillRect(x, y, size, 15);
          ctx.strokeRect(x, y, size, 15);
          break;
        case &#039;left&#039;:
          ctx.fillRect(x, y, 15, size);
          ctx.strokeRect(x, y, 15, size);
          break;
        case &#039;right&#039;:
          ctx.fillRect(x, y, 15, size);
          ctx.strokeRect(x, y, 15, size);
          break;
      }
    }

    function saveImage() {
      const canvas = document.getElementById(&#039;canvas&#039;);
      const link = document.createElement(&#039;a&#039;);
      link.download = &#039;kubik.png&#039;;
      link.href = canvas.toDataURL();
      link.click();
    }
  &lt;/script&gt;</description>
            </item>
                    <item>
                <title>тр 32</title>
                <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/params/post/4956522/tr-32</link>
                <pubDate>Tue, 29 Apr 2025 13:00:00 +0000</pubDate>
                <description>&lt;div&gt;&lt;div&gt;рррррррррррррр&lt;hr class=&quot;moze-more-divider&quot;&gt;&lt;p&gt;сссссссссссссссссссссссс&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;



&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;title&gt;Веселкова Школа — Абетка&lt;/title&gt;
&lt;style&gt;
  body {
    font-family: Arial, sans-serif;
    background-color: #f0f8ff;
    padding: 20px;
  }

  h1 {
    text-align: center;
    color: #7b1fa2;
    font-weight: bold;
  }

  textarea {
    width: 100%;
    height: 150px;
    font-size: 1.2em;
    padding: 10px;
    margin-top: 10px;
  }

  #output {
    margin-top: 20px;
    font-size: 1.5em;
    padding: 10px;
    background: #ffffff;
    border: 1px solid #ccc;
    min-height: 100px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: flex-end;
  }

  .letter-img {
    height: 40px;
    vertical-align: bottom;
    display: inline-block;
    animation: fadeIn 0.5s ease;
  }

  .big-letter-img {
    height: 70px !important;
  }

  .missing-letter {
    color: #555;
    display: inline-block;
    animation: fadeIn 0.5s ease;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .controls {
    margin-top: 10px;
  }
&lt;/style&gt;




&lt;h1&gt;Редактор Веселкової Абетки&lt;/h1&gt;
&lt;hr&gt;

&lt;p&gt;&lt;img src=&quot;https://site-784543.mozfiles.com/files/784543/medium/TR_2.jpg&quot; alt=&quot;TR_2.jpg&quot;&gt;&lt;/p&gt;

&lt;label for=&quot;text&quot;&gt;Введіть текст:&lt;/label&gt;
&lt;textarea id=&quot;text&quot; placeholder=&quot;Напишіть щось...&quot;&gt;Привіт, Алісо!&lt;/textarea&gt;

&lt;div class=&quot;controls&quot;&gt;
  &lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;toggleImages&quot; checked=&quot;&quot;&gt; Показати зображення&lt;/label&gt;
&lt;/div&gt;

&lt;div id=&quot;output&quot;&gt;&lt;/div&gt;

&lt;script&gt;
const letterMap = {
  &#039;А&#039;: &#039;A.jpg&#039;, &#039;а&#039;: &#039;A.jpg&#039;,
  &#039;Б&#039;: &#039;B.jpg&#039;, &#039;б&#039;: &#039;B.jpg&#039;,
  &#039;В&#039;: &#039;V_velike.jpg&#039;, &#039;в&#039;: &#039;V_velike.jpg&#039;,
  &#039;Г&#039;: &#039;g.jpg&#039;, &#039;г&#039;: &#039;g.jpg&#039;,
  &#039;Е&#039;: &#039;E_eskavator.jpg&#039;, &#039;е&#039;: &#039;E_eskavator.jpg&#039;,
  &#039;Ж&#039;: &#039;zh.jpg&#039;, &#039;ж&#039;: &#039;zh.jpg&#039;,
  &#039;З&#039;: &#039;Z-1.jpg&#039;, &#039;з&#039;: &#039;Z-1.jpg&#039;,
  &#039;И&#039;: &#039;i-1.jpg&#039;, &#039;и&#039;: &#039;i-1.jpg&#039;,
  &#039;І&#039;: &#039;3.jpg&#039;, &#039;і&#039;: &#039;3.jpg&#039;,
  &#039;Й&#039;: &#039;J_jogurt.jpg&#039;, &#039;й&#039;: &#039;J_jogurt.jpg&#039;,
  &#039;К&#039;: &#039;k3.jpg&#039;, &#039;к&#039;: &#039;k3.jpg&#039;,
  &#039;Л&#039;: &#039;L_1.jpg&#039;, &#039;л&#039;: &#039;L_1.jpg&#039;,
  &#039;М&#039;: &#039;m.jpg&#039;, &#039;м&#039;: &#039;m.jpg&#039;,
  &#039;Н&#039;: &#039;n.jpg&#039;, &#039;н&#039;: &#039;n.jpg&#039;,
  &#039;О&#039;: &#039;O.jpg&#039;, &#039;о&#039;: &#039;O.jpg&#039;,
  &#039;П&#039;: &#039;p.jpg&#039;, &#039;п&#039;: &#039;p.jpg&#039;,
  &#039;Р&#039;: &#039;r2.jpg&#039;, &#039;р&#039;: &#039;r2.jpg&#039;,
  &#039;С&#039;: &#039;S.png&#039;, &#039;с&#039;: &#039;S.png&#039;,
  &#039;Т&#039;: &#039;T_3.jpg&#039;, &#039;т&#039;: &#039;T_3.jpg&#039;,
  &#039;У&#039;: &#039;u.jpg&#039;, &#039;у&#039;: &#039;u.jpg&#039;,
  &#039;Ц&#039;: &#039;c.jpg&#039;, &#039;ц&#039;: &#039;c.jpg&#039;,
  &#039;Ч&#039;: &#039;ch.jpg&#039;, &#039;ч&#039;: &#039;ch.jpg&#039;,
  &#039;Ш&#039;: &#039;Sh.jpg&#039;, &#039;ш&#039;: &#039;Sh.jpg&#039;,
  &#039;Я&#039;: &#039;Ja-1.jpg&#039;, &#039;я&#039;: &#039;Ja-1.jpg&#039;
};

const baseUrl = &#039;https://site-784543.mozfiles.com/files/784543/&#039;;
const textarea = document.getElementById(&#039;text&#039;);
const output = document.getElementById(&#039;output&#039;);
const toggle = document.getElementById(&#039;toggleImages&#039;);

function renderText() {
  const text = textarea.value;
  const useImages = toggle.checked;
  output.innerHTML = &#039;&#039;;

  for (let char of text) {
    if (char === &#039;\n&#039;) {
      output.appendChild(document.createElement(&#039;br&#039;));
    } else if (letterMap[char] &amp;&amp; useImages) {
      const img = document.createElement(&#039;img&#039;);
      img.src = baseUrl + letterMap[char];
      img.alt = char;
      img.className = &#039;letter-img&#039;;

      if (char === char.toUpperCase() &amp;&amp; char !== char.toLowerCase()) {
        img.classList.add(&#039;big-letter-img&#039;);
      }

      output.appendChild(img);
    } else {
      const span = document.createElement(&#039;span&#039;);
      span.textContent = char;
      span.className = &#039;missing-letter&#039;;
      output.appendChild(span);
    }
  }
}

textarea.addEventListener(&#039;input&#039;, renderText);
toggle.addEventListener(&#039;change&#039;, renderText);

renderText();
&lt;/script&gt;</description>
            </item>
                    <item>
                <title></title>
                <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/params/post/4956515/page</link>
                <pubDate>Tue, 29 Apr 2025 12:48:00 +0000</pubDate>
                <description>&lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Генератор Кубиків Зайцева&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: Arial, sans-serif;
      background-color: #f0f8ff;
      padding: 20px;
    }

    h1 {
      text-align: center;
      color: #7b1fa2;
    }

    .grid-container {
      display: grid;
      grid-template-columns: repeat(6, 1fr); /* 6 колонок */
      grid-gap: 10px;
      margin-top: 20px;
    }

    .grid-item {
      width: 80px;
      height: 80px;
      background-color: #fff;
      border: 1px solid #ccc;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 1.5em;
    }

    .output-container {
      margin-top: 20px;
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      grid-gap: 10px;
    }

    .output-item {
      width: 80px;
      height: 80px;
      background-color: #f3f3f3;
      border: 1px solid #ccc;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .controls {
      margin-top: 20px;
      text-align: center;
    }

    .toggle-input {
      margin: 10px 0;
    }

    .grid-container input {
      text-align: center;
      font-size: 1.2em;
    }

  &lt;/style&gt;


  &lt;h1&gt;Генератор Кубиків Зайцева&lt;/h1&gt;

  &lt;div class=&quot;controls&quot;&gt;
    &lt;label for=&quot;backgroundColor&quot;&gt;Виберіть колір фону:&lt;/label&gt;
    &lt;input type=&quot;color&quot; id=&quot;backgroundColor&quot; class=&quot;toggle-input&quot; value=&quot;#f3f3f3&quot;&gt;
  &lt;/div&gt;

  &lt;div class=&quot;grid-container&quot; id=&quot;inputGrid&quot;&gt;
    &lt;!-- Генерація інпутів для введення значень кубиків --&gt;
  &lt;/div&gt;

  &lt;div class=&quot;controls&quot;&gt;
    &lt;button id=&quot;generateBtn&quot;&gt;Згенерувати Кубики&lt;/button&gt;
  &lt;/div&gt;

  &lt;div class=&quot;output-container&quot; id=&quot;outputGrid&quot;&gt;
    &lt;!-- Результат буде тут --&gt;
  &lt;/div&gt;

  &lt;script&gt;
    const letterMap = {
      &#039;А&#039;: &#039;A.jpg&#039;, &#039;а&#039;: &#039;A.jpg&#039;,
      &#039;Б&#039;: &#039;B.jpg&#039;, &#039;б&#039;: &#039;B.jpg&#039;,
      &#039;В&#039;: &#039;V_velike.jpg&#039;, &#039;в&#039;: &#039;V_velike.jpg&#039;,
      &#039;Г&#039;: &#039;g.jpg&#039;, &#039;г&#039;: &#039;g.jpg&#039;,
      &#039;Ґ&#039;: &#039;—&#039;, &#039;ґ&#039;: &#039;—&#039;,
      &#039;Д&#039;: &#039;—&#039;, &#039;д&#039;: &#039;—&#039;,
      &#039;Е&#039;: &#039;E_eskavator.jpg&#039;, &#039;е&#039;: &#039;E_eskavator.jpg&#039;,
      &#039;Є&#039;: &#039;—&#039;, &#039;є&#039;: &#039;—&#039;,
      &#039;Ж&#039;: &#039;zh.jpg&#039;, &#039;ж&#039;: &#039;zh.jpg&#039;,
      &#039;З&#039;: &#039;Z-1.jpg&#039;, &#039;з&#039;: &#039;Z-1.jpg&#039;,
      &#039;И&#039;: &#039;i-1.jpg&#039;, &#039;и&#039;: &#039;i-1.jpg&#039;,
      &#039;І&#039;: &#039;3.jpg&#039;, &#039;і&#039;: &#039;3.jpg&#039;,
      &#039;Ї&#039;: &#039;—&#039;, &#039;ї&#039;: &#039;—&#039;,
      &#039;Й&#039;: &#039;J_jogurt.jpg&#039;, &#039;й&#039;: &#039;J_jogurt.jpg&#039;,
      &#039;К&#039;: &#039;k3.jpg&#039;, &#039;к&#039;: &#039;k3.jpg&#039;,
      &#039;Л&#039;: &#039;L_1.jpg&#039;, &#039;л&#039;: &#039;L_1.jpg&#039;,
      &#039;М&#039;: &#039;m.jpg&#039;, &#039;м&#039;: &#039;m.jpg&#039;,
      &#039;Н&#039;: &#039;n.jpg&#039;, &#039;н&#039;: &#039;n.jpg&#039;,
      &#039;О&#039;: &#039;O.jpg&#039;, &#039;о&#039;: &#039;O.jpg&#039;,
      &#039;П&#039;: &#039;p.jpg&#039;, &#039;п&#039;: &#039;p.jpg&#039;,
      &#039;Р&#039;: &#039;r2.jpg&#039;, &#039;р&#039;: &#039;r2.jpg&#039;,
      &#039;С&#039;: &#039;S.png&#039;, &#039;с&#039;: &#039;S.png&#039;,
      &#039;Т&#039;: &#039;T_3.jpg&#039;, &#039;т&#039;: &#039;T_3.jpg&#039;,
      &#039;У&#039;: &#039;u.jpg&#039;, &#039;у&#039;: &#039;u.jpg&#039;,
      &#039;Ф&#039;: &#039;—&#039;, &#039;ф&#039;: &#039;—&#039;,
      &#039;Х&#039;: &#039;—&#039;, &#039;х&#039;: &#039;—&#039;,
      &#039;Ц&#039;: &#039;c.jpg&#039;, &#039;ц&#039;: &#039;c.jpg&#039;,
      &#039;Ч&#039;: &#039;ch.jpg&#039;, &#039;ч&#039;: &#039;ch.jpg&#039;,
      &#039;Ш&#039;: &#039;Sh.jpg&#039;, &#039;ш&#039;: &#039;Sh.jpg&#039;,
      &#039;Щ&#039;: &#039;—&#039;, &#039;щ&#039;: &#039;—&#039;,
      &#039;Ь&#039;: &#039;—&#039;, &#039;ь&#039;: &#039;—&#039;,
      &#039;Ю&#039;: &#039;—&#039;, &#039;ю&#039;: &#039;—&#039;,
      &#039;Я&#039;: &#039;Ja-1.jpg&#039;, &#039;я&#039;: &#039;Ja-1.jpg&#039;
    };

    const baseUrl = &#039;https://site-784543.mozfiles.com/files/784543/&#039;;
    const inputGrid = document.getElementById(&#039;inputGrid&#039;);
    const outputGrid = document.getElementById(&#039;outputGrid&#039;);
    const generateBtn = document.getElementById(&#039;generateBtn&#039;);
    const backgroundColorInput = document.getElementById(&#039;backgroundColor&#039;);

    // Генерація інпутів для введення значень
    function generateInputGrid() {
      for (let i = 0; i &lt; 36; i++) {
        const input = document.createElement(&#039;input&#039;);
        input.type = &#039;text&#039;;
        input.placeholder = &#039;Літера&#039;;
        input.className = &#039;grid-item&#039;;
        inputGrid.appendChild(input);
      }
    }

    // Функція для генерації кубиків з введених значень
    function generateCubes() {
      outputGrid.innerHTML = &#039;&#039;;
      const inputs = document.querySelectorAll(&#039;#inputGrid input&#039;);
      const backgroundColor = backgroundColorInput.value;

      inputs.forEach((input, index) =&gt; {
        const value = input.value.trim();
        const cubeItem = document.createElement(&#039;div&#039;);
        cubeItem.className = &#039;output-item&#039;;
        cubeItem.style.backgroundColor = backgroundColor;

        if (letterMap[value]) {
          const img = document.createElement(&#039;img&#039;);
          img.src = baseUrl + letterMap[value];
          img.alt = value;
          img.style.width = &#039;60px&#039;;
          img.style.height = &#039;60px&#039;;
          cubeItem.appendChild(img);
        } else {
          cubeItem.textContent = value || &#039;—&#039;;
        }

        outputGrid.appendChild(cubeItem);
      });
    }

    // Обробка кнопки генерування кубиків
    generateBtn.addEventListener(&#039;click&#039;, generateCubes);

    // Спочатку генеруємо інпут-форму для 6x6
    generateInputGrid();
  &lt;/script&gt;</description>
            </item>
                    <item>
                <title>Перша новина</title>
                <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/params/post/4956446/</link>
                <pubDate>Tue, 29 Apr 2025 11:49:46 +0000</pubDate>
                <description>&lt;p&gt;Це демо-текст, щоб продемонструвати як буде виглядати повідомлення в блозі. Видаліть цей пост і додайте свої власні повідомлення.&lt;/p&gt;&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.&lt;/p&gt;</description>
            </item>
                    <item>
                <title>Куборедактор Зайцева</title>
                <link>http://gs-permakultura-v-ukran.mozello.com/kz-blog/params/post/4956448/kuboredaktor-zajceva</link>
                <pubDate>Tue, 29 Apr 2025 11:49:00 +0000</pubDate>
                <description>оооооооооооооооооооо
&lt;br&gt;
&lt;hr class=&quot;moze-more-divider&quot;&gt;
&lt;p&gt;&lt;/p&gt;пппппппппппппппппппп
&lt;br&gt;
&lt;br&gt;




  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Куборедактор&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 20px;
    }
    .cube-net {
      display: grid;
      grid-template-columns: repeat(4, 100px);
      grid-template-rows: repeat(3, 100px);
      gap: 5px;
    }
    .face {
      width: 100px;
      height: 100px;
      border: 1px solid #000;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
      background-color: #fffacd;
    }
    .hidden { visibility: hidden; }
    .controls { margin-top: 20px; }
    input { width: 90px; font-size: 20px; text-align: center; }
  &lt;/style&gt;



  &lt;h2&gt;Куборедактор Зайцева&lt;/h2&gt;
  &lt;div class=&quot;cube-net&quot;&gt;
    &lt;div class=&quot;face hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;face&quot;&gt;
      &lt;input maxlength=&quot;3&quot; id=&quot;face1&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;face hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;face hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;face&quot;&gt;
      &lt;input maxlength=&quot;3&quot; id=&quot;face2&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;face&quot;&gt;
      &lt;input maxlength=&quot;3&quot; id=&quot;face3&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;face&quot;&gt;
      &lt;input maxlength=&quot;3&quot; id=&quot;face4&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;face&quot;&gt;
      &lt;input maxlength=&quot;3&quot; id=&quot;face5&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;face hidden&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;face&quot;&gt;
      &lt;input maxlength=&quot;3&quot; id=&quot;face6&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;face hidden&quot;&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&quot;controls&quot;&gt;
    &lt;button onclick=&quot;generateImage()&quot;&gt;Зберегти як зображення&lt;/button&gt;
  &lt;/div&gt;
  &lt;canvas id=&quot;canvas&quot; width=&quot;600&quot; height=&quot;600&quot; style=&quot;display:none;&quot;&gt;&lt;/canvas&gt;
  &lt;script&gt;
    function generateImage() {
      const canvas = document.getElementById(&#039;canvas&#039;);
      const ctx = canvas.getContext(&#039;2d&#039;);
      ctx.fillStyle = &#039;#fff&#039;;
      ctx.fillRect(0, 0, 600, 600);
      ctx.strokeStyle = &#039;#000&#039;;
      ctx.lineWidth = 2;
      ctx.font = &#039;32px sans-serif&#039;;
      ctx.textAlign = &#039;center&#039;;
      ctx.textBaseline = &#039;middle&#039;;

      const faces = [
        { x: 200, y: 0, id: &#039;face1&#039; },
        { x: 100, y: 100, id: &#039;face2&#039; },
        { x: 200, y: 100, id: &#039;face3&#039; },
        { x: 300, y: 100, id: &#039;face4&#039; },
        { x: 400, y: 100, id: &#039;face5&#039; },
        { x: 200, y: 200, id: &#039;face6&#039; },
      ];

      faces.forEach(face =&gt; {
        ctx.strokeRect(face.x, face.y, 100, 100);
        const text = document.getElementById(face.id).value;
        ctx.fillStyle = &#039;#fffacd&#039;;
        ctx.fillRect(face.x, face.y, 100, 100);
        ctx.strokeRect(face.x, face.y, 100, 100);
        ctx.fillStyle = &#039;#000&#039;;
        ctx.fillText(text, face.x + 50, face.y + 50);
      });

      const link = document.createElement(&#039;a&#039;);
      link.download = &#039;kubik.png&#039;;
      link.href = canvas.toDataURL();
      link.click();
    }
  &lt;/script&gt;</description>
            </item>
            </channel>
</rss>