Wasm
You can use playbook-lang on your WebApp (javascript runtime).
EX) Cloudflare Workers
In fact, the web playground utilizes this.
QuickStart
You can refer to the following for QuickStart.
Step By Step
-
clone the repository
git clone git@github.com:poteto0/playbook-lang.git
# or
git clone https://github.com/poteto0/playbook-lang.git -
select version
git switch -d <version> -
build wasm
just release-wasm -
copy to your project
playbook_lang_core.jsplaybook_lang_core_bg.wasm.d.tsplaybook_lang_core.d.tsplaybook_lang_core_bg.wasm
-
configure
Vite CloudflareWorkers + React + typescriptuse sync init
App.tsximport initSync, { render_playbook } from "./pkg/playbook_lang_core.js";
/* ... */
function App() {
useEffect(() => {
initSync();
});
// on your handler
compile() => {
const output = render_playbook(e.target.value);
/* ... */
}
/* ... */
}Vite + typescript + htmlconfigure
vite.config.tsimport { defineConfig } from "vite";
export default defineConfig({
assetsInclude: ["**/*.wasm"],
server: {
fs: {
allow: [".."],
},
},
});in your main function
main.ts// @ts-ignore
import init, { render_playbook } from "./pkg/playbook_lang_core.js";
async function main() {
// initialize wasm
await init();
// get compiled svg
const svg = render_playbook(inputEl.value);
/* ... */
}