Hit a snag? These are the issues people run into most, each with a one-step fix.
The site fails to start with no markdown pages found#
Make sure your content directory exists and contains at least one markdown file, usually content/index.md.
A folder does not have its own route#
Add index.md inside the folder if you want the folder itself to be routable.
A page title looks wrong in the sidebar#
Set nav_title in frontmatter when the navigation label should be shorter than the page title.
Content changes do not appear immediately#
Run the dev server with gomark serve ./content --live — it renders on every request, so edits show on reload. Plain gomark serve (no --live) pre-renders once at startup, so you'd need to restart it to pick up changes; a static gomark build is likewise a point-in-time snapshot.
Search returns no results#
Make sure your content exists under the content directory you passed to gomark serve/gomark build and that the command started successfully. The search index is built from the same content tree.
The runner run button does not appear#
Check all of the following:
- You did not pass
--no-runner(and, if you use the Go API, did not setgomark.WithSiteRunnerEnabled(false)orPLAYGROUND_ENABLED=false) — any of these turns the runner off - The code fence language is
go - The fence includes
run=true(oreditable=true)
Clicking Run does nothing or shows "runner failed to load"#
The runner downloads a WebAssembly module on first use. Make sure /runner.wasm and /wasm_exec.js are reachable and that the browser supports WebAssembly. The first run can take a moment while the module downloads; it is cached afterward.
A snippet errors or behaves differently than go run#
Snippets run through the yaegi interpreter compiled to WebAssembly, which covers a large subset of Go but not all of it. Reflection-heavy code, unsafe, and cgo are unsupported, and there is no local filesystem or raw network socket access — snippets are confined to the browser sandbox (Go's WebAssembly HTTP client goes through the browser's fetch, subject to CORS). See How the Runner Works for the full list.