100 lines
6.7 KiB
HTML
100 lines
6.7 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta author="Alex Mikhailov"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="color-scheme" content="light dark"/><meta http-equiv="content-language" content="en-us"/><meta name="description" content="Slice of my technical life"/><meta property="og:description" content="Slice of my technical life"/><meta property="og:image" content="https://fidonode.me/resources/images/preview/rss.org.png"/><meta property="og:title" content="Alex's M Personal Blog"/><meta name="twitter:description" content="Slice of my technical life"/><meta name="twitter:title" content="Alex's M Personal Blog"/><meta name="twitter:image" content="https://fidonode.me/resources/images/preview/rss.org.png"/><meta name="twitter:card" content="summary_large_image"/><link rel="icon" type="image/x-icon" href="/resources/favicon.ico"/><link rel="stylesheet" type="text/css" href="/resources/css/pico.sand.min.css"/><script defer="true" src="https://umami.dokutsu.xyz/script.js" data-website-id="d52d9af1-0c7d-4531-84c6-0b9c2850011f"></script><title>Alex's M Personal Blog</title></head><body><header class="header"><div class="container"><nav><ul><li><strong>Alex Mikhailov</strong></li></ul><ul><li><a href="/index.html">About</a></li><li><a href="/posts.html">Blog</a></li><li><a href="/rss.xml">RSS</a></li></ul></nav></div></header><main class="container"><div id="table-of-contents" role="doc-toc">
|
|
<h2>Table of Contents</h2>
|
|
<div id="text-table-of-contents" role="doc-toc">
|
|
<ul>
|
|
<li><a href="#org4d05ae9">Blog index and tags automation</a></li>
|
|
<li><a href="#org5e9f6a4">Posts preview</a></li>
|
|
<li><a href="#org5c4e2dc">Improve code blocks</a></li>
|
|
<li><a href="#org7ab1aeb">Org blog with RSS</a></li>
|
|
<li><a href="#orgd9eb483">Org to HTML and back</a></li>
|
|
<li><a href="#orgae25f7c">My keyboard journey</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org4d05ae9" class="outline-2">
|
|
<h2 id="org4d05ae9"><a href="file:///home/fido-node/org/home/05 Blog/posts/blog_index_and_tags_automation.html">Blog index and tags automation</a></h2>
|
|
<div class="outline-text-2" id="text-org4d05ae9">
|
|
<p>
|
|
Let's add tags to blog posts
|
|
</p>
|
|
|
|
<p>
|
|
Tags are a nice and easy way to organize posts without explicit search. In the simplest way, you have a list of tags in posts, and each tag links to a page with all posts having the corresponding tag. It is also helpful to have a page with all tags available in the blog. And, of course, I don't want to maintain the list of tags manually.
|
|
Automate tags.
|
|
Simple idea - go through all files, collect titles, dates and descriptions, render into org files. Easy peazy lemon squezy….
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-org5e9f6a4" class="outline-2">
|
|
<h2 id="org5e9f6a4"><a href="file:///home/fido-node/org/home/05 Blog/posts/posts_preview.html">Posts preview</a></h2>
|
|
<div class="outline-text-2" id="text-org5e9f6a4">
|
|
<p>
|
|
Add post preview for OpenGraph cards
|
|
</p>
|
|
|
|
<p>
|
|
<a href="https://imagemagick.org">Imagemagick</a> is a ffmpeg of the image world. You can do a lot of fun things with it. For example you can take a picture, cut corners on it, place it on top of another image, add some text and get final result. So it is looks like a good tool for making previews from code.
|
|
Basic idea of this process
|
|
I want to hook a process of rendering post. Since this function called on each run of publishing and for each post it is a good idea to cache resulting images. I gonna simply check presence of preview image and use it as guard for running image generation. After that I gonna extract <code>#+TITLE</code> and <code>#+DESCRIPTION</code> properties from Org file. Each Org file I have, has next header:…
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-org5c4e2dc" class="outline-2">
|
|
<h2 id="org5c4e2dc"><a href="file:///home/fido-node/org/home/05 Blog/posts/improve_code_blocks.html">Improve code blocks</a></h2>
|
|
<div class="outline-text-2" id="text-org5c4e2dc">
|
|
<p>
|
|
Use highlight.js for code syntax highlighting
|
|
</p>
|
|
|
|
<p>
|
|
Htmlize works poorly with headless publishing. It lacks extensibility, including features like line numbers, a copy button, and the ability to highlight predefined parts of the code.
|
|
Highlight.js
|
|
Change code block template…
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-org7ab1aeb" class="outline-2">
|
|
<h2 id="org7ab1aeb"><a href="file:///home/fido-node/org/home/05 Blog/posts/add_rss_to_blog.html">Org blog with RSS</a></h2>
|
|
<div class="outline-text-2" id="text-org7ab1aeb">
|
|
<p>
|
|
Let's add RSS feed to blog
|
|
</p>
|
|
|
|
<p>
|
|
RSS might seem like an outdated, marginal thing. But it still has at least one benefit—you can use an RSS feed as a sitemap for search engines. Plus, it's pretty geeky.
|
|
Add RSS feed
|
|
So, what's happening here? Let's start by integrating our templating functions into the build….
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-orgd9eb483" class="outline-2">
|
|
<h2 id="orgd9eb483"><a href="file:///home/fido-node/org/home/05 Blog/posts/about_blog.html">Org to HTML and back</a></h2>
|
|
<div class="outline-text-2" id="text-orgd9eb483">
|
|
<p>
|
|
Blog post about publishing my blog with Org Mode
|
|
</p>
|
|
|
|
<p>
|
|
I'm neither proficient in Org Mode (further on "Org"), nor a good front-end engineer. I think that a simple solution is better than no solution. If you see a mistake, you can contact me via <a href="mailto:iam@fidonode.me">iam@fidonode.me</a>.
|
|
What is Org?
|
|
#+begin<sub>quote</sub>…
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-orgae25f7c" class="outline-2">
|
|
<h2 id="orgae25f7c"><a href="file:///home/fido-node/org/home/05 Blog/posts/keeb.html">My keyboard journey</a></h2>
|
|
<div class="outline-text-2" id="text-orgae25f7c">
|
|
<p>
|
|
Blog post about my keyboards
|
|
</p>
|
|
|
|
<p>
|
|
Sometimes I think about the long journey I've made with keebs. In childhood, I had decent membrane keyboards, most of which had an ergonomic profile like the MS. Not sure if it somehow affected my taste because I started my career with the simplest, cheapest board and typed countless lines of code on such keebs. Then I heard about clickity-clack mechanical keyboards and decided to try one. It was a simple Chinese keeb with a thick metal body, double-shot caps, and Cherry Brown switches. A decent thing to annoy everyone around you. I think this purchase marked my dive into mech keebs
|
|
I'm not a geeky aficionado who thinks you can fix everything with a new keyboard, but I built a couple of them. I hope I've finally built the last one for quite some time.
|
|
Dactyl manuform…
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</main><footer class="footer"><div class="container"><hr/><small><p>Alex Mikhailov</p><p>Built with: <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> <a href="https://orgmode.org/">Org Mode</a> <a href="https://picocss.com/">picocss</a></p></small></div></footer></body></html>
|