DEV Community

Cover image for A good code thief
Batuhan Ipci
Batuhan Ipci

Posted on β€’ Edited on

3

A good code thief

While developing palpatine, I found myself browsing through the internet and getting inspired by how other static site generators (SSG) tackled my problems (i.e. supporting md files, stylesheets, exception handling). During this process, it was obvious to me that JavaScript dominated the field of static site generators, as almost all the options I looked at, were Javascript-based. Some of the interesting ones I found were: Docusaurus, Gatsby, Jekyll and Eleventy. They all have their unique features, competing with all other SSGs, and are constantly being maintained by the community in GitHub.
 
Docusaurus has a showcase page where you can see how other serious projects are using their tool, such as Jest website built with Docusaurus, it is inspiring when you see their pages professionally done. So I initially read their documentation on how to get started, very straightforward, and within minutes I was able to set up my docusaurus site! Key features to note are: easy to use, beautiful themes, precise documentation and customizable.
 

Follow up on palpatine

Across all the JavaScript-based SSGs, palpatine is developed from the ground up using C++ and CMake as the build system. As the developer and maintainer of palpatine my main concern is to make it lightning fast compared to others. Currently, palpatine1.5 can generate a static site in less than 1 second. I've also made sure that it is easy to use, with a simple command line interface. The documentation is also precise and easy to follow. However, it is lacking one of the core features, supporting markdown files fully. I've been working on this feature for the past few days and I found a header-only Markdown parser library maddy. But it seems that it has been more than a year since the last commit was made to the library. I'm not sure if it is still being maintained. CMake was quite upset about how outdated it was.
 
cmake-warning

Thus, I was not able to use as a git submodule with CMake like I have used for other libraries. I instead cloned maddy and used only the particular include directory within the palpatine. This was successful supporting some markdown features but failed in several aspects (i.e. supporting tables, crossed texts like text, specifying language for code-blocks ). I have created issues on palpatine to resolve these problems, but I believe most of them are library related. Currently, you can see the latest progress on the sample deployment of palpatine.

Billboard image

Monitoring as code

With Checkly, you can use Playwright tests and Javascript to monitor end-to-end scenarios in your NextJS, Astro, Remix, or other application.

Get started now!

Top comments (0)

Sentry image

See why 4M developers consider Sentry, β€œnot bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

πŸ‘‹ Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay