I... really don't like this. For a small personal project to tinker with, fine, but if you stop and think: this is a lot of additional complexity to partially sidestep some extremely trivial problems.
If the goal were to generate pages from a document DSL like Markdown I'd understand the need for a transpiler. But here the author's done it to make the HTML "look cleaner".
Boilerplate is barely reduced, it's mostly been replaced with different symbols and words. Now instead of some extra characters, you've got an additional build step and a new suite of tokens to learn.
And sure that code looks "clean", but it's much less clear than the original source would be. Whitespace is syntax, the delineation between tag & content is much less clear, you can no longer see where tags end without carefully following the indentation or using editor highlights. Then you've got HTML & CSS semantics in a YAML-but-not-quite presentation with both CoffeeScript (javascript-but-not-quite) AND Python, all right next to each other, with the only separation at the bottom end being a line break.
I just fundamentally don't understand it. I suppose it's not aimed at me.
Author here ^_^ for me it's much more important to be easy to write, than easy to read, and it accomplished that goal.
I almost never revisit parts of the page I've already written, they may sit there for years untouched, or I may delete them and do a whole different layout from time to time.
It's definitely painful to edit small details after months of not seeing the code, so it's not for people that need to do that often.
I also understand that for most people, indentation is not a good separator. I worked with Python for so many years, that I probably view white space differently than others. Symbols are visual overload for me, I just need 4 spaces to see structure and separation.
So, HTML was too cumbersome to write because of the </> symbols so instead you created an entire toolchain to compile it, based off some arbitrary HTML like language. That isn’t cumbersome…? Just write HTML my man.
I agree. I don't like writing HTML either. That being said ....
> It gives me pain in my hand muscles to have to hold Shift and write those symbols all the time. It also bores me and annoys me.
I use vim, and with some macros and vimscript in my config, tags are not hard to write (especially if you're willing to make a ftplugin abusing the leader key + first letter of tag to automatically write the common tags).
Even without vim, I was pleasantly surprised at how VSCode (using some HTML plugin) handled raw HTML editing.
You don't need to ever hit the shift key if using vim, and you get pretty similar autocomplete in VSCode (and I assume other editors too).
Unfortunately I did not start with vim, and when I tried to learn vim (and a few years after, kakoune), I had already created a strong muscle memory for Sublime Text and it was frustrating to start from scratch.
I agree that there are editor solutions for this, but I also write and edit websites on my iPhone sometimes. As you can imagine, it's a day and night difference between editing Plim and editing HTML on a phone.
I see everyone keeps reminding me of Emmet. I know about it, but it does not exist on a phone or iPad where I sometimes need to do small changes while on the go.
I frequently travel for days without my laptop, and need to maybe add an FAQ entry or clarify a feature. Doing that with Plim is a breeze.
I'll throw in that I love the look of plim, and if I were doing a lot of html authoring I would probably use it too.
I really like low-symbol languages for day to day stuff. It's why, as much as I deeply despise it, I still often use yaml.
If I need safety in some form, yeah - lots of symbols allow a lot more information density, and that helps resist misunderstandings. That's hardly necessary in a personal blog though.
It's less cumbersome for them to write their content, yes. There's initial upfront effort, but their subjective experience of actually using the system to do what they want to do is better.
It's the same reason why people invest dozens or hundreds of hours in configuring their editor - yes, the defaults work fine, but you can make them work better for you. And yes, you're probably not going to make that time back... but if the actual experience of using it is better, it's still a net win for the author.
They probably write a lot more html than setup code. And reducing friction while authoring is a big deal for many people - often the difference between things being written at all vs not.
Angle brackets are merely verbose sexpr's. And syntax is both meaningless and hugely impactful: semantics are the most important thing, but we spend all our time interacting with the syntax, so it makes sense to optimize for it.
Webdev is mired in non-essential complexity still. Small, focused tools that let you enjoy working on the web should be celebrated. Besides, HTML is merely an agreed-upon protocol for distributing hypertext. The workflow for authoring it is bound to be very personal.
If the goal were to generate pages from a document DSL like Markdown I'd understand the need for a transpiler. But here the author's done it to make the HTML "look cleaner".
Boilerplate is barely reduced, it's mostly been replaced with different symbols and words. Now instead of some extra characters, you've got an additional build step and a new suite of tokens to learn.
And sure that code looks "clean", but it's much less clear than the original source would be. Whitespace is syntax, the delineation between tag & content is much less clear, you can no longer see where tags end without carefully following the indentation or using editor highlights. Then you've got HTML & CSS semantics in a YAML-but-not-quite presentation with both CoffeeScript (javascript-but-not-quite) AND Python, all right next to each other, with the only separation at the bottom end being a line break.
I just fundamentally don't understand it. I suppose it's not aimed at me.