diff --git a/README.md b/README.md index 6596760..baf07fc 100644 --- a/README.md +++ b/README.md @@ -61,11 +61,37 @@ python -m uframe deploy page.uf # compile + copy to NomadNet pages ### Docker ```bash -cd frontend && npm install && npm run build && cd .. -docker compose up --build +# 1. Build the frontend +cd frontend +npm install +npm run build +cd .. + +# 2. Build and start all services +docker compose up --build -d ``` -App at http://localhost:8080. Add Tailscale: `tailscale serve --bg https+insecure://localhost:8080` +This starts two containers: + +- **micronomicon** — the web IDE + API on +- **nomadnet** — NomadNet node serving your published `.mu` pages + +Pages published through the IDE are written to a shared volume that NomadNet reads from. The Docker socket is mounted read-only so the IDE can restart NomadNet when needed. + +To follow logs: `docker compose logs -f` + +To stop: `docker compose down` + +To expose over Tailscale: `tailscale serve --bg https+insecure://localhost:8080` + +#### Deploy a page via CLI (into the running stack) + +```bash +cd backend && source .venv/bin/activate +python -m uframe deploy page.uf --dest "$(docker volume inspect micronomicon_pages -f '{{.Mountpoint}}')" +``` + +Or use the web IDE at and click **Publish**. --- @@ -187,7 +213,7 @@ banner "My Node" "Mesh Network" # use library component ```bash cd backend && source .venv/bin/activate -python -m pytest uframe/tests/ -v # 42 tests +python -m pytest uframe/tests/ -v # 91 tests ``` --- diff --git a/frontend/src/components/editor/BacklinkIndicator.tsx b/frontend/src/components/editor/BacklinkIndicator.tsx index 1e3c4a3..d43c0b8 100644 --- a/frontend/src/components/editor/BacklinkIndicator.tsx +++ b/frontend/src/components/editor/BacklinkIndicator.tsx @@ -12,10 +12,10 @@ export default function BacklinkIndicator({ backlinks }: Props) { return ( - - + } + > + ← {backlinks.length} backlink{backlinks.length !== 1 ? "s" : ""}

diff --git a/frontend/src/components/editor/micronRenderer.ts b/frontend/src/components/editor/micronRenderer.ts index 63dd745..463a049 100644 --- a/frontend/src/components/editor/micronRenderer.ts +++ b/frontend/src/components/editor/micronRenderer.ts @@ -189,11 +189,6 @@ function renderFormTag(inner: string): string { return `${esc(placeholder || "...")}`; } -/** Render a form element line as a styled badge. */ -function renderForm(line: string): string { - const inner = escapeHtml(line); - return `${inner}`; -} export function renderMicron(source: string): string { const lines = source.split("\n"); diff --git a/frontend/src/routes/EditorView.tsx b/frontend/src/routes/EditorView.tsx index a3c05b2..56d2f96 100644 --- a/frontend/src/routes/EditorView.tsx +++ b/frontend/src/routes/EditorView.tsx @@ -52,7 +52,6 @@ export default function EditorView() { override: [uframeCommandSource, uframeValueHintSource], icons: false, activateOnTyping: true, - maxOptions: 50, }), keywordHoverTooltip, ],