<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>
  <title>Example Blog</title>
  <link>https://taters.codeberg.page</link>
  <description>Blog Author's blog</description>
  <language>en</language>
  <pubDate>Tue, 12 May 2026 01:17:41 +0000</pubDate>
  <copyright>© 2026 Blog Author</copyright>
  <atom:link href="https://taters.codeberg.page/rss.xml" rel="self" type="application/rss+xml" />

<item>
  <title>Code Copy Javascript</title>
  <link>https://taters.codeberg.page/posts/codecopy.html</link>
  <guid>https://taters.codeberg.page/posts/codecopy.html</guid>
  <description><![CDATA[
        <main>

<div class="code-container">
<pre><code class="language-plaintext">
sample
code
block
</code></pre>
</div>

<h2>1. Add a &lt;script&gt; tag inside the <code>CUSTOM_HTML_HEAD</code> variable</h2>

<p><em>bw.sh</em></p>

<div class="code-container">
<pre><code class="language-md">
CUSTOM_HTML_HEAD="
&lt;script src=\"$BASE_URL/assets/codecopy.js\" defer&gt;&lt;/script&gt;
"
</code></pre>
</div>

<h2>2. Create <code>codecopy.js</code> file in <em>assets/</em></h2>

<div class="code-container">
<pre><code class="language-plaintext">
your-blog/
├─ assets/
│  ├─ codecopy.js    &lt;&lt;&lt; New!
├─ write/
├─ bw.sh
</code></pre>
</div>

<h2>3. Add code in <code>./assets/codecopy.js</code></h2>

<p><em>assets/codecopy.js</em></p>

<div class="code-container">
<pre><code class="language-js">
// Copy button for code block
const codes = document.querySelectorAll('div.code-container');

codes.forEach(item =&gt; {
  // Container style
  item.setAttribute("style", "position: relative;");

  // Create button
  const copyBtn = document.createElement('button');
  copyBtn.textContent = 'Copy';
  copyBtn.setAttribute("style", "position: absolute; top: 0; right: 0; z-index: 3; background: var(--background-color); color: var(--main-theme); border: none;");

  // Add event
  copyBtn.addEventListener("click", () =&gt; {
    navigator.clipboard.writeText(copyBtn.previousElementSibling.textContent).then(()
=&gt; {
      copyBtn.textContent = "Copied!"
      setTimeout(() =&gt; {
        copyBtn.textContent = "Copy"
      }, 1000)
    })
  });

  // Add element
  item.appendChild(copyBtn);
})
</code></pre>
</div>

<h2>4. Save the file and run <code>./bw.sh b</code></h2>

<p>Fin!</p>

    </main>
  ]]></description>
  <pubDate>Mon, 28 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>BashWrite Quick Start</title>
  <link>https://taters.codeberg.page/posts/start.html</link>
  <guid>https://taters.codeberg.page/posts/start.html</guid>
  <description><![CDATA[
        <main>

<h2>About BashWrite</h2>
<p>Pure Bash, single script blog generator</p>

<ul>
<li>Minimal requirements (Common commands: sed, awk, grep, tar)</li>
<li>Support <a href="https://github.com/mattcone/markdown-guide">Extended Markdown</a></li>
<li>RSS</li>
<li>Tags</li>
<li>Darkmode</li>
<li>Pinned posts</li>
<li>Recent posts</li>
</ul>

<hr>

<h2>Quick Start</h2>
<h3>Install</h3>
<ol>
<li>Download: <code>bw.sh</code> - <a href="https://codeberg.org/taters/BashWrite">Codeberg</a></li>
<li>Make file executable: <code>chmod +x ./bw.sh</code></li>
<li>Edit and save script's user settings: <code>nano ./bw.sh</code> (Or use preferred text editor)</li>
<li>View help/first steps (See: Write New Posts): <code>./bw.sh</code></li>
<li>Generate blog: <code>./bw.sh b</code></li>
</ol>

<h3>Write New Posts</h3>
<ol>
<li>Create a markdown file in <em>./write/</em>: <code>touch ./write/first-post.md</code></li>
<li>Edit newly created markdown file: <code>nano ./write/first-post.md</code> (Or use preferred text editor)</li>
<li>Start markdown file with <a href="https://taters.codeberg.page/posts/frontmatter.html">frontmatter</a></li>
</ol>
<div class="code-container">
<pre><code class="language-plaintext">
---
title: My new post
description: Write description of this post.
date: 2025-02-05
lastmod: 2025-05-02
tags: tags seperated by whitespace
draft: false
pin: 1
banner: image.png
---
</code></pre>
</div>
<ol>
<li>Add post content in markdown syntax after frontmatter</li>
<li>Save markdown file</li>
<li>Update blog: <code>./bw.sh b</code></li>
</ol>

<h3>Remove posts</h3>
<ol>
<li>Remove a markdown file in <em>./write/</em>: <code>rm -i ./write/first-post.md</code></li>
<li>Update blog: <code>./bw.sh b</code></li>
</ol>

<hr>

<h3>Commands</h3>
<ul>
<li><code>./bw.sh h</code> : Show help</li>
<li><code>./bw.sh b</code> : Build blog </li>
<li><code>./bw.sh r</code> : Force blog rebuild</li>
</ul>


<h3>Directory Structure</h3>
<h4>Downloaded From Repository</h4>
<ul>
<li>bw.sh</li>
</ul>

<h4>Automatically Generated</h4>

<p>Note: Do not edit the following files</p>
<ul>
<li>./backup/</li>
<li>./checksum/ - Checksum list to compare the diffrence of files</li>
<li>./posts/</li>
<li>./tags/</li>
<li>./404.html</li>
<li>./all-posts.html - List of every posts</li>
<li>./all-tags.html - List of every tags</li>
<li>./index.html</li>
<li>./robots.txt</li>
<li>./rss.xml</li>
<li>./style.css</li>
<li>./sitemap.xml</li>
</ul>

<h4>User Created Folders</h4>

<p>Note: Only edit files within these folders</p>

<p>Create folders: <code>mkdir ./assets ./write</code></p>
<ul>
<li>./assets/ - For site assets (Example: Favicons)</li>
<li>./write/ - For post markdown files and post assets</li>
</ul>

    </main>
  ]]></description>
  <pubDate>Sun, 27 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>Giscus Comments</title>
  <link>https://taters.codeberg.page/posts/comments.html</link>
  <guid>https://taters.codeberg.page/posts/comments.html</guid>
  <description><![CDATA[
        <main>

<h2>1. Visit giscus homepage</h2>

<a href="https://giscus.app/">https://giscus.app/</a>

<p>Read the text on the homepage carefully and follow it.</p>

<h2>2. Giscus setting</h2>

<p>If you don't understand something, follow the settings below.</p>

<ul>
<p><li>Page ↔️ Discussions Mapping </p>
<ul>
<li><input type="checkbox" checked disabled> Discussion title contains page pathname</li>
</ul>
</li>
<p><li>Discussion Category</p>
<ul>
<li>-> Announcements</li>
<li><input type="checkbox" checked disabled> Only search for discussions in this category</li>
</ul>
</li>
<p><li>Features</p>
<ul>
<li><input type="checkbox" checked disabled> Enable reactions for the main post</li>
<li><input type="checkbox" disabled> Emit discussion metadata</li>
<li><input type="checkbox" checked disabled> Place the comment box above the comments</li>
<li><input type="checkbox" checked disabled> Load the comments lazily</li>
</ul>
</li>
<p><li>Theme</p>
<ul>
<li>-> Preferred color scheme</li>
</ul>
</li>
</ul>

<h2>3. Copy script html code</h2>

<div class="code-container">
<pre><code class="language-html">
&lt;script 
  src="https://giscus.app/client.js"
  data-repo="RayCC51/BashWrite"
  data-repo-id="R_kgDOOQp0-w"
  data-category="Announcements"
  data-category-id="DIC_kwDOOQp0-84CpMGk"
  data-mapping="pathname"
  data-strict="0"
  data-reactions-enabled="1"
  data-emit-metadata="0"
  data-input-position="top"
  data-theme="preferred_color_scheme"
  data-lang="en"
  data-loading="lazy"
  crossorigin="anonymous"
  async&gt;
&lt;/script&gt;
</code></pre>
</div>

<h2>4. Paste above code in <code>bw.sh</code> - <code>CUSTOME<em>HTML</em>ARTICLE_FOOTER</code></h2>

<div class="code-container">
<pre><code class="language-bash">
CUSTOM_HTML_ARTICLE_FOOTER="
&lt;script 
  src=\"https://giscus.app/client.js\"
  data-repo=\"RayCC51/BashWrite\"
  data-repo-id=\"R_kgDOOQp0-w\"
  data-category=\"Announcements\"
  data-category-id=\"DIC_kwDOOQp0-84CpMGk\"
  data-mapping=\"pathname\"
  data-strict=\"0\"
  data-reactions-enabled=\"1\"
  data-emit-metadata=\"0\"
  data-input-position=\"top\"
  data-theme=\"preferred_color_scheme\"
  data-lang=\"en\"
  data-loading=\"lazy\"
  crossorigin=\"anonymous\"
  async&gt;
&lt;/script&gt;
"
</code></pre>
</div>

<p>You need to escape the <code>"</code>. That is, you should change <code>"</code> to <code>\"</code>.</p>

<h2>5. Save and run <code>./bw.sh b</code></h2>

<p>Now there are comments on your blog post. </p>

<p>👇👇👇</p>
<a href="https://raycc51.github.io/BashWrite/posts/comments.html">See example</a>

    </main>
  ]]></description>
  <pubDate>Sun, 27 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>Images for Blog Posts</title>
  <link>https://taters.codeberg.page/posts/images/index.html</link>
  <guid>https://taters.codeberg.page/posts/images/index.html</guid>
  <description><![CDATA[
        <main>

<h2>Include images in posts</h2>

<p>You can use markdown to include the images. </p>

<h3>1. Prepare images. </h3>

<figure>
  <img src="screenshot.png" alt="screenshot.png" loading="lazy">
  <figcaption>screenshot.png</figcaption>
</figure>

<h3>2. Put your images in...</h3>

<div class="code-container">
<pre><code class="language-plaintext">
your-blog-directory/
├─ write/
│  ├─ new-post/           &lt;&lt;&lt; New!
│  │  ├─ index.md         &lt;&lt;&lt; New!
│  │  ├─ screenshot.png   &lt;&lt;&lt; New!
├─ bw.sh
</code></pre>
</div>

<p>Create a new folder under the <code>./write/</code> folder. It’s best to name the folder after the title of the new post you will write.</p>

<p>Try to keep only 1 markdown file per folder if possible. This will make file management easier.</p>

<p>Name the markdown file <code>index.md</code>. This way, you can have a clean URL.</p>

<p>Also, include any images you want to put in this folder.</p>

<h3>3. Write markdown</h3>

<figure>
  <img src="screenshot.png" alt="screenshot" loading="lazy">
  <figcaption>screenshot</figcaption>
</figure>

<div class="code-container">
<pre><code class="language-md">
![screenshot](screenshot.png)
</code></pre>
</div>

<h2>Banner Image</h2>

<h3>1. Prepare image or image link</h3>

<p>...</p>


<h3>2. Frontmatter</h3>

<div class="code-container">
<pre><code class="language-plaintext">
title: ...
description: ...
date: ...
banner: https://place-hold.it/100x400
</code></pre>
</div>

<p>Put your image path or image url in <code>banner</code>. </p>

    </main>
  ]]></description>
  <pubDate>Sun, 20 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>MD2HTML Bug List</title>
  <link>https://taters.codeberg.page/posts/markdown/md2html-bug.html</link>
  <guid>https://taters.codeberg.page/posts/markdown/md2html-bug.html</guid>
  <description><![CDATA[
        <main>

<p>Source code: <a href="https://codeberg.org/taters/md2html.sh">md2html</a></p>

<p>Original source code: <a href="https://github.com/RayCC51/md2html.sh">md2html</a></p>

<h2>Inline code</h2>

<h3>Need escape for special charactors</h3>

<p><code><hr></code></p>

<p><code>&lt;hr&gt;</code></p>

<p><code>\ . | # ! * + - _ ( ) { } [ ] &lt; &gt; `</code></p>

<div class="code-container">
<pre><code class="language-md">
`&lt;hr&gt;`

`\&lt;hr\&gt;`

`\\ \. \| \# \! \* \+ \- \_ \( \) \{ \} \[ \] \&lt; \&gt; \``
</code></pre>
</div>

<h3>Can not use double backtick(``)</h3>

<p>`<code>double </code>code<code> backtick</code>`</p>

<div class="code-container">
<pre><code class="language-md">
``double `code` backtick``
</code></pre>
</div>

<h2>List</h2>

<h3>Other elements insides list</h3>

<ul>
<li>list</li>
<li>list</li>
</ul>

<p class="indented">p</p>
<ul>
<li>list</li>
</ul>

<p class="indented">> blockquote</p>

<ul>
<li>list</li>
</ul>

<div class="code-container">
<pre><code class="language-md">
- list
- list

    p
    
- list

    &gt; blockquote

- list
</code></pre>
</div>

<h2>Footnote</h2>

<h3>Footnote link with space</h3>

<p>How to call<sup><a class="footnote" id="fn-of this" href="#footnote-of this">of this</a></sup> things<sup><a class="footnote" id="fn-foot note" href="#footnote-foot note">foot note</a></sup>?</p>

<p>[<a class="footnote" id="footnote-of this" href="#fn-of this">of this</a>]: Can not use whitespace in html id. </p>

<p>[<a class="footnote" id="footnote-foot note" href="#fn-foot note">foot note</a>]: So this will not working well.</p>

<div class="code-container">
<pre><code class="language-md">
How to call[^of this] things[^foot note]?

[^of this]: Can not use whitespace in html id. 

[^foot note]: So this will not working well. 
</code></pre>
</div>

<h3>Footnote with several lines</h3>

<p>Footnote<sup><a class="footnote" id="fn-with" href="#footnote-with">with</a></sup>. </p>

<p>[<a class="footnote" id="footnote-with" href="#fn-with">with</a>]: several lines</p>

<p class="indented">should be</p>

<p class="indented">work. </p>

<div class="code-container">
<pre><code class="language-md">
Footnote[^with]. 

[^with]: several lines

    should be

    work. 
</code></pre>
</div>


<h2>Non ASCII characters in table? - Github Pages</h2>

<table>
  <thead>
<tr>
<th></th>
<th>table</th>
</tr>
  </thead>
  <tbody>
<tr>
<td>q</td>
<td>@</td>
</tr>
<tr>
<td>π</td>
<td>©</td>
</tr>
<tr>
<td>∆</td>
<td>•</td>
</tr>
<tr>
<td>ä</td>
<td>❓</td>
</tr>
  </tbody>
</table>

<div class="code-container">
<pre><code class="language-md">
||table|
|---|---|
|q|@|
|π|©|
|∆|•|
|ä|❓|
</code></pre>
</div>
<h2>Text links</h2>
<p>Multiple links on the same line do not work</p>

<p>Code:</p>
<div class="code-container">
<pre><code class="language-plaintext">
[Link-1](https://www.example.com/) [Link-2](https://www.example.com/)
</code></pre>
</div>
<p>Output:</p>
<a href="https://www.example.com/">Link-1](https://www.example.com/) [Link-2</a>

    </main>
  ]]></description>
  <pubDate>Thu, 17 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>Markdown Sample</title>
  <link>https://taters.codeberg.page/posts/markdown/markdown-sample.html</link>
  <guid>https://taters.codeberg.page/posts/markdown/markdown-sample.html</guid>
  <description><![CDATA[
        <main>

<h1>Pure markdown h1</h1>

<div class="code-container">
<pre><code class="language-md">
# Pure markdown h1
</code></pre>
</div>

<h2>h2</h2>

<div class="code-container">
<pre><code class="language-md">
## h2
</code></pre>
</div>

<h3>h3</h3>

<div class="code-container">
<pre><code class="language-md">
### h3
</code></pre>
</div>

<h4>h4</h4>

<div class="code-container">
<pre><code class="language-md">
#### h4
</code></pre>
</div>

<h5>h5</h5>

<div class="code-container">
<pre><code class="language-md">
##### h5
</code></pre>
</div>

<h6>h6</h6>

<div class="code-container">
<pre><code class="language-md">
###### h6
</code></pre>
</div>

<p>hello 
world</p>

<div class="code-container">
<pre><code class="language-md">
hello 
world
</code></pre>
</div>

<p>two blank</p>

<p>line break </p>

<div class="code-container">
<pre><code class="language-md">
two blank  
line break
</code></pre>
</div>

<p class="indented">4 space = indent</p>

<div class="code-container">
<pre><code class="language-md">
    4 space = indent
</code></pre>
</div>

<p>italic <em>em</em></p>

<div class="code-container">
<pre><code class="language-md">
italic *em*
</code></pre>
</div>

<p>bold <strong>strong</strong></p>

<div class="code-container">
<pre><code class="language-md">
bold **strong**
</code></pre>
</div>

<p>italic and bold <strong><em>em strong</em></strong></p>

<div class="code-container">
<pre><code class="language-md">
italic and bold ***em strong***
</code></pre>
</div>

<p>escape: \ . | # ! * + - _ ( { [ &lt; ``</p>

<div class="code-container">
<pre><code class="language-md">
escape: \\ \. \| \# \! \* \+ \- \_ \( \{ \[ \&lt; \``
</code></pre>
</div>

<hr>

<div class="code-container">
<pre><code class="language-md">
---
</code></pre>
</div>

<hr>

<div class="code-container">
<pre><code class="language-md">
***
</code></pre>
</div>

<hr>

<div class="code-container">
<pre><code class="language-md">
___
</code></pre>
</div>


<ul>
<li>unordered ul</li>
<p><li>list li</p>
<ul>
<li>indented</li>
</ul>
</li>
<li>list</li>
</ul>

<div class="code-container">
<pre><code class="language-md">
- unordered ul
- list li
    - indented
- list
</code></pre>
</div>

<ol>
<li>ordered ol</li>
<p><li>list li</p>
<ol>
<li>indented</li>
</ol>
</li>
<li>list</li>
</ol>

<div class="code-container">
<pre><code class="language-md">
1. ordered ol
2. list li
    1. indented
4. list
</code></pre>
</div>

<ol>
<p><li>mixed</p>
<ul>
<li>ul</li>
</ul>
</li>
<li>ol</li>
</ol>

<div class="code-container">
<pre><code class="language-md">
1. mixed
    - ul
2. ol
</code></pre>
</div>

<blockquote>
<p>block quote</p>

<p>blockquote</p>

<blockquote>
<p>indented</p>
</blockquote>

<p>blockquote</p>
</blockquote>

<div class="code-container">
<pre><code class="language-md">
&gt; block quote
&gt;
&gt; blockquote
&gt;
&gt; &gt; indented
&gt;
&gt; blockquote
</code></pre>
</div>

<a href="https://example.com">Link a</a>

<div class="code-container">
<pre><code class="language-md">
[Link a](https://example.com)
</code></pre>
</div>

<a href="https://example.com">https://example.com</a>

<div class="code-container">
<pre><code class="language-md">
&lt;https://example.com&gt;
</code></pre>
</div>

<figure>
  <img src="https://place-hold.it/100x100" alt="img" loading="lazy">
  <figcaption>img</figcaption>
</figure>

<div class="code-container">
<pre><code class="language-md">
![img](https://place-hold.it/100x100)
</code></pre>
</div>

<figure>
  <img src="https://place-hold.it/100x100" alt="img alt" title="title" loading="lazy">
  <figcaption>img alt</figcaption>
</figure>

<div class="code-container">
<pre><code class="language-md">
![img alt](https://place-hold.it/100x100 "title")
</code></pre>
</div>

<p>inline <code>code</code></p>

<div class="code-container">
<pre><code class="language-md">
inline `code`
</code></pre>
</div>

<div class="code-container">
<pre><code class="language-plaintext">
plain code block
\ . | # ! * + - _ ( ) { } [ ] &lt; &gt; ''
</code></pre>
</div>

<div class="code-container">
<pre><code class="language-md">
```
plain code block
\ . | # ! * + - _ ( ) { } [ ] &lt; &gt; ''
```
</code></pre>
</div>

<div class="code-container">
<pre><code class="language-python">
print("python")
</code></pre>
</div>

<div class="code-container">
<pre><code class="language-md">
```python
print("python")
```
</code></pre>
</div>


<h1>Extended markdown</h1>

<a href="https://www.example.com">https://www.example.com</a>

<div class="code-container">
<pre><code class="language-md">
https://www.example.com
</code></pre>
</div>

<p>strikethrough <del>del</del></p>

<div class="code-container">
<pre><code class="language-md">
strikethrough ~~del~~
</code></pre>
</div>

<p>highlight <mark>mark</mark></p>

<div class="code-container">
<pre><code class="language-md">
highlight ==mark==
</code></pre>
</div>

<p><sub>sub</sub> script</p>

<div class="code-container">
<pre><code class="language-md">
~sub~ script
</code></pre>
</div>

<p><sup>sup</sup>er script</p>

<div class="code-container">
<pre><code class="language-md">
^sup^er script
</code></pre>
</div>

<ul>
<li><input type="checkbox" disabled> checked box ul li</li>
<li><input type="checkbox" checked disabled> input type="checkbox" checked disabled</li>
</ul>

<div class="code-container">
<pre><code class="language-md">
- [ ] checked box ul li
- [x] input type="checkbox" checked disabled
</code></pre>
</div>

<h3 id="extened">heading with id <a href="#extened"> 🔗</a></h3>

<div class="code-container">
<pre><code class="language-md">
### heading with id {#extened}
</code></pre>
</div>

<table>
  <thead>
<tr>
<th>ttt</th>
<th>aaa</th>
<th>bbb</th>
<th>lll</th>
</tr>
  </thead>
  <tbody>
<tr>
<td>.</td>
<td class="align-left">l</td>
<td class="align-center">c</td>
<td class="align-right">r</td>
</tr>
  </tbody>
</table>

<div class="code-container">
<pre><code class="language-md">
|ttt|aaa|bbb|lll|
|---|:--|:-:|--:|
|.|l|c|r|
</code></pre>
</div>

<dl>
    <dt>dl</dt>
    <dd>definition list</dd>
    <dt>dt</dt>
    <dd>definition</dd>
    <dd>data</dd>
</dl>

<div class="code-container">
<pre><code class="language-md">
dl
: definition list

dt
: definition
: data
</code></pre>
</div>

<p>foot<sup><a class="footnote" id="fn-1" href="#footnote-1">1</a></sup> note<sup><a class="footnote" id="fn-note" href="#footnote-note">note</a></sup> sup a</p>

<p>[<a class="footnote" id="footnote-1" href="#fn-1">1</a>]: first foot note</p>

<p>[<a class="footnote" id="footnote-note" href="#fn-note">note</a>]: long</p>

<div class="code-container">
<pre><code class="language-md">
foot[^1] note[^note] sup a

[^1]: first foot note

[^note]: long
</code></pre>
</div>

<h1>HTML Tag</h1>

<!-- comment -->

<div class="code-container">
<pre><code class="language-md">
&lt;!-- comment --&gt;
</code></pre>
</div>

<br>

<div class="code-container">
<pre><code class="language-md">
&lt;br&gt;
</code></pre>
</div>

<b>html b tag</b>

<div class="code-container">
<pre><code class="language-md">
&lt;b&gt;html b tag&lt;/b&gt;
</code></pre>
</div>

<details>
<summary>details and summary</summary>
<p>open</p>

<p>and</p>

<p>close</p>

<p>paragraph</p>
</details>

<div class="code-container">
<pre><code class="language-md">
&lt;details&gt;
&lt;summary&gt;details and summary&lt;/summary&gt;
open

and

close

paragraph
&lt;/details&gt;
</code></pre>
</div>

<p>iframe</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/jNQXAC9IVRw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

<div class="code-container">
<pre><code class="language-md">
&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/jNQXAC9IVRw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;
</code></pre>
</div>

    </main>
  ]]></description>
  <pubDate>Thu, 17 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>Publish to Gihub Pages With Github Actions</title>
  <link>https://taters.codeberg.page/posts/github-action/index.html</link>
  <guid>https://taters.codeberg.page/posts/github-action/index.html</guid>
  <description><![CDATA[
        <main>

<h2>Download github action</h2>

<ol>
<li>Download <code>.github/workflows/build.yaml</code> in <a href="https://github.com/raycc51/bashwrite">Github RayCC51/BashWrite</a></li>
<li>Put the <code>build.yaml</code> file in your <code>your-blog-path/.github/workflows/</code></li>
</ol>

<h3>Directory</h3>

<div class="code-container">
<pre><code class="language-plaintext">
your_blog/
├─ .github/           &lt;&lt;&lt; New!
│  ├─ workflows/      &lt;&lt;&lt; New!
│  │  ├─ build.yaml   &lt;&lt;&lt; New!
├─ write/
│  ├─ post1.md
│  ├─ post2.md
├─ bw.sh
</code></pre>
</div>

<h2>Settings in github.com</h2>

<figure>
  <img src="pages-setting.png" alt="setting image" loading="lazy">
  <figcaption>setting image</figcaption>
</figure>

<ol>
<li>Push any files in your blog repository, or just run a github action. Then <em>gh-pages</em> branch will be created automatically.</li>
<li>Go to the your blog repository settings.</li>
<p><li>Settings -> Code and automation - Pages -> Build and deployment</p>
<ul>
<li>Source: Deploy from a branch</li>
<li>Branch: gh-pages</li>
</ul>
</li>
<li>Save the settings.</li>
<li>Your site is live at <em>https://YOUR-NAME.github.io/</em> or <em>https://YOUR-NAME.github.io/REPO-NAME/</em></li>
</ol>

    </main>
  ]]></description>
  <pubDate>Thu, 17 Apr 2025 00:00:00 UTC</pubDate>
</item>

<item>
  <title>Frontmatter</title>
  <link>https://taters.codeberg.page/posts/frontmatter.html</link>
  <guid>https://taters.codeberg.page/posts/frontmatter.html</guid>
  <description><![CDATA[
        <main>

<div class="code-container">
<pre><code class="language-plaintext">
---
title: Frontmatter
description: About frontmatter
date: 2025-04-17
lastmod: 2025-04-26
tags: sample frontmatter blog
draft: true
pin: 1
banner: image.png
---
</code></pre>
</div>

<table>
  <thead>
<tr>
<th></th>
<th>Required</th>
<th>Default vaule</th>
<th>Type</th>
</tr>
  </thead>
  <tbody>
<tr>
<td>title</td>
<td>O</td>
<td>New post <code>yyyy-mm-dd</code></td>
<td>String</td>
</tr>
<tr>
<td>description</td>
<td>o</td>
<td>.</td>
<td>String</td>
</tr>
<tr>
<td>date</td>
<td>O</td>
<td><code>yyyy-mm-dd</code></td>
<td>yyyy-mm-dd</td>
</tr>
<tr>
<td>lastmod</td>
<td>X</td>
<td>.</td>
<td>yyyy-mm-dd</td>
</tr>
<tr>
<td>tags</td>
<td>X</td>
<td>.</td>
<td>String</td>
</tr>
<tr>
<td>draft</td>
<td>X</td>
<td><code>false</code></td>
<td>bool</td>
</tr>
<tr>
<td>pin</td>
<td>X</td>
<td>.</td>
<td>int</td>
</tr>
<tr>
<td>banner</td>
<td>X</td>
<td>.</td>
<td>String</td>
</tr>
  </tbody>
</table>

<p><code>yyyy-mm-dd</code> is the date format</p>

<hr>

<p>This is a yaml-like syntax. </p>

<p>There must always be a <strong>space</strong> after the <strong>colon(:)</strong>. </p>

<p>The <code>title</code> and <code>date</code> are required, while the rest are optional. <code>description</code> is useful for the blog frontpage.</p>

<hr>

<p><code>date</code> and <code>lastmod</code> must always be written in <em>yyyy-mm-dd</em> format. </p>

<p><code>tags</code> are separated by whitespaces. Tags must only use alphabets, numbers, dashes(-), and underscores(_). Duplicate tags will be ignored.</p>

<p>If you want to pin a post, you need to enter a <strong>natural number</strong> for <code>pin</code>. <code>pin: 1</code> will be the top pinned post. If you do not want to pin a post, you can either leave it blank or delete the line.</p>

<p>The <code>banner</code> image can use relative paths, absolute paths, or external links. </p>

    </main>
  ]]></description>
  <pubDate>Thu, 17 Apr 2025 00:00:00 UTC</pubDate>
</item>

</channel>
</rss>

