This a monorepo for lush. See blurb to know that blush is about At this stage the docs is for dev(s). I am building tools to scaffold the final app. They parse back and forth the acorn format and my SusyNode tree in yaml to see what I do. I have svelte routes to do that.
We suppose the bun package manager installed.
Run bun install:all
Run bun dev
For the general long term goals (see blurb)
The goal is to get more organized than rd-line-lush (a previous attempt which
targeted the terminal) to be able
to bring in jq and yaml in my would-be lush language.
Yaml parsing is done using the lush branch of my fork of [yaml] which
uses lush-types/
Unparse a svelte augmented Acorn tree into an SusyNode tree
See unparse
To enforce tests before pushing, copy the shared pre-push hook template:
cp scripts/pre-push .git/hooks/pre-push
chmod +x .git/hooks/pre-push
Only dev mode so far. In the sveltekit app, the menu bar is built using skeleton widgets. In the tauri app, the system menu bar is used using rust API. Beyond that the 2 apps are identical. Currently there is is only "Lush/About" that displays a pop up.
When lish will run in terminal outside of svelte of tauri, it will have its own system of menus.
There are package.json build scripts for different combinations of software/hardware platforms. They are untested.
After install. Run bun run dev
See svelte-app/app.md
auth-workos-github.md — WorkOS AuthKit + GitHub login (SvelteKit +
Tauri dev)tauri-auth-server.md — “no limitation” Tauri build that bundles a
local server (bun run build:tauri:auth)lush-types is a local npm package to define types used everywhere else= yaml/ is a copy of my lush branch of my local fork of
yaml to parse a yaml string into a
TokenMultiline structure
lush-term-editor/ is a terminal based structural editor.Later (long term) will be :
lush-codemirror/ same as lush-term-editor but for codemirrorlush-svelte/ will use lush-code-mirror, probably for notebook.
Editing cells should be toggled between web and terminal.
Nu array output could be rendered as a html array bridging the gap
between GUI and TUI.At this point we programmatically edit yaml data and learn coding with codex. No interactive edit and display yet.
The goal is to edit the yaml sample below and simulate the typing return to insert a new item below the current one in an sequence. The next step will be more difficult : to do the same in a map. With a sequence item we can get away with an empty item that stands for null. For a mapping we will have to use placeholders.
The sample data is a map in a sequence
- toto
- a: b
c: d
-A display cell will be outputted using util.inspect as the editing cell
is modified. Key placeholder will be displayed as key-placeholder n to avoid
duplicate.