<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>writefreely &amp;mdash; Marcin &#34;czach&#34; Trzaska</title>
    <link>https://blog.argilus.online/czach/tag:writefreely</link>
    <description>Piszę, co mi przyjdzie do głowy. Na tematy różne.</description>
    <pubDate>Thu, 04 Jun 2026 15:00:42 +0200</pubDate>
    <item>
      <title>WriteFreely + PhotoPrism</title>
      <link>https://blog.argilus.online/czach/writefreely-photoprism</link>
      <description>&lt;![CDATA[Współpraca z Immichem pod kątem wrzucania jakoś z automatu zdjęć z udostępnianych albumów szła jak po grudzie. &#xA;&#xA;Okazało się, że z PhotoPrism nie ma takiego problemu. A ponieważ mam obie rzeczy (z współdzielonymi zdjęciami) to, z wykorzystaniem Claude dorobiłem sobie automacik. O.&#xA;&#xA;Zdjęcia z wczoraj.&#xA;&#xA;Kolonia Marszowice / Wrocław / 2026 (2026-04-18)&#xA;&#xA;Kolonia Marszowice / Wrocław / 2026 (2026-04-18)&#xA;&#xA;Kolonia Marszowice / Wrocław / 2026 (2026-04-18)&#xA;&#xA;#writefreely #photoprism #claude&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p>Współpraca z <em>Immichem</em> pod kątem wrzucania jakoś z automatu zdjęć z udostępnianych albumów szła jak po grudzie.</p>

<p>Okazało się, że z <em>PhotoPrism</em> nie ma takiego problemu. A ponieważ mam obie rzeczy (z współdzielonymi zdjęciami) to, z wykorzystaniem <em>Claude</em> dorobiłem sobie automacik. O.</p>

<p>Zdjęcia z wczoraj.</p>

<p><a href="https://photoz.argilus.online/api/v1/t/6280f6aa7199745fc822bd7c5b883a3c3bebdebd/7qi9iqgg/fit_2048" rel="nofollow"><img src="https://photoz.argilus.online/api/v1/t/6280f6aa7199745fc822bd7c5b883a3c3bebdebd/7qi9iqgg/fit_1280" alt="Kolonia Marszowice / Wrocław / 2026 (2026-04-18)"></a></p>

<p><a href="https://photoz.argilus.online/api/v1/t/50c4c00119ed1589a1b75b6426b569323d0db326/7qi9iqgg/fit_2048" rel="nofollow"><img src="https://photoz.argilus.online/api/v1/t/50c4c00119ed1589a1b75b6426b569323d0db326/7qi9iqgg/fit_1280" alt="Kolonia Marszowice / Wrocław / 2026 (2026-04-18)"></a></p>

<p><a href="https://photoz.argilus.online/api/v1/t/fe83af8bffd6cd82aaf5b00e1f925d40518c334a/7qi9iqgg/fit_2048" rel="nofollow"><img src="https://photoz.argilus.online/api/v1/t/fe83af8bffd6cd82aaf5b00e1f925d40518c334a/7qi9iqgg/fit_1280" alt="Kolonia Marszowice / Wrocław / 2026 (2026-04-18)"></a></p>

<p><a href="/czach/tag:writefreely" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writefreely</span></a> <a href="/czach/tag:photoprism" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">photoprism</span></a> <a href="/czach/tag:claude" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">claude</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/writefreely-photoprism</guid>
      <pubDate>Sun, 19 Apr 2026 09:34:19 +0000</pubDate>
    </item>
    <item>
      <title>WriteFreely — galeria zdjęć </title>
      <link>https://blog.argilus.online/czach/galeria-zdjec</link>
      <description>&lt;![CDATA[Test&#xA;by Claude 🫣&#xA;&#xA;div class=&#34;galeria&#34;&#xA;  img src=&#34;https://blgpht.argilus.online/api/files/9/original/IMG1785.JPG&#34; alt=&#34;zima&#34;&#xA;img src=&#34;https://blgpht.argilus.online/api/files/5/original/IMGP6887.jpg&#34; alt=&#34;niezima&#34;&#xA;&#xA;img src=&#34;https://blgpht.argilus.online/api/files/11/original/IMGP69381.jpg&#34; alt=&#34;pszczoła&#34;&#xA;/div&#xA;&#xA;custom CSS&#xA;.galeria {&#xA;  display: grid;&#xA;  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));&#xA;  gap: 10px;&#xA;  margin: 20px 0;&#xA;}&#xA;.galeria img {&#xA;  width: 100%;&#xA;  aspect-ratio: 1;&#xA;  object-fit: cover;&#xA;  border-radius: 4px;&#xA;}&#xA;i w treści&#xA;div class=&#34;galeria&#34;&#xA;  img src=&#34;URLZDJECIA1&#34; alt=&#34;Opis 1&#34;&#xA;  img src=&#34;URLZDJECIA2&#34; alt=&#34;Opis 2&#34;&#xA;  img src=&#34;URLZDJECIA3&#34; alt=&#34;Opis 3&#34;&#xA;/div&#xA;&#xA;Łezka mi się w oku kręci, ponieważ takie cuda z CSSem ostatni raz robiłem w 2004 roku, gdy administrowałem stroną KMP we Wrocławiu mając ograniczony dostęp do serwera. 🥹&#xA;&#xA;#writefreely #galeria #claude&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<h3 id="test">Test</h3>

<h5 id="by-claude">by Claude 🫣</h5>

<div class="galeria">
  <img src="https://blgpht.argilus.online/api/files/9/original/IMG_1785.JPG" alt="zima">
<img src="https://blgpht.argilus.online/api/files/5/original/IMGP6887.jpg" alt="niezima">

<img src="https://blgpht.argilus.online/api/files/11/original/IMGP6938_1.jpg" alt="pszczoła">
</div>

<p><em>custom CSS</em></p>

<pre><code class="language-go">.galeria {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin: 20px 0;
}
.galeria img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 4px;
}
</code></pre>

<p>i w treści</p>

<pre><code class="language-go">&lt;div class=&#34;galeria&#34;&gt;
  &lt;img src=&#34;URL_ZDJECIA_1&#34; alt=&#34;Opis 1&#34;&gt;
  &lt;img src=&#34;URL_ZDJECIA_2&#34; alt=&#34;Opis 2&#34;&gt;
  &lt;img src=&#34;URL_ZDJECIA_3&#34; alt=&#34;Opis 3&#34;&gt;
&lt;/div&gt;
</code></pre>

<p>Łezka mi się w oku kręci, ponieważ takie <em>cuda</em> z <em>CSS</em>em ostatni raz robiłem w 2004 roku, gdy administrowałem stroną <a href="https://wroclaw.policja.gov.pl" title="KMP we Wrocławiu" rel="nofollow">KMP we Wrocławiu</a> mając ograniczony dostęp do serwera. 🥹</p>

<p><a href="/czach/tag:writefreely" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writefreely</span></a> <a href="/czach/tag:galeria" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">galeria</span></a> <a href="/czach/tag:claude" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">claude</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/galeria-zdjec</guid>
      <pubDate>Sat, 18 Apr 2026 04:46:32 +0000</pubDate>
    </item>
    <item>
      <title>WriteFreely — przypisy</title>
      <link>https://blog.argilus.online/czach/przypisy</link>
      <description>&lt;![CDATA[Z pomocą Gemini AI (🫣) dodałem przypisy do WriteFreely.&#xA;&#xA;script&#xA;(function() {&#xA;    // Celujemy w kontener z treścią artykułu&#xA;    var post = document.querySelector(&#39;article#post-body&#39;) || document.querySelector(&#39;.post-content&#39;);&#xA;    if (!post) return;&#xA;&#xA;    var html = post.innerHTML;&#xA;&#xA;    // 1. Zamiana [ ^1] na linki górne (indeks)&#xA;    // Szukamy , które NIE mają po sobie dwukropka&#xA;    html = html.replace(/\\^(\d+)\/g, &#39;sup id=&#34;fnref:$1&#34;a href=&#34;#fn:$1&#34; class=&#34;footnote-ref&#34;$1/a/sup&#39;);&#xA;&#xA;    // 2. Zamiana [ ^1]: na treść przypisu na dole&#xA;    // Szukamy : spacja i treść aż do końca linii&#xA;    html = html.replace(/\[\^(\d+)\]\:\s(.+)/g, &#39;div class=&#34;footnote-item&#34; id=&#34;fn:$1&#34;sup$1./sup $2 a href=&#34;#fnref:$1&#34; class=&#34;footnote-backref&#34;↩/a/div&#39;);&#xA;&#xA;    post.innerHTML = html;&#xA;})();&#xA;/script&#xA;&#xA;i custom CSS:&#xA;.footnote-ref { &#xA;   font-size: 0.8em;&#xA;   vertical-align: super;&#xA;   margin-left: 2px;&#xA;   text-decoration: none;&#xA;}&#xA;.footnote-item { &#xA;    font-size: 0.9em; &#xA;    margin-top: 1em; &#xA;    color: #555; &#xA;}&#xA;.footnote-backref { &#xA;    text-decoration: none; &#xA;    color: #999; &#xA;    margin-left: 5px; &#xA;}&#xA;.footnote-item {&#xA;    border-top: 1px solid #888; / delikatna linia */&#xA;    padding-top: 10px;&#xA;    margin-top: 20px;&#xA;}&#xA;#writefreely #footnote #przypisy #GeminiAI&#xA;&#xA;: Gemini AI&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p>Z pomocą Gemini AI[^1] (🫣) dodałem przypisy do WriteFreely.</p>

<pre><code class="language-go">&lt;script&gt;
(function() {
    // Celujemy w kontener z treścią artykułu
    var post = document.querySelector(&#39;article#post-body&#39;) || document.querySelector(&#39;.post-content&#39;);
    if (!post) return;

    var html = post.innerHTML;

    // 1. Zamiana [ ^1] na linki górne (indeks)
    // Szukamy [^cyfry], które NIE mają po sobie dwukropka
    html = html.replace(/\[\^(\d+)\](?!\:)/g, &#39;&lt;sup id=&#34;fnref:$1&#34;&gt;&lt;a href=&#34;#fn:$1&#34; class=&#34;footnote-ref&#34;&gt;$1&lt;/a&gt;&lt;/sup&gt;&#39;);

    // 2. Zamiana [ ^1]: na treść przypisu na dole
    // Szukamy [^cyfry]: spacja i treść aż do końca linii
    html = html.replace(/\[\^(\d+)\]\:\s*(.+)/g, &#39;&lt;div class=&#34;footnote-item&#34; id=&#34;fn:$1&#34;&gt;&lt;sup&gt;$1.&lt;/sup&gt; $2 &lt;a href=&#34;#fnref:$1&#34; class=&#34;footnote-backref&#34;&gt;↩&lt;/a&gt;&lt;/div&gt;&#39;);

    post.innerHTML = html;
})();
&lt;/script&gt;
</code></pre>

<p>i <em>custom CSS</em>:</p>

<pre><code class="language-go">.footnote-ref { 
   font-size: 0.8em;
   vertical-align: super;
   margin-left: 2px;
   text-decoration: none;
}
.footnote-item { 
    font-size: 0.9em; 
    margin-top: 1em; 
    color: #555; 
}
.footnote-backref { 
    text-decoration: none; 
    color: #999; 
    margin-left: 5px; 
}
.footnote-item {
    border-top: 1px solid #888; /* delikatna linia */
    padding-top: 10px;
    margin-top: 20px;
}
</code></pre>

<p><a href="/czach/tag:writefreely" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writefreely</span></a> <a href="/czach/tag:footnote" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">footnote</span></a> <a href="/czach/tag:przypisy" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">przypisy</span></a> <a href="/czach/tag:GeminiAI" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">GeminiAI</span></a></p>

<p>[^1]: <a href="https://gemini.google.com/app" title="Gemini AI app" rel="nofollow">Gemini AI</a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/przypisy</guid>
      <pubDate>Thu, 16 Apr 2026 06:20:04 +0000</pubDate>
    </item>
    <item>
      <title>WriteFreely — dark/light mode</title>
      <link>https://blog.argilus.online/czach/dark-light-mode-na-blogu</link>
      <description>&lt;![CDATA[Wczoraj, w uprzejmy i elegancki sposób, Kuba zwrócił mi uwagę, że nie każdy lubi dark mode przy czytaniu, na przykład tego blogu.&#xA;&#xA;screenshot rozmowy na temat czytelności bloga&#xA;&#xA;No i zasiał ziarno (O! Właśnie! Ogródek w Astrobotany trzeba podlać) gemini://astrobotany.mozz.us/public/3f6068c9a40347c7a959f5cb05434466/m1&#xA;&#xA;We WriteFreely nie ma/nie znalazłem opcji przełączania trybu. Albo masz jasny defaultowo albo zmieniasz na swój za pomocą CSS. Ja zmieniłem.&#xA;&#xA;No i zaczęło się szukanie. Na szczęście mam swoje SearNGX, więc śmieci zostały odrzucone i zostało samo gęste. ;-)&#xA;&#xA;Znazłem!&#xA;&#xA;unit-4-theme-switcher&#xA;This project demonstrates a simple and interactive theme switcher using HTML, CSS, and JavaScript. It allows users to toggle between different themes (such as light mode and dark mode) to enhance user experience and accessibility&#xA;&#xA;Przerobiłem trochę pliki tmpl we WriteFreely, zmieniłem custom CSS dodając opcję light-mode i… Chyba działa. :-)&#xA;&#xA;&#34;Dark i Light mode we WriteFreely&#34;&#xA;&#xA;Co zmieniłem&#xA;&#xA;writefreely/templates/include/post-render.tmpl&#xA;dodałem &#xA;  div class=&#34;theme-toggle&#34; style=&#34;text-align:right&#34;&#xA;    button id=&#34;light-btn&#34;🔆/button&#xA;    button id=&#34;dark-btn&#34;☀/button&#xA;  /div&#xA;script src=&#34;/js/themeswitcher.js&#34; type=&#34;text/javascript&#34;/script&#xA;writefreely/static/js/ &#xA;wrzuciłem skrypt themeswitcher.js ze strony jw.&#xA;&#xA;zmieniłem custom CSS dodając dodatkowo .light-mode gdzie to należało dodać, na przykład:&#xA;&#xA;body.light-mode {&#xA;/ idea:&#xA;https://github.com/gobikaarumugam/unit-4-theme-switcher&#xA;/&#xA;  background-color: #f0f0f0;&#xA;  color: #000;&#xA;}&#xA;i to samo w innych selektorach.&#xA;&#xA;#writefreely #darkmode #lightmode #switcher&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p>Wczoraj, w uprzejmy i elegancki sposób, <strong>Kuba</strong> zwrócił mi uwagę, że nie każdy lubi <em>dark mode</em> przy czytaniu, na przykład tego blogu.</p>

<p><img src="https://blgpht.argilus.online/api/files/21/original/Screenshot%202026-04-15%20at%2008.25.48.png" alt="screenshot rozmowy na temat czytelności bloga"></p>

<p>No i zasiał ziarno (O! Właśnie! Ogródek w <em>Astrobotany</em> trzeba podlać) <em>gemini://astrobotany.mozz.us/public/3f6068c9a40347c7a959f5cb05434466/m1</em></p>

<p>We <em>WriteFreely</em> nie ma/nie znalazłem opcji przełączania trybu. Albo masz jasny <em>defaultowo</em> albo zmieniasz na swój za pomocą <em>CSS</em>. Ja zmieniłem.</p>

<p>No i zaczęło się szukanie. Na szczęście mam swoje <a href="https://github.com/searxng/searxng" title="SearNGX - link do GitHuba" rel="nofollow">SearNGX</a>, więc śmieci zostały odrzucone i zostało samo gęste. ;–)</p>

<h2 id="znazłem">Znazłem!</h2>

<p><a href="https://github.com/gobikaarumugam/unit-4-theme-switcher" title="unit-4-theme-switcher" rel="nofollow">unit-4-theme-switcher</a></p>

<pre><code>This project demonstrates a simple and interactive theme switcher using HTML, CSS, and JavaScript. It allows users to toggle between different themes (such as light mode and dark mode) to enhance user experience and accessibility
</code></pre>

<p>Przerobiłem trochę pliki <em>tmpl</em> we <strong><em>WriteFreely</em></strong>, zmieniłem <em>custom CSS</em> dodając opcję <em>light-mode</em> i… Chyba działa. :–)</p>

<p><img src="https://blgpht.argilus.online/api/files/22/original/Screenshot%202026-04-15%20at%2008.54.39.png" alt="&#34;Dark i Light mode we WriteFreely&#34;" title="Dark/Light mode in WF"></p>

<h2 id="co-zmieniłem">Co zmieniłem</h2>

<p><code>writefreely/templates/include/post-render.tmpl</code>
dodałem</p>

<pre><code class="language-go">  &lt;div class=&#34;theme-toggle&#34; style=&#34;text-align:right&#34;&gt;
    &lt;button id=&#34;light-btn&#34;&gt;🔆&lt;/button&gt;
    &lt;button id=&#34;dark-btn&#34;&gt;☀&lt;/button&gt;
  &lt;/div&gt;
&lt;script src=&#34;/js/theme_switcher.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;
</code></pre>

<p><code>writefreely/static/js/</code>
wrzuciłem skrypt <code>theme_switcher.js</code> ze strony jw.</p>

<p>zmieniłem <em>custom CSS</em> dodając dodatkowo .light-mode gdzie to należało dodać, na przykład:</p>

<pre><code class="language-go">body.light-mode {
/* idea:
https://github.com/gobikaarumugam/unit-4-theme-switcher
*/
  background-color: #f0f0f0;
  color: #000;
}
</code></pre>

<p>i to samo w innych <em>selektorach</em>.</p>

<p><a href="/czach/tag:writefreely" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writefreely</span></a> <a href="/czach/tag:darkmode" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">darkmode</span></a> <a href="/czach/tag:lightmode" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">lightmode</span></a> <a href="/czach/tag:switcher" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">switcher</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/dark-light-mode-na-blogu</guid>
      <pubDate>Wed, 15 Apr 2026 06:43:28 +0000</pubDate>
    </item>
  </channel>
</rss>