NomadNet page formats
Micron, Markdown, text, and HTML pages for Mesh Server.
MeshChatX serves pages from a Mesh Server page node and displays them in the Nomad Network browser. Pages are fetched with the Nomad path convention /page/.
Supported filenames#
| Extension | Role |
|---|---|
| .mu | Micron markup (NomadNet default) |
| .md | Markdown with GitHub-flavored features via the renderer |
| .txt | Plain text with escaped HTML and preserved whitespace |
| .html | Static HTML with CSS only (see security below) |
If you add a page without a recognised extension, the server stores it as .mu. Filenames with other extensions (for example .exe) are rejected when saving through the API.
Plain text (.txt)#
Content is HTML-escaped and shown with pre-wrapped whitespace. There is no Markdown parsing on .txt pages.
Markdown (.md)#
Not the same engine as chat. Conversations use the lightweight MarkdownRenderer in the messaging UI. Nomad .md pages use marked with GFM-oriented rules plus sanitisation. Features and edge cases can differ between the two paths. Automated tests cover both.
Authoring tips:
- Use ATX headings with a hash and a space before the title, for example # Title, ## Section, #### Subsection.
- Fenced code blocks keep indentation.
- Off-mesh http and https links in rendered content are removed or restricted so the preview cannot drive external navigation without mesh-style URLs.
HTML (.html)#
- JavaScript is not executed. script tags and event-handler attributes are stripped.
- External resources are blocked where possible. @import and url(...) pointing at http://, https://, or protocol-relative URLs are removed from CSS.
- Embedded blocks are kept. Rules that target html or body are rewritten to apply to the viewer root container.
- Links must be mesh-style (: paths, 32-character hex prefixes, /page/..., /file/..., or # fragments) or they are removed.
- Images only keep data:image/... inline sources.
- The viewer uses a sans-serif font for HTML and Markdown so pages do not inherit Micron monospace chrome. Override colours and typography with your own CSS.
Mesh Server API#
- POST /api/v1/page-nodes/{node_id}/pages with name and content saves a page. Invalid extensions return HTTP 400 with a short message.
- Optional executable marks the page as a shebang script. The node must also have executable pages enabled, or the file is served as static text.
- Listed pages only include files with allowed extensions in the pages/ directory.
Archives#
Snapshots in Archives use the same rendering pipeline as the Nomad browser. The archived page_path extension selects Micron, Markdown, text, or HTML handling. Exports keep the original extension when it is .mu, .md, .txt, or .html.
See also#
- Nomad Network and Mesh Server for browsing and hosting workflows
- Architecture and design for where page nodes fit in the backend
- Default Nomad entry path remains /page/index.mu unless you change the URL in the browser