feat: fix buiild
This commit is contained in:
34
README.md
34
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 <http://localhost:8080>
|
||||
- **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 <http://localhost:8080> 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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -12,10 +12,10 @@ export default function BacklinkIndicator({ backlinks }: Props) {
|
||||
|
||||
return (
|
||||
<Popover>
|
||||
<PopoverTrigger asChild>
|
||||
<Button variant="ghost" size="sm" className="text-xs text-muted-foreground h-7 px-2">
|
||||
← {backlinks.length} backlink{backlinks.length !== 1 ? "s" : ""}
|
||||
</Button>
|
||||
<PopoverTrigger
|
||||
render={<Button variant="ghost" size="sm" className="text-xs text-muted-foreground h-7 px-2" />}
|
||||
>
|
||||
← {backlinks.length} backlink{backlinks.length !== 1 ? "s" : ""}
|
||||
</PopoverTrigger>
|
||||
<PopoverContent className="w-64 p-2" align="end">
|
||||
<p className="text-xs font-semibold text-muted-foreground mb-2 px-1">
|
||||
|
||||
@@ -189,11 +189,6 @@ function renderFormTag(inner: string): string {
|
||||
return `<span style="color:#d4a8f8;border:1px solid rgba(212,168,248,0.3);border-radius:3px;padding:0 4px">${esc(placeholder || "...")}</span>`;
|
||||
}
|
||||
|
||||
/** Render a form element line as a styled badge. */
|
||||
function renderForm(line: string): string {
|
||||
const inner = escapeHtml(line);
|
||||
return `<span style="color:#d4a8f8;background:rgba(212,168,248,0.08);border:1px solid rgba(212,168,248,0.3);border-radius:3px;padding:0 4px;font-size:0.9em">${inner}</span>`;
|
||||
}
|
||||
|
||||
export function renderMicron(source: string): string {
|
||||
const lines = source.split("\n");
|
||||
|
||||
@@ -52,7 +52,6 @@ export default function EditorView() {
|
||||
override: [uframeCommandSource, uframeValueHintSource],
|
||||
icons: false,
|
||||
activateOnTyping: true,
|
||||
maxOptions: 50,
|
||||
}),
|
||||
keywordHoverTooltip,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user