-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace lume with soupault #70
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A bit early but I need it to display the sources as <tablist> There is 2 way to approach this: 1. Create my-own plugin (ugh!🐛!) 2. Chain preprocess-element widget with something 🤔
Unlike other popular devserver, I use SSE instead of WebSocket. It's done via caddy reverse_proxy Unix Socket created by ncat. It create multiple temp FIFO file every time SSE connection open.
An import map is used to resolve module specifiers in static and dynamic imports, and **therefore must be declared and processed before any <script> elements** that import modules using specifiers declared in the map. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap
* Fix char dot (.) being transformed into char colon (:) * Fix source tabpanel being too wide
PS: I'm still using deno 🦕
Use `nix develop` to execute `make` on each steps
DrSensor
added
the
build
Thing related to build system + tools & packages distribution
label
Jul 17, 2023
This avoid CI running forever
Latest nix-quick-install-action support flake.nix without extra config
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
By design, Nusa support multiple language either via bindgen (which compile other langs into ES class) or (WIP) link directly to wasm module. This mean it need a build system that is flexible enough to accommodate many languages with different toolchains. The site generator also need to be flexible too so it can generate various demo pages and playgrounds.
Details
This PR migrate site generator + build system from Lume (Deno) to Soupault + GNU Make. Soupault approach much more flexible than Lume. In Lume, I need to wrap everything either as a plugin or function generator which quite brittle. But in Soupault, I just need to write pair of selector and transformation inside the config file. Soupault also support incremental build which cache every preprocessors/transformer output based on checksum. The downside is I need create some small plugin in Lua v2.5 for trivial stuff. The plugin itself is pretty simple so that's not a problem. As for minification and others, Makefile is quite powerful and very flexible. It's very easy to integrate with other tools. The downside is it's not obvious on how to do certain things in Makefile. The GNU docs still lack of examples, so Stackoverflow is your best friend.
In the future, I'm thinking to replace GNU Make with nextgen build system. Some of them are:
All of those build-system doesn't have html-preprocessor for use case like site generator.
Ideally
I prefer simple CLI for processing html + better GNU Make (no need to be compatible);
so I can write this kind of rules,
TODO in the future: