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.

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

๐Ÿ‘‹ Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay