Build Output#
Inkstone writes deployable static documentation output.
By default:
build/docs
Output Structure#
A typical build looks like:
build/docs/
index.html
search-index.json
sitemap.xml
robots.txt
assets/
css/
inkstone.css
themes/
default.css
light.css
dark.css
ember.css
forest.css
js/
inkstone.js
getting-started/
installation/
index.html
Pages#
Each Markdown document becomes an HTML page.
With pretty URLs enabled:
docs/getting-started/installation.md
becomes:
build/docs/getting-started/installation/index.html
With pretty URLs disabled, the same document becomes:
build/docs/getting-started/installation.html
Root Page#
The root page is discovered from:
docs/README.md
docs/index.md
and written to:
build/docs/index.html
Assets#
Inkstone copies package CSS and JavaScript assets into:
build/docs/assets
When build.asset_hashing is enabled and a Vite manifest exists, generated pages reference the hashed files from the manifest instead of the source asset names. Inkstone copies the public build output into build/docs and does not publish the private .vite/manifest.json file.
The package build uses:
npm run build
By default this writes production assets to resources/dist. If you publish or customize the asset build, point Inkstone at your generated files:
'build' => [
'assets' => [
'dist_path' => base_path('resources/dist'),
'manifest_path' => base_path('resources/dist/.vite/manifest.json'),
],
],
Additional asset directories are configured with:
'build' => [
'assets' => [
'additional_paths' => [
resource_path('docs-assets'),
],
],
],
Search Index#
When search is enabled, Inkstone writes:
build/docs/search-index.json
The default theme fetches this file in the browser.
Sitemap And Robots#
When enabled, Inkstone writes:
build/docs/sitemap.xml
build/docs/robots.txt
These files are useful for public documentation sites.
sitemap.xml is produced by the default SitemapExtension, while robots.txt remains core build metadata. The existing build.generate_sitemap setting controls sitemap generation.
Sitemap locations use the processed document URLs, including OpenAPI pages and .html paths when pretty URLs are disabled. Inkstone removes duplicate locations and enforces the single-sitemap protocol limits of 50,000 URLs and 50 MB uncompressed.
Set site.base_url to an absolute deployment URL for static hosting. Laravel can resolve a relative base against the application URL or infer the configured Inkstone route. When no origin is available, Inkstone retains relative locations, emits one non-fatal warning, and leaves the build successful; production builds should supply an absolute base. See Sitemaps for URL resolution and parent sitemap-index integration.
Extension Artifacts#
Configured build extensions run after the core output above is complete. An extension can inspect the processed documents and rendered pages, then write application-specific artifacts under the output path. See Extension Points.