A review of establishing this new personal blog
Michael

History of my blog(s)

I have, for so long, not published new posts on my blog. To be more specific, I have never written a single post for my blog. All previous posts published on various sites that hold the very essence of my blog are merely a republishing of content that I wrote for things elsewhere. Anyways, the last domain that keeps my blog is a .com one, which cost me a considerable amount of money. I certainly have the ability to pay for the domain, but it is not worth it since I am not writing for the blog. It is also the exact case for the one before the last one that I deployed on another domain. It was not until this winter break (Dec 31, 2024) that I started to consider reestablishing my blog.

Why build a new blog

The decision was not entirely random; there was a catalyst for doing so. The push that led me forward was a random search on free domains, which I quickly found several, including eu.org, pp.ua, us.kg, and so on. I cannot remember the reason for me to conduct that search, and maybe it is just some random curiosity, the same one that got my Google Voice account into trouble a few days ago and finally managed to get the access reinstated on the very same day of searching. Anyway, it was time to build a new blog or the exact old blog under a new and, more importantly, free domain.

The domain registration is nothing near smooth. It was after I successfully deployed the first version of this new blog onto the server that I knew that eu.org had not been approving new applications for so long. Luckily, I simultaneously registered another domain under pp.ua, which is not the one where this post is published (michael.pp.ua). The current domain was registered a few days later (Jan 3) when I started to realize that I might not get approval for the eu.org application; still, there were a lot of vacant unregistered domains ending with pp.ua that could enable me only to put my first name on it without adding other random words or characters. This is when this domain, michael.pp.ua, came into play.

I got the domain and started my deployment work. It is an enjoyable process since the total cost for this new blog will be free, from domains to servers; all have been taken care of by projects and companies elsewhere. Thank you, open-source community, by the way. Ideally, this blog will last long when the following criteria are met: Firstly, I have to remind myself to renew the pp.ua domain once a year; Secondly, pp.ua has not paused my access to their domains. The first one is pretty easy to achieve since I was told that pp.ua would send me emails one month prior and that I would keep a mental note. The second one is a little bit tricky, as there are quite a few rumours saying that pp.ua have a record of cancelling others’ access due to potential term violations. I have to keep my fingers crossed and pray this does not happen. There are DPs saying that their domains survived, and quite a few did.

Due to its simplicity, the domain michael.pp.ua served as a massive incentive for me to deal with this new blog. If everything goes well, this new blog can last forever or nearly forever theoretically without the need for me to pay a single cent, and my unwillingness to pay was almost the exact reason why my last blog died. The initial plan was to redeploy what I have on this new site: a site based on Pure theme with Gridea framework, Github Pages, and Cloudflare DNS. I soon decided that my new blog deserves something more. This was when I started to figure out how to add a comment system called “Twikoo” on Pure. However, both Pure and Gridea lacked extensional ability, and the Twikoo module is not fully compatible with Pure. I admit that if I had better computer science and coding skills, I might find a way out, but this is not true for me. I have always known that there is another framework for static blogs that hangs around: Hexo. What deterred me from using this more advanced and highly scalable framework is that Hexo does not offer a user interface, and Gridea has a good one.

Why Hexo and Keep

However, I spent a lot of time fixing codes just to achieve a simple goal, to put Twikoo into Pure and fix the compatibility, which is just not worth the time and effort. I might encounter more issues in the future due to the obsolete framework and a theme lacking animations. I have put so much effort into fixing something that will never be perfect, well enough for me to learn a CLI with well-documented instructions and a supportive, innovative and dynamic community.

I changed my mind and decided to switch to Hexo after several hours of hard work on Gridea. I randomly jumped into a site demonstrating various themes Hexo has, and my eyes were caught with a theme called Keep. This theme has a very pretty first page, which I finally did not set up for my blog. It made me certain that this was the theme I wanted: a dynamic theme. At the time, I still held onto hope that I could cope with the issue involving Gridea and Twikoo, but I warned myself that I might encounter even more problems if I ventured into the ‘abyss’ of Hexo — a deep abyss, as the Easy Hexo tutorial put it. After several failures, I gave up and welcomed my blog into a true 2.0 version with a renewed framework and theme, but I kept everything in the exact spot as in the Gridea framework.

Keep theme is very similar to the Pure theme but with more designs, animations, and functionality. For example, it supports Twikoo natively, sparing me from dealing with this module again. Hexo itself, with a vibrant community, offers easy-to-use plugins to enhance the function. I read the documentation for both Hexo and Keep, and then I started to edit the configuration file for the theme. It went well, although with ups and downs. I remembered that there was a major issue: all links directed to resources inside the blog system could not be clicked. What I did was reinstall the whole frame and move everything that I had previously done. It is pretty simple to do that with several well-refined documents from inside the community.

The abyss that I went in

After that, the blog system was the same thing as it was when I started to write this article on Jan 6, the last day before school. At that exact moment, I was confident that I could customize everything on my blog with reference to the document. This was when the “abyss” really started. The challenges started with the fact that Keep does not support changing text alignment natively, and I had to achieve that through CSS injection. After that, I figured out that Keep lacks the support of Safari favicons, and Safari cannot identify my icon that was set up through the Keep configuration. What makes it worse is that my devices identify a random WeChat favicon, which may be detected and stored when I open a post directly from a link shared by WeChat. I then learned to use JS injection to include Safari-specific favicons and touch icon heads, ultimately partially fixing the issue. The other matter on this front is that Safari has a pretty lazy strategy in loading website favicons, and it failed to refresh its cache once it determined that the WeChat favicon was the one this blog set up. I had to reset my cell phone to factory mode to let Safari refresh, and this happened twice because I decided to update the touch icons again later to make the visual better. However, this brought about knowledge about how browsers identify favicons through heads and how CSS and JS injections can operate.

Constant issues were encountered later, and there are simply tons of them. The one that bothered me the most recently was when I tried to embed a Bilibili video into the page; I found out that the embedded video cannot be in full-screen mode when viewed on an iOS device but can be viewed from Android, iPad and desktop browsers. I later decided that I did nothing wrong on my side, but instead, the Bilibili player simply does not support the API on iOS devices to be on full screen. Even if I open the link to the embedded player directly, it fails to enter full-screen mode on iOS after clicking the full-screen button, although it functions normally on Android, iPads and desktops and turns into full-screen. I guess that the player just does not provide support as good as other platforms like Youtube and support special APIs or requirements that iOS devices require and that Bilibili simply does not want to improve the experience on mobile devices when it comes to watching a video; they want their users to use their apps.

Conclusion and looking ahead

I am now (Jan 12, 2025) working on adding my site to Google. The first step of verification is done, and I can already search this blog on Google, which is remarkable. However, there are foreseeable challenges ahead. Firstly, the website name and favicon (yet again) are not properly displayed on Google Search. Also, there are a few pages that I marked should not be indexed but can still be searched, which may need to be fixed in the future. The current stage of the Google Search Console is that they are still trying to process the data, so I guess that they are simply not ready to absorb my favicon and no index tag. I hope that once they finalize their processing, probably in a day or so, those issues can be fixed, or I will have to find a way out later.

This is the first post I’ve written on this new blog, as well as my only post, until now, when I wrote this paragraph—written exclusively for the blog and not for any other purposes. I see this text as a preamble of my blog, and hopefully, I can use this blog, which will maybe last longer than my other ones, to encourage myself to write something that I want to write instead of only doing those sometimes boring class work that I don’t even bother to read it after the submission.

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务