Crates.io | kismesis |
lib.rs | kismesis |
version | 0.5.0 |
source | src |
created_at | 2024-01-12 18:57:47.498252 |
updated_at | 2024-07-20 02:31:41.723302 |
description | A static site generator with plugins and a custom markup language. |
homepage | |
repository | https://github.com/lilith-in-starlight/kismesis |
max_upload_size | |
id | 1097957 |
size | 154,470 |
The engine for the Kismesis static site generator, encouraging everyone to make static sites that are semantic and accessible.
This is a basic rundown of how to get started. It doesn't tell you much because proper documentation for this is on the way.
extism-pdk
to that library.kismesis
to that library with the pdk
feature.lib.rs
, add use extism_pdk::*
and kismesis::pdk::*
.fn parser(Json(input): (Json<PluginInput>)) -> FnResult<Json<PlugResult>>
PluginParseError::new()
to create a new error at the position of one of your tokens, or the ranges given in the input..add_hint()
to add a hint to an error.Check the documentation for extism-pdk
for help with Extism's features and the Kismesis documentation for help with managing Kismesis tokens and AST nodes
Kismesis Plugins are currently unstable and subject to any sort of breaking change. A more ergonomic API is in the making.
The Kismesis engine is made as a separate crate from the Kismesis static site generator because this way it's possible to simply export the necessary types as public in order to allow for plugins. The necessary interfaces to make this process more ergonomic are still to come, but it is perfectly possible to make plugins as things are.
This is not a checklist. Elements will be deleted from the list as they are completed.
The Kismesis engine is meant only for the Kismesis SSG, however, if you wish to use Kismesis on your own project, heed this warning:
After registering a file in the engine, it sticks around until manually deleted. Knowing where to delete it is critical. Your users will see an error specifying what happened if you fail to manage this, and since files can be large, keeping them around forever can be wasteful.
In most cases, template files can be kept around until the end of the runtime. Input files can often be removed immediately after their templating was either successful or a failure.
You might accurately infer that I think ambiguity is the funniest thing ever. Since all these projects are related I think this is basically harmless unless you're in a server that is both MSPA-related and related to any topic adjacent to this project (like Rust, Static Sites, Extism, the Indie Web, etc). DM me if you find an active community that meets this criterion. This section was meant to be a joke, but now that I write this, I am genuinely curious.
FAQ stands for both Forwardly Anticipated Questions and Frequently-ish Asked Questions.
I find it funny, and I thinks that since all projects named Kismesis are related, this is safe and okay.
<div>
header
, footer
, main
, section
, and even button
. <container>
will get compiled as <div>
in case you really know there is no better alternative. Think of it the same way you think of Rust's unsafe
.
<button>
is not that much harder to style than a div.For questions about the Kismesis SSG, check its respective readme.