It has been a long time since I was planning for a personal website so that I can give my two cents back to community. I have learnt so much from the community that words cannot measure it. So I hope that my small contribution will help others and they will be able to achieve great
I have built this site using Hugo Framework. It seemed easy use and understand. Although I am still learning how to use this right now I think I got the hang of it.
This tool has to be mentioned as it really helped me to publish my writeups effeciently.
When I have started with Hugo Framework I soon understood I can easily copy the content from my Joplin notes to Hugo document. However, there was some manual processes which I have to perform in order to successfully publish them to this website.
Soon I understood that there were multiple challenges with this approach as if my writeups becomes significant, I will have much difficulties understanding which is which. Moreover, Keeping track of my published notes can be challenging as well.
Another issue is propagating changes in my notes. This is a major issue as I will have to do the same thing over and over again.
And finally my patience broke when I started to work with images. The markdown used by Joplin is strange. The image extension is stored on the database and the image file does not have any extension. If the post contains multiple images, it becomes difficult to track. Additionally, Joplin uses some un-markdown format for its understading things like the image is stored locally. Which I had to manually remove in order for Hugo to locate the image.
Considering such complexity, I decided to write some code in Rust so that I can easily publish my codes directly from Joplin to Hugo. The code searches for specific pattern from Joplin sqlite database and performs creation / up-gradation etc. to the posts. You will have to use the pattern below for the code to understand that you want such post to be published. The pattern is mandetory when published in Hugo.
--- title: "this site" description: "motivations and technologies used here" date: 2022-06-13T16:33:53Z draft: false ---
After running the code, it will be able to maintain your publications and you will also have a clear visibility on which posts you have published. And yes, this post is posted using the tool.
You can use the tool as well as it is published as public in my gitlab.