🧩 Synticore Website Compiler - Complete Configuration Reference
📌 About This Document
This is a full key-by-key reference generated from current schema and defaults in this repository.
- Schema source:
config/default/project/config.schema.json - Default value source:
config/default/project/config.json - Compiler version context:
source/resource/info.json(v1.1.0)
Field definitions used in each key entry:
- Type: inferred from schema structure/type metadata and defaults
- Required:
Yesforrequire*keys, otherwiseNo - Default: resolved from default config when possible (including first item for
[]and first entry for*) - Allowed values: enum/union constraints when available
- Description: schema-authored description
- Example: minimal JSON snippet for that key path
✅ Require
Required configuration block.
require
- Type: object
- Required: Yes
- Default: {"site": {"title": "Synticore Website Compiler - Default Config", "url": "https://www.example.com"}}
- Allowed values: N/A
- Description: Required configuration section. Values here must be provided for correct site generation.
- Example:
{
"require": {
"site": {
"title": "Synticore Website Compiler - Default Config",
"url": "https://www.example.com"
}
}
}
🌐 Require.Site
Required configuration block.
require.site
- Type: object
- Required: Yes
- Default: {"title": "Synticore Website Compiler - Default Config", "url": "https://www.example.com"}
- Allowed values: N/A
- Description: Required site metadata used for URLs, titles, and generated tags.
- Example:
{
"require": {
"site": {
"title": "Synticore Website Compiler - Default Config",
"url": "https://www.example.com"
}
}
}
require.site.title
- Type: string
- Required: Yes
- Default: "Synticore Website Compiler - Default Config"
- Allowed values: N/A
- Description: Default site title used for HTML
<title>and metadata when generating pages. - Example:
{
"require": {
"site": {
"title": "Synticore Website Compiler - Default Config"
}
}
}
require.site.url
- Type: string
- Required: Yes
- Default: "https://www.example.com"
- Allowed values: N/A
- Description: Base URL of the website, used for canonical/og:url meta tags and sitemap absolute links.
- Example:
{
"require": {
"site": {
"url": "https://www.example.com"
}
}
}
⚙️ Option
Optional configuration block.
option
- Type: object
- Required: No
- Default: {"brand": {"adjust": {"foreground": {"alignment": {"x": "center", "y": "center"}, "blur": 0, "modulate": {}}, "background": {"alignment": {"x": "center", "y"...
- Allowed values: N/A
- Description: Optional configuration section controlling compiler behavior and output features.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"x": "center",
"y": "center"
},
"blur": 0,
"modulate": {}
},
"background": {
"alignment": {
"x": "center",
"y": "center"
},
"apply": {
"square": true,
"wide": true
},
"blur": 0,
"modulate": {}
}
},
"size": {
"ico": [
16,
32,
48,
64,
96,
128
],
"image": {
"apple-touch-icon-57x57.png": {
"width": 57,
"height": 57
},
"apple-touch-icon-60x60.png": {
"width": 60,
"height": 60
},
"apple-touch-icon-72x72.png": {
"width": 72,
"height": 72
},
"apple-touch-icon-76x76.png": {
"width": 76,
"height": 76
},
"apple-touch-icon-114x114.png": {
"width": 114,
"height": 114
},
"apple-touch-icon-120x120.png": {
"width": 120,
"height": 120
},
"apple-touch-icon-144x144.png": {
"width": 144,
"height": 144
},
"apple-touch-icon-152x152.png": {
"width": 152,
"height": 152
},
"mstile-70x70.png": {
"width": 70,
"height": 70
},
"favicon-192.png": {
"width": 192,
"height": 192
},
"favicon-196.png": {
"width": 196,
"height": 196
},
"favicon-512.png": {
"width": 512,
"height": 512
},
"mstile-128x128.png": {
"width": 128,
"height": 128
},
"mstile-144x144.png": {
"width": 144,
"height": 144
},
"mstile-150x150.png": {
"width": 150,
"height": 150
},
"mstile-270x270.png": {
"width": 270,
"height": 270
},
"mstile-310x150.png": {
"width": 310,
"height": 150
},
"mstile-310x310.png": {
"width": 310,
"height": 310
},
"mstile-558x270.png": {
"width": 558,
"height": 270
},
"mstile-558x558.png": {
"width": 558,
"height": 558
},
"pagethumb.png": {
"width": 512,
"height": 256
}
}
}
},
"config": {
"sort": false
},
"cache": {
"enable": true,
"filter": true,
"sort": true,
"store": true
},
"highlight": {
"syntax": {
"enable": false,
"generateImports": true,
"path": {
"css": "css/module",
"js": "js/module"
},
"theme": {
"enable": true,
"include": [
"prism"
]
},
"language": {
"enable": true,
"include": [
"html",
"css",
"javascript"
]
},
"plugin": {
"enable": true,
"include": [
"autolinker",
"copy-to-clipboard",
"data-uri-highlight",
"inline-color",
"line-numbers",
"match-braces",
"show-language"
]
}
}
},
"html": {
"minify": {
"removeComments": true,
"collapseWhitespace": true,
"minifyCSS": true,
"minifyJS": true
}
},
"image": {
"interlace": [],
"minify": {
"gifsicle": {
"interlaced": true
},
"jpegoptim": {
"progressive": true,
"stripAll": true
},
"mozjpeg": {
"quality": 75,
"progressive": true
},
"optipng": {
"optimizationLevel": 5,
"strip": "all"
},
"pngcrush": {
"reduce": true,
"strip": true
},
"svgo": {
"plugins": [
{
"name": "removeViewBox",
"active": true
},
{
"name": "removeMetadata",
"active": true
},
{
"name": "removeDesc",
"active": true
},
{
"name": "removeTitle",
"active": true
},
{
"name": "removeUselessDefs",
"active": true
}
]
}
},
"threads": null,
"variant": [],
"watermark": [
{
"pattern": "**/*.watermark.*",
"layers": [
{
"image": "brand/_watermark.png",
"gravity": "Center",
"opacity": 37.5,
"resize": 1.0,
"background": "none",
"gmOptions": "-tile"
}
]
}
]
},
"js": {
"minify": {
"keep_classnames": false,
"keep_fnames": false,
"compress": true,
"mangle": false
}
},
"markdown": {
"include_path": "in/_html/markdown"
},
"mirrors": [],
"navigation": {
"breadcrumb": {
"base_path": "",
"enable": true,
"ignore_patterns": null,
"replace_text": "<!-- breadcrumb -->",
"root_content": "Home"
},
"shared": {
"ignore_patterns": [
"index.html",
"404.html",
"503.html"
]
},
"toc": {
"collapsible": false,
"depth": 4,
"enable": true,
"header_prepend": "<span class=\"counter\"></span>",
"header_prepend_selectors": "h2,h3,h4,h5,h6",
"ignore_class": "toc-ignore",
"ignore_patterns": null,
"replace_text": "<!-- toc -->",
"selectors": "h1,h2,h3,h4,h5,h6",
"wrap_emoji": null
}
},
"package": {
"html": {
"ignore_class": [
"no-package"
]
},
"ignore": [
"no-package"
],
"output": {
"directory": false,
"zip": true
},
"targets": [
{
"suffix": "",
"paths": [
{
"source": "out",
"destination": "",
"ignore": [],
"no_ignore": false
}
]
}
]
},
"path": {
"ignore_prefix": "_",
"ignore_sitemap": [
"404",
"503"
]
},
"replace": {
"delimiter": {
"open": "[[",
"close": "]]"
}
},
"title": {
"compose": {
"dirDepth": -1,
"dirOrder": "leafToRoot",
"dirJoiner": " - ",
"titleJoiner": " - "
},
"name": {
"word": {
"acronyms": [
"API",
"CPU",
"CSS",
"DB",
"DOM",
"FAQ",
"FTP",
"GPU",
"HTML",
"HTTP",
"HTTPS",
"ID",
"IP",
"JS",
"JSON",
"OS",
"PDF",
"RAM",
"REST",
"SQL",
"SSH",
"SVG",
"UI",
"URL",
"UUID",
"UX",
"XML",
"2D",
"3D"
],
"lowercases": [
"a",
"an",
"and",
"as",
"at",
"but",
"by",
"for",
"from",
"in",
"into",
"like",
"near",
"nor",
"of",
"off",
"on",
"onto",
"or",
"out",
"over",
"so",
"the",
"to",
"up",
"upon",
"with",
"yet"
],
"propercases": [
"JavaScript",
"Synticore"
]
},
"case": {
"preserve": false,
"enforceCamel": true
},
"separator": {
"separatorsToSpace": [
"_",
"-"
],
"stripPatterns": [],
"wordSplitPattern": "[\\s_\\-]+",
"wordJoinSeparator": " "
}
},
"source": "filename"
},
"url": {
"clean": true,
"trailing_slash": true
},
"watch": {
"delay_browser": 1250,
"delay_change": 750
}
}
}
Option.Brand
Optional configuration block.
option.brand
- Type: object
- Required: No
- Default: {"adjust": {"foreground": {"alignment": {"x": "center", "y": "center"}, "blur": 0, "modulate": {}}, "background": {"alignment": {"x": "center", "y": "center"...
- Allowed values: N/A
- Description: Branding configuration used for favicon/touch icon generation and brand image composition.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"x": "center",
"y": "center"
},
"blur": 0,
"modulate": {}
},
"background": {
"alignment": {
"x": "center",
"y": "center"
},
"apply": {
"square": true,
"wide": true
},
"blur": 0,
"modulate": {}
}
},
"size": {
"ico": [
16,
32,
48,
64,
96,
128
],
"image": {
"apple-touch-icon-57x57.png": {
"width": 57,
"height": 57
},
"apple-touch-icon-60x60.png": {
"width": 60,
"height": 60
},
"apple-touch-icon-72x72.png": {
"width": 72,
"height": 72
},
"apple-touch-icon-76x76.png": {
"width": 76,
"height": 76
},
"apple-touch-icon-114x114.png": {
"width": 114,
"height": 114
},
"apple-touch-icon-120x120.png": {
"width": 120,
"height": 120
},
"apple-touch-icon-144x144.png": {
"width": 144,
"height": 144
},
"apple-touch-icon-152x152.png": {
"width": 152,
"height": 152
},
"mstile-70x70.png": {
"width": 70,
"height": 70
},
"favicon-192.png": {
"width": 192,
"height": 192
},
"favicon-196.png": {
"width": 196,
"height": 196
},
"favicon-512.png": {
"width": 512,
"height": 512
},
"mstile-128x128.png": {
"width": 128,
"height": 128
},
"mstile-144x144.png": {
"width": 144,
"height": 144
},
"mstile-150x150.png": {
"width": 150,
"height": 150
},
"mstile-270x270.png": {
"width": 270,
"height": 270
},
"mstile-310x150.png": {
"width": 310,
"height": 150
},
"mstile-310x310.png": {
"width": 310,
"height": 310
},
"mstile-558x270.png": {
"width": 558,
"height": 270
},
"mstile-558x558.png": {
"width": 558,
"height": 558
},
"pagethumb.png": {
"width": 512,
"height": 256
}
}
}
}
}
}
option.brand.adjust
- Type: object
- Required: No
- Default: {"foreground": {"alignment": {"x": "center", "y": "center"}, "blur": 0, "modulate": {}}, "background": {"alignment": {"x": "center", "y": "center"}, "apply":...
- Allowed values: N/A
- Description: Configures how foreground and background images are processed, including alignment, blur, and visual effects.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"x": "center",
"y": "center"
},
"blur": 0,
"modulate": {}
},
"background": {
"alignment": {
"x": "center",
"y": "center"
},
"apply": {
"square": true,
"wide": true
},
"blur": 0,
"modulate": {}
}
}
}
}
}
option.brand.adjust.background
- Type: object
- Required: No
- Default: {"alignment": {"x": "center", "y": "center"}, "apply": {"square": true, "wide": true}, "blur": 0, "modulate": {}}
- Allowed values: N/A
- Description: Settings applied to the brand background layer during composition.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"alignment": {
"x": "center",
"y": "center"
},
"apply": {
"square": true,
"wide": true
},
"blur": 0,
"modulate": {}
}
}
}
}
}
option.brand.adjust.background.alignment
- Type: object
- Required: No
- Default: {"x": "center", "y": "center"}
- Allowed values: N/A
- Description: Alignment settings for positioning the background layer.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"alignment": {
"x": "center",
"y": "center"
}
}
}
}
}
}
option.brand.adjust.background.alignment.x
- Type: string (enum)
- Required: No
- Default: "center"
- Allowed values:
left,center,right - Description: Horizontal alignment of the background brand image during composition (left/center/right).
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"alignment": {
"x": "center"
}
}
}
}
}
}
option.brand.adjust.background.alignment.y
- Type: string (enum)
- Required: No
- Default: "center"
- Allowed values:
top,center,bottom - Description: Vertical alignment of the background brand image during composition (top/center/bottom).
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"alignment": {
"y": "center"
}
}
}
}
}
}
option.brand.adjust.background.apply
- Type: object
- Required: No
- Default: {"square": true, "wide": true}
- Allowed values: N/A
- Description: Controls which output aspect ratios the background adjustments apply to.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"apply": {
"square": true,
"wide": true
}
}
}
}
}
}
option.brand.adjust.background.apply.square
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Apply background adjustments to square icon outputs.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"apply": {
"square": true
}
}
}
}
}
}
option.brand.adjust.background.apply.wide
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Apply background adjustments to wide icon outputs.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"apply": {
"wide": true
}
}
}
}
}
}
option.brand.adjust.background.blur
- Type: integer
- Required: No
- Default: 0
- Allowed values: N/A
- Description: Blur intensity applied to the background brand layer during composition.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"blur": 0
}
}
}
}
}
option.brand.adjust.background.modulate
- Type: object
- Required: No
- Default: {}
- Allowed values: N/A
- Description: GraphicsMagick modulate options (color/brightness/saturation) for the background brand layer.
- Example:
{
"option": {
"brand": {
"adjust": {
"background": {
"modulate": {}
}
}
}
}
}
option.brand.adjust.foreground
- Type: object
- Required: No
- Default: {"alignment": {"x": "center", "y": "center"}, "blur": 0, "modulate": {}}
- Allowed values: N/A
- Description: Settings applied to the brand foreground layer during composition.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"x": "center",
"y": "center"
},
"blur": 0,
"modulate": {}
}
}
}
}
}
option.brand.adjust.foreground.alignment
- Type: object
- Required: No
- Default: {"x": "center", "y": "center"}
- Allowed values: N/A
- Description: Alignment settings for positioning the foreground layer.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"x": "center",
"y": "center"
}
}
}
}
}
}
option.brand.adjust.foreground.alignment.x
- Type: string (enum)
- Required: No
- Default: "center"
- Allowed values:
left,center,right - Description: Horizontal alignment of the foreground brand image during composition (left/center/right).
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"x": "center"
}
}
}
}
}
}
option.brand.adjust.foreground.alignment.y
- Type: string (enum)
- Required: No
- Default: "center"
- Allowed values:
top,center,bottom - Description: Vertical alignment of the foreground brand image during composition (top/center/bottom).
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"alignment": {
"y": "center"
}
}
}
}
}
}
option.brand.adjust.foreground.blur
- Type: integer
- Required: No
- Default: 0
- Allowed values: N/A
- Description: Blur intensity applied to the foreground brand layer during composition.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"blur": 0
}
}
}
}
}
option.brand.adjust.foreground.modulate
- Type: object
- Required: No
- Default: {}
- Allowed values: N/A
- Description: GraphicsMagick modulate options (color/brightness/saturation) for the foreground brand layer.
- Example:
{
"option": {
"brand": {
"adjust": {
"foreground": {
"modulate": {}
}
}
}
}
}
option.brand.size
- Type: object
- Required: No
- Default: {"ico": [16, 32, 48, 64, 96, 128], "image": {"apple-touch-icon-57x57.png": {"width": 57, "height": 57}, "apple-touch-icon-60x60.png": {"width": 60, "height":...
- Allowed values: N/A
- Description: Specifies the sizes for various branding images including favicons and touch icons.
- Example:
{
"option": {
"brand": {
"size": {
"ico": [
16,
32,
48,
64,
96,
128
],
"image": {
"apple-touch-icon-57x57.png": {
"width": 57,
"height": 57
},
"apple-touch-icon-60x60.png": {
"width": 60,
"height": 60
},
"apple-touch-icon-72x72.png": {
"width": 72,
"height": 72
},
"apple-touch-icon-76x76.png": {
"width": 76,
"height": 76
},
"apple-touch-icon-114x114.png": {
"width": 114,
"height": 114
},
"apple-touch-icon-120x120.png": {
"width": 120,
"height": 120
},
"apple-touch-icon-144x144.png": {
"width": 144,
"height": 144
},
"apple-touch-icon-152x152.png": {
"width": 152,
"height": 152
},
"mstile-70x70.png": {
"width": 70,
"height": 70
},
"favicon-192.png": {
"width": 192,
"height": 192
},
"favicon-196.png": {
"width": 196,
"height": 196
},
"favicon-512.png": {
"width": 512,
"height": 512
},
"mstile-128x128.png": {
"width": 128,
"height": 128
},
"mstile-144x144.png": {
"width": 144,
"height": 144
},
"mstile-150x150.png": {
"width": 150,
"height": 150
},
"mstile-270x270.png": {
"width": 270,
"height": 270
},
"mstile-310x150.png": {
"width": 310,
"height": 150
},
"mstile-310x310.png": {
"width": 310,
"height": 310
},
"mstile-558x270.png": {
"width": 558,
"height": 270
},
"mstile-558x558.png": {
"width": 558,
"height": 558
},
"pagethumb.png": {
"width": 512,
"height": 256
}
}
}
}
}
}
option.brand.size.ico
- Type: array (items:
option.brand.size.ico[]) - Required: No
- Default: [16, 32, 48, 64, 96, 128]
- Allowed values: N/A
- Description: ICO size list for generating favicon.ico (multiple embedded resolutions).
- Example:
{
"option": {
"brand": {
"size": {
"ico": [
16,
32,
48,
64,
96,
128
]
}
}
}
}
option.brand.size.ico[]
- Type: integer
- Required: No
- Default: 16
- Allowed values: N/A
- Description: List of favicon.ico layer sizes (in pixels) to generate.
- Example:
{
"option": {
"brand": {
"size": {
"ico": [
16
]
}
}
}
}
option.brand.size.image
- Type: object (1 documented child key(s))
- Required: No
- Default: {"apple-touch-icon-57x57.png": {"width": 57, "height": 57}, "apple-touch-icon-60x60.png": {"width": 60, "height": 60}, "apple-touch-icon-72x72.png": {"width"...
- Allowed values: N/A
- Description: Per-file output dimensions for generated favicon/touch icon images. This is a map keyed by output filename (e.g. 'apple-touch-icon-57x57.png').
- Example:
{
"option": {
"brand": {
"size": {
"image": {
"apple-touch-icon-57x57.png": {
"width": 57,
"height": 57
},
"apple-touch-icon-60x60.png": {
"width": 60,
"height": 60
},
"apple-touch-icon-72x72.png": {
"width": 72,
"height": 72
},
"apple-touch-icon-76x76.png": {
"width": 76,
"height": 76
},
"apple-touch-icon-114x114.png": {
"width": 114,
"height": 114
},
"apple-touch-icon-120x120.png": {
"width": 120,
"height": 120
},
"apple-touch-icon-144x144.png": {
"width": 144,
"height": 144
},
"apple-touch-icon-152x152.png": {
"width": 152,
"height": 152
},
"mstile-70x70.png": {
"width": 70,
"height": 70
},
"favicon-192.png": {
"width": 192,
"height": 192
},
"favicon-196.png": {
"width": 196,
"height": 196
},
"favicon-512.png": {
"width": 512,
"height": 512
},
"mstile-128x128.png": {
"width": 128,
"height": 128
},
"mstile-144x144.png": {
"width": 144,
"height": 144
},
"mstile-150x150.png": {
"width": 150,
"height": 150
},
"mstile-270x270.png": {
"width": 270,
"height": 270
},
"mstile-310x150.png": {
"width": 310,
"height": 150
},
"mstile-310x310.png": {
"width": 310,
"height": 310
},
"mstile-558x270.png": {
"width": 558,
"height": 270
},
"mstile-558x558.png": {
"width": 558,
"height": 558
},
"pagethumb.png": {
"width": 512,
"height": 256
}
}
}
}
}
}
option.brand.size.image.*
- Type: object (2 documented child key(s))
- Required: No
- Default: {"width": 57, "height": 57}
- Allowed values: N/A
- Description: A single per-file image size entry under
option.brand.size.image. The key name is the output filename (any string). The value must be an object withwidthandheight. - Example:
{
"option": {
"brand": {
"size": {
"image": {
"<dynamic-key>": {
"width": 57,
"height": 57
}
}
}
}
}
}
option.brand.size.image.*.width
- Type: integer
- Required: No
- Default: 57
- Allowed values: N/A
- Description: Target width (in pixels) for this generated brand image entry (keyed by filename).
- Example:
{
"option": {
"brand": {
"size": {
"image": {
"<dynamic-key>": {
"width": 57
}
}
}
}
}
}
option.brand.size.image.*.height
- Type: integer
- Required: No
- Default: 57
- Allowed values: N/A
- Description: Target height (in pixels) for this generated brand image entry (keyed by filename).
- Example:
{
"option": {
"brand": {
"size": {
"image": {
"<dynamic-key>": {
"height": 57
}
}
}
}
}
}
Option.Cache
Optional configuration block.
option.cache
- Type: object
- Required: No
- Default: {"enable": true, "filter": true, "sort": true, "store": true}
- Allowed values: N/A
- Description: Cache controls for enabling and tuning incremental build behavior.
- Example:
{
"option": {
"cache": {
"enable": true,
"filter": true,
"sort": true,
"store": true
}
}
}
option.cache.enable
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable the compiler cache system (allows skipping unchanged work between runs).
- Example:
{
"option": {
"cache": {
"enable": true
}
}
}
option.cache.filter
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Filter build streams using cache so only changed inputs are processed.
- Example:
{
"option": {
"cache": {
"filter": true
}
}
}
option.cache.sort
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable deterministic sorting behavior within cache-backed pipelines.
- Example:
{
"option": {
"cache": {
"sort": true
}
}
}
option.cache.store
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Persist cache entries to disk after successful processing.
- Example:
{
"option": {
"cache": {
"store": true
}
}
}
Option.Config
Optional configuration block.
option.config
- Type: object
- Required: No
- Default: {"sort": false}
- Allowed values: N/A
- Description: General config-file behavior settings (for example key ordering when saving).
- Example:
{
"option": {
"config": {
"sort": false
}
}
}
option.config.sort
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: When writing/printing config, sort object keys for stable, deterministic output.
- Example:
{
"option": {
"config": {
"sort": false
}
}
}
Option.Highlight
Optional configuration block.
option.highlight
- Type: object
- Required: No
- Default: {"syntax": {"enable": false, "generateImports": true, "path": {"css": "css/module", "js": "js/module"}, "theme": {"enable": true, "include": ["prism"]}, "lan...
- Allowed values: N/A
- Description: Highlighting-related configuration (e.g., syntax highlighting).
- Example:
{
"option": {
"highlight": {
"syntax": {
"enable": false,
"generateImports": true,
"path": {
"css": "css/module",
"js": "js/module"
},
"theme": {
"enable": true,
"include": [
"prism"
]
},
"language": {
"enable": true,
"include": [
"html",
"css",
"javascript"
]
},
"plugin": {
"enable": true,
"include": [
"autolinker",
"copy-to-clipboard",
"data-uri-highlight",
"inline-color",
"line-numbers",
"match-braces",
"show-language"
]
}
}
}
}
}
option.highlight.syntax
- Type: object
- Required: No
- Default: {"enable": false, "generateImports": true, "path": {"css": "css/module", "js": "js/module"}, "theme": {"enable": true, "include": ["prism"]}, "language": {"e...
- Allowed values: N/A
- Description: PrismJS syntax highlighting settings (languages/plugins/themes/output paths).
- Example:
{
"option": {
"highlight": {
"syntax": {
"enable": false,
"generateImports": true,
"path": {
"css": "css/module",
"js": "js/module"
},
"theme": {
"enable": true,
"include": [
"prism"
]
},
"language": {
"enable": true,
"include": [
"html",
"css",
"javascript"
]
},
"plugin": {
"enable": true,
"include": [
"autolinker",
"copy-to-clipboard",
"data-uri-highlight",
"inline-color",
"line-numbers",
"match-braces",
"show-language"
]
}
}
}
}
}
option.highlight.syntax.enable
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: Enable/disable PrismJS syntax highlighting asset generation.
- Example:
{
"option": {
"highlight": {
"syntax": {
"enable": false
}
}
}
}
option.highlight.syntax.generateImports
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Generate prism.js and prism.scss index files to simplify importing PrismJS assets.
- Example:
{
"option": {
"highlight": {
"syntax": {
"generateImports": true
}
}
}
}
option.highlight.syntax.language
- Type: object
- Required: No
- Default: {"enable": true, "include": ["html", "css", "javascript"]}
- Allowed values: N/A
- Description: Language inclusion settings for PrismJS syntax highlighting.
- Example:
{
"option": {
"highlight": {
"syntax": {
"language": {
"enable": true,
"include": [
"html",
"css",
"javascript"
]
}
}
}
}
}
option.highlight.syntax.language.enable
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable/disable PrismJS language component inclusion.
- Example:
{
"option": {
"highlight": {
"syntax": {
"language": {
"enable": true
}
}
}
}
}
option.highlight.syntax.language.include
- Type: array (items:
option.highlight.syntax.language.include[]) - Required: No
- Default: ["html", "css", "javascript"]
- Allowed values: N/A
- Description: List container for PrismJS language IDs to include in generated syntax assets.
- Example:
{
"option": {
"highlight": {
"syntax": {
"language": {
"include": [
"html",
"css",
"javascript"
]
}
}
}
}
}
option.highlight.syntax.language.include[]
- Type: string (enum)
- Required: No
- Default: "html"
- Allowed values:
markup,css,clike,javascript,abap,abnf,actionscript,ada,agda,al,antlr4,apacheconf,apex,apl,applescript,aql,arduino,arff,armasm,arturo,asciidoc,aspnet,asm6502,asmatmel,autohotkey,autoit,avisynth,avro-idl,awk,bash,basic,batch,bbcode,bbj,bicep,birb,bison,bnf,bqn,brainfuck,brightscript,bro,bsl,c,csharp,cpp,cfscript,chaiscript,cil,cilkc,cilkcpp,clojure,cmake,cobol,coffeescript,concurnas,csp,cooklang,coq,crystal,css-extras,csv,cue,cypher,d,dart,dataweave,dax,dhall,diff,django,dns-zone-file,docker,dot,ebnf,editorconfig,eiffel,ejs,elixir,elm,etlua,erb,erlang,excel-formula,fsharp,factor,false,firestore-security-rules,flow,fortran,ftl,gml,gap,gcode,gdscript,gedcom,gettext,gherkin,git,glsl,gn,linker-script,go,go-module,gradle,graphql,groovy,haml,handlebars,haskell,haxe,hcl,hlsl,hoon,http,hpkp,hsts,ichigojam,icon,icu-message-format,idris,ignore,inform7,ini,io,j,java,javadoc,javadoclike,javastacktrace,jexl,jolie,jq,jsdoc,js-extras,json,json5,jsonp,jsstacktrace,js-templates,julia,keepalived,keyman,kotlin,kumir,kusto,latex,latte,less,lilypond,liquid,lisp,livescript,llvm,log,lolcode,lua,magma,makefile,markdown,markup-templating,mata,matlab,maxscript,mel,mermaid,metafont,mizar,mongodb,monkey,moonscript,n1ql,n4js,nand2tetris-hdl,naniscript,nasm,neon,nevod,nginx,nim,nix,nsis,objectivec,ocaml,odin,opencl,openqasm,oz,parigp,parser,pascal,pascaligo,psl,pcaxis,peoplecode,perl,php,phpdoc,php-extras,plant-uml,plsql,powerquery,powershell,processing,prolog,promql,properties,protobuf,pug,puppet,pure,purebasic,purescript,python,qsharp,q,qml,qore,r,racket,cshtml,jsx,tsx,reason,regex,rego,renpy,rescript,rest,rip,roboconf,robotframework,ruby,rust,sas,sass,scss,scala,scheme,shell-session,smali,smalltalk,smarty,sml,solidity,solution-file,soy,sparql,splunk-spl,sqf,sql,squirrel,stan,stata,iecst,stylus,supercollider,swift,systemd,t4-templating,t4-cs,t4-vb,tap,tcl,tt2,textile,toml,tremor,turtle,twig,typescript,typoscript,unrealscript,uorazor,uri,v,vala,vbnet,velocity,verilog,vhdl,vim,visual-basic,warpscript,wasm,web-idl,wgsl,wiki,wolfram,wren,xeora,xml-doc,xojo,xquery,yaml,yang,zig - Description: List of PrismJS language ids to include. Dropdown values are sourced from local
node_modules/prismjs/components.json, and custom text values are also allowed. - Example:
{
"option": {
"highlight": {
"syntax": {
"language": {
"include": [
"html"
]
}
}
}
}
}
option.highlight.syntax.path
- Type: object
- Required: No
- Default: {"css": "css/module", "js": "js/module"}
- Allowed values: N/A
- Description: Output directories for PrismJS assets.
- Example:
{
"option": {
"highlight": {
"syntax": {
"path": {
"css": "css/module",
"js": "js/module"
}
}
}
}
}
option.highlight.syntax.path.css
- Type: string (path)
- Required: No
- Default: "css/module"
- Allowed values: N/A
- Description: Output directory for generated PrismJS CSS modules (themes/plugins).
- Example:
{
"option": {
"highlight": {
"syntax": {
"path": {
"css": "css/module"
}
}
}
}
}
option.highlight.syntax.path.js
- Type: string (path)
- Required: No
- Default: "js/module"
- Allowed values: N/A
- Description: Output directory for generated PrismJS JavaScript modules (languages/plugins).
- Example:
{
"option": {
"highlight": {
"syntax": {
"path": {
"js": "js/module"
}
}
}
}
}
option.highlight.syntax.plugin
- Type: object
- Required: No
- Default: {"enable": true, "include": ["autolinker", "copy-to-clipboard", "data-uri-highlight", "inline-color", "line-numbers", "match-braces", "show-language"]}
- Allowed values: N/A
- Description: Plugin inclusion settings for PrismJS syntax highlighting.
- Example:
{
"option": {
"highlight": {
"syntax": {
"plugin": {
"enable": true,
"include": [
"autolinker",
"copy-to-clipboard",
"data-uri-highlight",
"inline-color",
"line-numbers",
"match-braces",
"show-language"
]
}
}
}
}
}
option.highlight.syntax.plugin.enable
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable/disable PrismJS plugin inclusion.
- Example:
{
"option": {
"highlight": {
"syntax": {
"plugin": {
"enable": true
}
}
}
}
}
option.highlight.syntax.plugin.include
- Type: array (items:
option.highlight.syntax.plugin.include[]) - Required: No
- Default: ["autolinker", "copy-to-clipboard", "data-uri-highlight", "inline-color", "line-numbers", "match-braces", "show-language"]
- Allowed values: N/A
- Description: List container for PrismJS plugin IDs to include in generated syntax assets.
- Example:
{
"option": {
"highlight": {
"syntax": {
"plugin": {
"include": [
"autolinker",
"copy-to-clipboard",
"data-uri-highlight",
"inline-color",
"line-numbers",
"match-braces",
"show-language"
]
}
}
}
}
}
option.highlight.syntax.plugin.include[]
- Type: string (enum)
- Required: No
- Default: "autolinker"
- Allowed values:
line-highlight,line-numbers,show-invisibles,autolinker,wpd,custom-class,file-highlight,show-language,jsonp-highlight,highlight-keywords,remove-initial-line-feed,inline-color,previewers,autoloader,keep-markup,command-line,unescaped-markup,normalize-whitespace,data-uri-highlight,toolbar,copy-to-clipboard,download-button,match-braces,diff-highlight,filter-highlight-all,treeview - Description: List of PrismJS plugin ids to include. Dropdown values are sourced from local
node_modules/prismjs/components.json, and custom text values are also allowed. - Example:
{
"option": {
"highlight": {
"syntax": {
"plugin": {
"include": [
"autolinker"
]
}
}
}
}
}
option.highlight.syntax.theme
- Type: object
- Required: No
- Default: {"enable": true, "include": ["prism"]}
- Allowed values: N/A
- Description: Theme inclusion settings for PrismJS syntax highlighting.
- Example:
{
"option": {
"highlight": {
"syntax": {
"theme": {
"enable": true,
"include": [
"prism"
]
}
}
}
}
}
option.highlight.syntax.theme.enable
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable/disable PrismJS theme inclusion.
- Example:
{
"option": {
"highlight": {
"syntax": {
"theme": {
"enable": true
}
}
}
}
}
option.highlight.syntax.theme.include
- Type: array (items:
option.highlight.syntax.theme.include[]) - Required: No
- Default: ["prism"]
- Allowed values: N/A
- Description: List container for PrismJS theme IDs to include in generated syntax assets.
- Example:
{
"option": {
"highlight": {
"syntax": {
"theme": {
"include": [
"prism"
]
}
}
}
}
}
option.highlight.syntax.theme.include[]
- Type: string (enum)
- Required: No
- Default: "prism"
- Allowed values:
prism,prism-dark,prism-funky,prism-okaidia,prism-twilight,prism-coy,prism-solarizedlight,prism-tomorrow - Description: List of PrismJS theme ids to include. Dropdown values are sourced from local
node_modules/prismjs/components.json, and custom text values are also allowed. - Example:
{
"option": {
"highlight": {
"syntax": {
"theme": {
"include": [
"prism"
]
}
}
}
}
}
Option.HTML
Optional configuration block.
option.html
- Type: object
- Required: No
- Default: {"minify": {"removeComments": true, "collapseWhitespace": true, "minifyCSS": true, "minifyJS": true}}
- Allowed values: N/A
- Description: HTML processing options (e.g., minification).
- Example:
{
"option": {
"html": {
"minify": {
"removeComments": true,
"collapseWhitespace": true,
"minifyCSS": true,
"minifyJS": true
}
}
}
}
option.html.minify
- Type: object
- Required: No
- Default: {"removeComments": true, "collapseWhitespace": true, "minifyCSS": true, "minifyJS": true}
- Allowed values: N/A
- Description: HTML minification options applied during compilation.
- Example:
{
"option": {
"html": {
"minify": {
"removeComments": true,
"collapseWhitespace": true,
"minifyCSS": true,
"minifyJS": true
}
}
}
}
option.html.minify.collapseWhitespace
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: When minifying HTML, collapse unnecessary whitespace.
- Example:
{
"option": {
"html": {
"minify": {
"collapseWhitespace": true
}
}
}
}
option.html.minify.minifyCSS
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: When minifying HTML, also minify inline
<style>blocks / CSS. - Example:
{
"option": {
"html": {
"minify": {
"minifyCSS": true
}
}
}
}
option.html.minify.minifyJS
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: When minifying HTML, also minify inline
<script>blocks / JavaScript. - Example:
{
"option": {
"html": {
"minify": {
"minifyJS": true
}
}
}
}
option.html.minify.removeComments
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: When minifying HTML, remove HTML comments.
- Example:
{
"option": {
"html": {
"minify": {
"removeComments": true
}
}
}
}
Option.Image
Optional configuration block.
option.image
- Type: object
- Required: No
- Default: {"interlace": [], "minify": {"gifsicle": {"interlaced": true}, "jpegoptim": {"progressive": true, "stripAll": true}, "mozjpeg": {"quality": 75, "progressive"...
- Allowed values: N/A
- Description: Image processing options (minification, interlacing, variants, watermarking).
- Example:
{
"option": {
"image": {
"interlace": [],
"minify": {
"gifsicle": {
"interlaced": true
},
"jpegoptim": {
"progressive": true,
"stripAll": true
},
"mozjpeg": {
"quality": 75,
"progressive": true
},
"optipng": {
"optimizationLevel": 5,
"strip": "all"
},
"pngcrush": {
"reduce": true,
"strip": true
},
"svgo": {
"plugins": [
{
"name": "removeViewBox",
"active": true
},
{
"name": "removeMetadata",
"active": true
},
{
"name": "removeDesc",
"active": true
},
{
"name": "removeTitle",
"active": true
},
{
"name": "removeUselessDefs",
"active": true
}
]
}
},
"threads": null,
"watermark": [
{
"pattern": "**/*.watermark.*",
"layers": [
{
"image": "brand/_watermark.png",
"gravity": "Center",
"opacity": 37.5,
"resize": 1.0,
"background": "none",
"gmOptions": "-tile"
}
]
}
]
}
}
}
option.image.interlace
- Type: array (items:
option.image.interlace[]) - Required: No
- Default: []
- Allowed values: N/A
- Description: Interlace rule list (may be empty).
- Example:
{
"option": {
"image": {
"interlace": []
}
}
}
option.image.interlace[]
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: A single interlace rule entry.
- Example:
{
"option": {
"image": {
"interlace": [
"<value>"
]
}
}
}
option.image.minify
- Type: object
- Required: No
- Default: {"gifsicle": {"interlaced": true}, "jpegoptim": {"progressive": true, "stripAll": true}, "mozjpeg": {"quality": 75, "progressive": true}, "optipng": {"optimi...
- Allowed values: N/A
- Description: Image minification options per optimizer/codec.
- Example:
{
"option": {
"image": {
"minify": {
"gifsicle": {
"interlaced": true
},
"jpegoptim": {
"progressive": true,
"stripAll": true
},
"mozjpeg": {
"quality": 75,
"progressive": true
},
"optipng": {
"optimizationLevel": 5,
"strip": "all"
},
"pngcrush": {
"reduce": true,
"strip": true
},
"svgo": {
"plugins": [
{
"name": "removeViewBox",
"active": true
},
{
"name": "removeMetadata",
"active": true
},
{
"name": "removeDesc",
"active": true
},
{
"name": "removeTitle",
"active": true
},
{
"name": "removeUselessDefs",
"active": true
}
]
}
}
}
}
}
option.image.minify.gifsicle
- Type: object
- Required: No
- Default: {"interlaced": true}
- Allowed values: N/A
- Description: Settings container for gifsicle GIF optimization.
- Example:
{
"option": {
"image": {
"minify": {
"gifsicle": {
"interlaced": true
}
}
}
}
}
option.image.minify.gifsicle.interlaced
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Image minification option 'interlaced' for gifsicle (GIF optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"gifsicle": {
"interlaced": true
}
}
}
}
}
option.image.minify.jpegoptim
- Type: object
- Required: No
- Default: {"progressive": true, "stripAll": true}
- Allowed values: N/A
- Description: Settings container for jpegoptim JPEG optimization.
- Example:
{
"option": {
"image": {
"minify": {
"jpegoptim": {
"progressive": true,
"stripAll": true
}
}
}
}
}
option.image.minify.jpegoptim.progressive
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Image minification option 'progressive' for jpegoptim (JPEG optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"jpegoptim": {
"progressive": true
}
}
}
}
}
option.image.minify.jpegoptim.stripAll
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Image minification option 'stripAll' for jpegoptim (JPEG optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"jpegoptim": {
"stripAll": true
}
}
}
}
}
option.image.minify.mozjpeg
- Type: object
- Required: No
- Default: {"quality": 75, "progressive": true}
- Allowed values: N/A
- Description: Settings container for mozjpeg JPEG encoding/optimization.
- Example:
{
"option": {
"image": {
"minify": {
"mozjpeg": {
"quality": 75,
"progressive": true
}
}
}
}
}
option.image.minify.mozjpeg.progressive
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Image minification option 'progressive' for mozjpeg (JPEG encoder).
- Example:
{
"option": {
"image": {
"minify": {
"mozjpeg": {
"progressive": true
}
}
}
}
}
option.image.minify.mozjpeg.quality
- Type: integer
- Required: No
- Default: 75
- Allowed values: N/A
- Description: Image minification option 'quality' for mozjpeg (JPEG encoder).
- Example:
{
"option": {
"image": {
"minify": {
"mozjpeg": {
"quality": 75
}
}
}
}
}
option.image.minify.optipng
- Type: object
- Required: No
- Default: {"optimizationLevel": 5, "strip": "all"}
- Allowed values: N/A
- Description: Settings container for optipng PNG optimization.
- Example:
{
"option": {
"image": {
"minify": {
"optipng": {
"optimizationLevel": 5,
"strip": "all"
}
}
}
}
}
option.image.minify.optipng.optimizationLevel
- Type: integer
- Required: No
- Default: 5
- Allowed values: N/A
- Description: Image minification option 'optimizationLevel' for optipng (PNG optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"optipng": {
"optimizationLevel": 5
}
}
}
}
}
option.image.minify.optipng.strip
- Type: string
- Required: No
- Default: "all"
- Allowed values: N/A
- Description: Image minification option 'strip' for optipng (PNG optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"optipng": {
"strip": "all"
}
}
}
}
}
option.image.minify.pngcrush
- Type: object
- Required: No
- Default: {"reduce": true, "strip": true}
- Allowed values: N/A
- Description: Settings container for pngcrush PNG optimization.
- Example:
{
"option": {
"image": {
"minify": {
"pngcrush": {
"reduce": true,
"strip": true
}
}
}
}
}
option.image.minify.pngcrush.reduce
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Image minification option 'reduce' for pngcrush (PNG optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"pngcrush": {
"reduce": true
}
}
}
}
}
option.image.minify.pngcrush.strip
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Image minification option 'strip' for pngcrush (PNG optimizer).
- Example:
{
"option": {
"image": {
"minify": {
"pngcrush": {
"strip": true
}
}
}
}
}
option.image.minify.svgo
- Type: object
- Required: No
- Default: {"plugins": [{"name": "removeViewBox", "active": true}, {"name": "removeMetadata", "active": true}, {"name": "removeDesc", "active": true}, {"name": "removeT...
- Allowed values: N/A
- Description: SVG optimization options via SVGO.
- Example:
{
"option": {
"image": {
"minify": {
"svgo": {
"plugins": [
{
"name": "removeViewBox",
"active": true
},
{
"name": "removeMetadata",
"active": true
},
{
"name": "removeDesc",
"active": true
},
{
"name": "removeTitle",
"active": true
},
{
"name": "removeUselessDefs",
"active": true
}
]
}
}
}
}
}
option.image.minify.svgo.plugins
- Type: array (items:
option.image.minify.svgo.plugins[]) - Required: No
- Default: [{"name": "removeViewBox", "active": true}, {"name": "removeMetadata", "active": true}, {"name": "removeDesc", "active": true}, {"name": "removeTitle", "acti...
- Allowed values: N/A
- Description: SVGO plugin configuration list.
- Example:
{
"option": {
"image": {
"minify": {
"svgo": {
"plugins": [
{
"name": "removeViewBox",
"active": true
},
{
"name": "removeMetadata",
"active": true
},
{
"name": "removeDesc",
"active": true
},
{
"name": "removeTitle",
"active": true
},
{
"name": "removeUselessDefs",
"active": true
}
]
}
}
}
}
}
option.image.minify.svgo.plugins[]
- Type: object (2 documented child key(s))
- Required: No
- Default: {"name": "removeViewBox", "active": true}
- Allowed values: N/A
- Description: SVGO plugin list applied during SVG optimization.
- Example:
{
"option": {
"image": {
"minify": {
"svgo": {
"plugins": [
{
"name": "removeViewBox",
"active": true
}
]
}
}
}
}
}
option.image.minify.svgo.plugins[].active
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Whether this SVGO plugin is enabled for SVG optimization.
- Example:
{
"option": {
"image": {
"minify": {
"svgo": {
"plugins": [
{
"active": true
}
]
}
}
}
}
}
option.image.minify.svgo.plugins[].name
- Type: string
- Required: No
- Default: "removeViewBox"
- Allowed values: N/A
- Description: SVGO plugin name for this plugin entry.
- Example:
{
"option": {
"image": {
"minify": {
"svgo": {
"plugins": [
{
"name": "removeViewBox"
}
]
}
}
}
}
}
option.image.threads
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Maximum parallelism for image optimization. Null/undefined typically means auto/default.
- Example:
{
"option": {
"image": {
"threads": "<value>"
}
}
}
option.image.variant
- Type: array (items:
option.image.variant[]) - Required: No
- Default: []
- Allowed values: N/A
- Description: Defines generated image variants (e.g., thumbnails). Each rule matches source images and emits a suffixed resized copy. Watermark rules (if matched) are applied independently to each output image.
- Example:
{
"option": {
"image": {
"variant": []
}
}
}
option.image.variant[]
- Type: object (3 documented child key(s))
- Required: No
- Default: {"pattern": "asset/image/content/**/*.{png,jpg,jpeg}", "size": 25, "suffix": ".thumb"}
- Allowed values: N/A
- Description: A single image variant rule entry.
- Example:
{
"option": {
"image": {
"variant": [
{
"pattern": "asset/image/content/**/*.{png,jpg,jpeg}",
"size": 25,
"suffix": ".thumb"
}
]
}
}
}
option.image.variant[].pattern
- Type: string (path)
- Required: No
- Default: "asset/image/content/**/*.{png,jpg,jpeg}"
- Allowed values: N/A
- Description: Glob pattern used to select source images this variant rule applies to.
- Example:
{
"option": {
"image": {
"variant": [
{
"pattern": "asset/image/content/**/*.{png,jpg,jpeg}"
}
]
}
}
}
option.image.variant[].size
- Type: number or string
- Required: No
- Default: 25
- Allowed values: N/A
- Description: Variant max bound. Number form is max pixels (applies to both width and height with fit-inside). String form is a percentage of the source image max side (e.g., '25%').
- Example:
{
"option": {
"image": {
"variant": [
{
"size": "25%"
}
]
}
}
}
option.image.variant[].suffix
- Type: string
- Required: No
- Default: ".thumb"
- Allowed values: N/A
- Description: Suffix inserted before extension for generated variant files (default '.thumb').
- Example:
{
"option": {
"image": {
"variant": [
{
"suffix": ".thumb"
}
]
}
}
}
option.image.watermark
- Type: array (items:
option.image.watermark[]) - Required: No
- Default: [{"pattern": "**/.watermark.", "layers": [{"image": "brand/_watermark.png", "gravity": "Center", "opacity": 37.5, "resize": 1.0, "background": "none", "gmO...
- Allowed values: N/A
- Description: Defines a list of watermark rules. Each rule specifies:
- Example:
{
"option": {
"image": {
"watermark": [
{
"pattern": "**/*.watermark.*",
"layers": [
{
"image": "brand/_watermark.png",
"gravity": "Center",
"opacity": 37.5,
"resize": 1.0,
"background": "none",
"gmOptions": "-tile"
}
]
}
]
}
}
}
option.image.watermark[]
- Type: object (2 documented child key(s))
- Required: No
- Default: {"pattern": "**/.watermark.", "layers": [{"image": "brand/_watermark.png", "gravity": "Center", "opacity": 37.5, "resize": 1.0, "background": "none", "gmOp...
- Allowed values: N/A
- Description: A single watermark rule entry.
- Example:
{
"option": {
"image": {
"watermark": [
{
"pattern": "**/*.watermark.*",
"layers": [
{
"image": "brand/_watermark.png",
"gravity": "Center",
"opacity": 37.5,
"resize": 1.0,
"background": "none",
"gmOptions": "-tile"
}
]
}
]
}
}
}
option.image.watermark[].layers
- Type: array (items:
option.image.watermark[].layers[]) - Required: No
- Default: [{"image": "brand/_watermark.png", "gravity": "Center", "opacity": 37.5, "resize": 1.0, "background": "none", "gmOptions": "-tile"}]
- Allowed values: N/A
- Description: List of layers applied by a watermark rule (composited in order).
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"image": "brand/_watermark.png",
"gravity": "Center",
"opacity": 37.5,
"resize": 1.0,
"background": "none",
"gmOptions": "-tile"
}
]
}
]
}
}
}
option.image.watermark[].layers[]
- Type: object (6 documented child key(s))
- Required: No
- Default: {"image": "brand/_watermark.png", "gravity": "Center", "opacity": 37.5, "resize": 1.0, "background": "none", "gmOptions": "-tile"}
- Allowed values: N/A
- Description: A single watermark layer entry.
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"image": "brand/_watermark.png",
"gravity": "Center",
"opacity": 37.5,
"resize": 1.0,
"background": "none",
"gmOptions": "-tile"
}
]
}
]
}
}
}
option.image.watermark[].layers[].background
- Type: string
- Required: No
- Default: "none"
- Allowed values: N/A
- Description: Background color/setting used when resizing/tiling watermark layers (e.g., 'none').
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"background": "none"
}
]
}
]
}
}
}
option.image.watermark[].layers[].gmOptions
- Type: string
- Required: No
- Default: "-tile"
- Allowed values: N/A
- Description: Extra GraphicsMagick options passed to the composite step (e.g., -tile).
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"gmOptions": "-tile"
}
]
}
]
}
}
}
option.image.watermark[].layers[].gravity
- Type: string (enum)
- Required: No
- Default: "Center"
- Allowed values:
Center,top,TopLeft,TopRight,Bottom,BottomLeft,BottomRight,Left,Right,NorthWest,North,NorthEast,West,East,SouthWest,South,SouthEast - Description: Placement of a watermark layer on the target image (GraphicsMagick composite gravity; e.g., Center, SouthEast).
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"gravity": "Center"
}
]
}
]
}
}
}
option.image.watermark[].layers[].image
- Type: string (path)
- Required: No
- Default: "brand/_watermark.png"
- Allowed values: N/A
- Description: Project-relative path to the watermark image file used for a watermark layer.
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"image": "brand/_watermark.png"
}
]
}
]
}
}
}
option.image.watermark[].layers[].opacity
- Type: number
- Required: No
- Default: 37.5
- Allowed values: N/A
- Description: Opacity (percentage) for the watermark layer when composited onto the target image.
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"opacity": 37.5
}
]
}
]
}
}
}
option.image.watermark[].layers[].resize
- Type: number
- Required: No
- Default: 1.0
- Allowed values: N/A
- Description: Scale factor applied to the watermark layer before compositing (1.0 = unchanged).
- Example:
{
"option": {
"image": {
"watermark": [
{
"layers": [
{
"resize": 1.0
}
]
}
]
}
}
}
option.image.watermark[].pattern
- Type: string (path)
- Required: No
- Default: "**/.watermark."
- Allowed values: N/A
- Description: Glob pattern used to select which images a watermark rule applies to.
- Example:
{
"option": {
"image": {
"watermark": [
{
"pattern": "**/*.watermark.*"
}
]
}
}
}
Option.JS
Optional configuration block.
option.js
- Type: object
- Required: No
- Default: {"minify": {"keep_classnames": false, "keep_fnames": false, "compress": true, "mangle": false}}
- Allowed values: N/A
- Description: JavaScript processing options (e.g., minification).
- Example:
{
"option": {
"js": {
"minify": {
"keep_classnames": false,
"keep_fnames": false,
"compress": true,
"mangle": false
}
}
}
}
option.js.minify
- Type: object
- Required: No
- Default: {"keep_classnames": false, "keep_fnames": false, "compress": true, "mangle": false}
- Allowed values: N/A
- Description: JavaScript minification options (typically passed to the minifier).
- Example:
{
"option": {
"js": {
"minify": {
"keep_classnames": false,
"keep_fnames": false,
"compress": true,
"mangle": false
}
}
}
}
option.js.minify.compress
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable JavaScript compression optimizations during minification.
- Example:
{
"option": {
"js": {
"minify": {
"compress": true
}
}
}
}
option.js.minify.keep_classnames
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: When minifying JS, preserve class names (useful for reflection/debugging).
- Example:
{
"option": {
"js": {
"minify": {
"keep_classnames": false
}
}
}
}
option.js.minify.keep_fnames
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: When minifying JS, preserve function names (useful for stack traces/debugging).
- Example:
{
"option": {
"js": {
"minify": {
"keep_fnames": false
}
}
}
}
option.js.minify.mangle
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: Enable JavaScript identifier mangling during minification.
- Example:
{
"option": {
"js": {
"minify": {
"mangle": false
}
}
}
}
Option.Markdown
Optional configuration block.
option.markdown
- Type: object
- Required: No
- Default: {"include_path": "in/_html/markdown"}
- Allowed values: N/A
- Description: Markdown processing options.
- Example:
{
"option": {
"markdown": {
"include_path": "in/_html/markdown"
}
}
}
option.markdown.include_path
- Type: string (path)
- Required: No
- Default: "in/_html/markdown"
- Allowed values: N/A
- Description: Project-relative directory that contains markdown/HTML include fragments used during compilation.
- Example:
{
"option": {
"markdown": {
"include_path": "in/_html/markdown"
}
}
}
Option.Mirrors
Optional configuration block.
option.mirrors
- Type: array (items:
option.mirrors[]) - Required: No
- Default: []
- Allowed values: N/A
- Description: Mirror rule list for copying arbitrary project files into output.
- Example:
{
"option": {
"mirrors": []
}
}
Option.Mirrors[]
Optional configuration block.
option.mirrors[]
- Type: object (5 documented child key(s))
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: A single mirror rule entry.
- Example:
{
"option": {
"mirrors": [
{}
]
}
}
option.mirrors[].source
- Type: string (path)
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Project-relative source path (file or directory) to mirror into output.
- Example:
{
"option": {
"mirrors": [
{
"source": "<value>"
}
]
}
}
option.mirrors[].destination
- Type: string (path)
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Project-relative destination directory (under out/) where mirrored files are copied.
- Example:
{
"option": {
"mirrors": [
{
"destination": "<value>"
}
]
}
}
option.mirrors[].match_pattern
- Type: union (string, array
) - Required: No
- Default: N/A
- Allowed values:
string,array<string> - Description: Glob pattern(s) controlling which files under
sourceare mirrored. Supports negated patterns starting with '!'. - Example:
{
"option": {
"mirrors": [
{
"match_pattern": "<value>"
}
]
}
}
option.mirrors[].rename
- Type: union (string, array (items: option.mirrors[].rename[]))
- Required: No
- Default: N/A
- Allowed values:
string,array (option.mirrors[].rename[]) - Description: Optional rename rule(s) applied to mirrored relative paths. String form is a single-file target path; array form is rule-based.
- Example:
{
"option": {
"mirrors": [
{
"rename": "<value>"
}
]
}
}
option.mirrors[].rename[]
- Type: object (4 documented child key(s))
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: A single mirror rename rule object used when
option.mirrors[].renameis an array. - Example:
{
"option": {
"mirrors": [
{
"rename": [
{}
]
}
]
}
}
option.mirrors[].rename[].pattern
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Glob pattern used to match source-relative paths for this rename rule.
- Example:
{
"option": {
"mirrors": [
{
"rename": [
{
"pattern": "<value>"
}
]
}
]
}
}
option.mirrors[].rename[].regex
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Regex source string used in regex mode instead of glob mode.
- Example:
{
"option": {
"mirrors": [
{
"rename": [
{
"regex": "<value>"
}
]
}
]
}
}
option.mirrors[].rename[].flags
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Regex flags (e.g., 'g', 'i') used with
regexin regex mode. - Example:
{
"option": {
"mirrors": [
{
"rename": [
{
"flags": "<value>"
}
]
}
]
}
}
option.mirrors[].rename[].to
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Target relative path/filename to rename matched paths to.
- Example:
{
"option": {
"mirrors": [
{
"rename": [
{
"to": "<value>"
}
]
}
]
}
}
Option.Navigation
Optional configuration block.
option.navigation
- Type: object
- Required: No
- Default: {"breadcrumb": {"base_path": "", "enable": true, "ignore_patterns": null, "replace_text": "", "root_content": "Home"}, "shared": {"ignore_...
- Allowed values: N/A
- Description: Navigation feature settings (breadcrumb, ToC, shared nav).
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"base_path": "",
"enable": true,
"ignore_patterns": null,
"replace_text": "<!-- breadcrumb -->",
"root_content": "Home"
},
"shared": {
"ignore_patterns": [
"index.html",
"404.html",
"503.html"
]
},
"toc": {
"collapsible": false,
"depth": 4,
"enable": true,
"header_prepend": "<span class=\"counter\"></span>",
"header_prepend_selectors": "h2,h3,h4,h5,h6",
"ignore_class": "toc-ignore",
"ignore_patterns": null,
"replace_text": "<!-- toc -->",
"selectors": "h1,h2,h3,h4,h5,h6",
"wrap_emoji": null
}
}
}
}
option.navigation.breadcrumb
- Type: object
- Required: No
- Default: {"base_path": "", "enable": true, "ignore_patterns": null, "replace_text": "", "root_content": "Home"}
- Allowed values: N/A
- Description: Breadcrumb injection settings.
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"base_path": "",
"enable": true,
"ignore_patterns": null,
"replace_text": "<!-- breadcrumb -->",
"root_content": "Home"
}
}
}
}
option.navigation.breadcrumb.base_path
- Type: string (path)
- Required: No
- Default: ""
- Allowed values: N/A
- Description: Base path prefix used when generating breadcrumb link URLs (e.g., to mount output under a subdirectory).
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"base_path": ""
}
}
}
}
option.navigation.breadcrumb.enable
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable/disable breadcrumb injection into generated HTML.
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"enable": true
}
}
}
}
option.navigation.breadcrumb.ignore_patterns
- Type: union (null, array (items: option.navigation.breadcrumb.ignore_patterns[]))
- Required: No
- Default: N/A
- Allowed values:
null,array (option.navigation.breadcrumb.ignore_patterns[]) - Description: Optional ignore patterns for breadcrumb generation (null to use shared defaults).
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"ignore_patterns": null
}
}
}
}
option.navigation.breadcrumb.ignore_patterns[]
- Type: string (path)
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Paths/glob patterns excluded from breadcrumb generation.
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"ignore_patterns": [
"<value>"
]
}
}
}
}
option.navigation.breadcrumb.replace_text
- Type: string
- Required: No
- Default: ""
- Allowed values: N/A
- Description: HTML marker string that will be replaced with the generated breadcrumb HTML.
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"replace_text": "<!-- breadcrumb -->"
}
}
}
}
option.navigation.breadcrumb.root_content
- Type: string
- Required: No
- Default: "Home"
- Allowed values: N/A
- Description: Label/content used for the breadcrumb root link (e.g., 'Home').
- Example:
{
"option": {
"navigation": {
"breadcrumb": {
"root_content": "Home"
}
}
}
}
option.navigation.shared
- Type: object
- Required: No
- Default: {"ignore_patterns": ["index.html", "404.html", "503.html"]}
- Allowed values: N/A
- Description: Shared navigation settings used as defaults for other nav sections.
- Example:
{
"option": {
"navigation": {
"shared": {
"ignore_patterns": [
"index.html",
"404.html",
"503.html"
]
}
}
}
}
option.navigation.shared.ignore_patterns
- Type: array (items:
option.navigation.shared.ignore_patterns[]) - Required: No
- Default: ["index.html", "404.html", "503.html"]
- Allowed values: N/A
- Description: List container for shared navigation ignore patterns.
- Example:
{
"option": {
"navigation": {
"shared": {
"ignore_patterns": [
"index.html",
"404.html",
"503.html"
]
}
}
}
}
option.navigation.shared.ignore_patterns[]
- Type: string (path)
- Required: No
- Default: "index.html"
- Allowed values: N/A
- Description: Paths/patterns that should be excluded from shared navigation features (e.g., index/404/503 pages).
- Example:
{
"option": {
"navigation": {
"shared": {
"ignore_patterns": [
"index.html"
]
}
}
}
}
option.navigation.toc
- Type: object
- Required: No
- Default: {"collapsible": false, "depth": 4, "enable": true, "header_prepend": "<span class="counter">", "header_prepend_selectors": "h2,h3,h4,h5,h6", "ignore...
- Allowed values: N/A
- Description: Table-of-contents (ToC) generation and injection settings.
- Example:
{
"option": {
"navigation": {
"toc": {
"collapsible": false,
"depth": 4,
"enable": true,
"header_prepend": "<span class=\"counter\"></span>",
"header_prepend_selectors": "h2,h3,h4,h5,h6",
"ignore_class": "toc-ignore",
"ignore_patterns": null,
"replace_text": "<!-- toc -->",
"selectors": "h1,h2,h3,h4,h5,h6",
"wrap_emoji": null
}
}
}
}
option.navigation.toc.collapsible
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: Whether the ToC UI should be collapsible (if the template/CSS supports it).
- Example:
{
"option": {
"navigation": {
"toc": {
"collapsible": false
}
}
}
}
option.navigation.toc.depth
- Type: integer
- Required: No
- Default: 4
- Allowed values: N/A
- Description: Maximum heading depth to include in the ToC (e.g., 4 includes up to h4).
- Example:
{
"option": {
"navigation": {
"toc": {
"depth": 4
}
}
}
}
option.navigation.toc.enable
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: Enable/disable table-of-contents (ToC) generation/injection.
- Example:
{
"option": {
"navigation": {
"toc": {
"enable": true
}
}
}
}
option.navigation.toc.header_prepend
- Type: string
- Required: No
- Default: "<span class="counter">"
- Allowed values: N/A
- Description: HTML inserted at the start of each ToC entry label (e.g., a counter span).
- Example:
{
"option": {
"navigation": {
"toc": {
"header_prepend": "<span class=\"counter\"></span>"
}
}
}
}
option.navigation.toc.header_prepend_selectors
- Type: string
- Required: No
- Default: "h2,h3,h4,h5,h6"
- Allowed values: N/A
- Description: Selectors that receive header_prepend injection.
- Example:
{
"option": {
"navigation": {
"toc": {
"header_prepend_selectors": "h2,h3,h4,h5,h6"
}
}
}
}
option.navigation.toc.ignore_class
- Type: string
- Required: No
- Default: "toc-ignore"
- Allowed values: N/A
- Description: CSS class that marks headings to be excluded from the ToC.
- Example:
{
"option": {
"navigation": {
"toc": {
"ignore_class": "toc-ignore"
}
}
}
}
option.navigation.toc.ignore_patterns
- Type: union (null, array (items: option.navigation.toc.ignore_patterns[]))
- Required: No
- Default: N/A
- Allowed values:
null,array (option.navigation.toc.ignore_patterns[]) - Description: Optional ignore patterns for ToC generation (null to use shared defaults).
- Example:
{
"option": {
"navigation": {
"toc": {
"ignore_patterns": null
}
}
}
}
option.navigation.toc.ignore_patterns[]
- Type: string (path)
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Paths/glob patterns excluded from ToC generation.
- Example:
{
"option": {
"navigation": {
"toc": {
"ignore_patterns": [
"<value>"
]
}
}
}
}
option.navigation.toc.replace_text
- Type: string
- Required: No
- Default: ""
- Allowed values: N/A
- Description: HTML marker string that will be replaced with the generated ToC HTML.
- Example:
{
"option": {
"navigation": {
"toc": {
"replace_text": "<!-- toc -->"
}
}
}
}
option.navigation.toc.selectors
- Type: string
- Required: No
- Default: "h1,h2,h3,h4,h5,h6"
- Allowed values: N/A
- Description: Heading CSS selectors used to build the ToC (e.g., h1,h2,h3...).
- Example:
{
"option": {
"navigation": {
"toc": {
"selectors": "h1,h2,h3,h4,h5,h6"
}
}
}
}
option.navigation.toc.wrap_emoji
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Optional config to wrap emoji in headings for consistent styling (null to disable).
- Example:
{
"option": {
"navigation": {
"toc": {
"wrap_emoji": "<value>"
}
}
}
}
Option.Package
Optional configuration block.
option.package
- Type: object
- Required: No
- Default: {"html": {"ignore_class": ["no-package"]}, "ignore": ["no-package"], "output": {"directory": false, "zip": true}, "targets": [{"suffix": "", "paths": [{"sou...
- Allowed values: N/A
- Description: Packaging settings for producing deployable bundles (zip and/or directory).
- Example:
{
"option": {
"package": {
"html": {
"ignore_class": [
"no-package"
]
},
"ignore": [
"no-package"
],
"output": {
"directory": false,
"zip": true
},
"targets": [
{
"suffix": "",
"paths": [
{
"source": "out",
"destination": "",
"ignore": [],
"no_ignore": false
}
]
}
]
}
}
}
option.package.html
- Type: object
- Required: No
- Default: {"ignore_class": ["no-package"]}
- Allowed values: N/A
- Description: HTML-driven packaging rules (e.g., ignore classes).
- Example:
{
"option": {
"package": {
"html": {
"ignore_class": [
"no-package"
]
}
}
}
}
option.package.html.ignore_class
- Type: array (items:
option.package.html.ignore_class[]) - Required: No
- Default: ["no-package"]
- Allowed values: N/A
- Description: List container for HTML class names used by packaging exclusion rules.
- Example:
{
"option": {
"package": {
"html": {
"ignore_class": [
"no-package"
]
}
}
}
}
option.package.html.ignore_class[]
- Type: string
- Required: No
- Default: "no-package"
- Allowed values: N/A
- Description: HTML class names that indicate content/pages should be excluded from package outputs.
- Example:
{
"option": {
"package": {
"html": {
"ignore_class": [
"no-package"
]
}
}
}
}
option.package.ignore
- Type: array (items:
option.package.ignore[]) - Required: No
- Default: ["no-package"]
- Allowed values: N/A
- Description: Top-level package ignore pattern list applied across package targets (unless disabled per path).
- Example:
{
"option": {
"package": {
"ignore": [
"no-package"
]
}
}
}
option.package.ignore[]
- Type: string (path)
- Required: No
- Default: "no-package"
- Allowed values: N/A
- Description: Top-level ignore patterns applied when building package outputs.
- Example:
{
"option": {
"package": {
"ignore": [
"no-package"
]
}
}
}
option.package.output
- Type: object
- Required: No
- Default: {"directory": false, "zip": true}
- Allowed values: N/A
- Description: Controls which package output formats are produced.
- Example:
{
"option": {
"package": {
"output": {
"directory": false,
"zip": true
}
}
}
}
option.package.output.directory
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: When packaging, also emit an unpacked directory output.
- Example:
{
"option": {
"package": {
"output": {
"directory": false
}
}
}
}
option.package.output.zip
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: When packaging, emit a .zip archive output.
- Example:
{
"option": {
"package": {
"output": {
"zip": true
}
}
}
}
option.package.targets
- Type: array (items:
option.package.targets[]) - Required: No
- Default: [{"suffix": "", "paths": [{"source": "out", "destination": "", "ignore": [], "no_ignore": false}]}]
- Allowed values: N/A
- Description: List of package target definitions.
- Example:
{
"option": {
"package": {
"targets": [
{
"suffix": "",
"paths": [
{
"source": "out",
"destination": "",
"ignore": [],
"no_ignore": false
}
]
}
]
}
}
}
option.package.targets[]
- Type: object (3 documented child key(s))
- Required: No
- Default: {"suffix": "", "paths": [{"source": "out", "destination": "", "ignore": [], "no_ignore": false}]}
- Allowed values: N/A
- Description: A single package target definition.
- Example:
{
"option": {
"package": {
"targets": [
{
"suffix": "",
"paths": [
{
"source": "out",
"destination": "",
"ignore": [],
"no_ignore": false
}
]
}
]
}
}
}
option.package.targets[].paths
- Type: array (items:
option.package.targets[].paths[]) - Required: No
- Default: [{"source": "out", "destination": "", "ignore": [], "no_ignore": false}]
- Allowed values: N/A
- Description: List of source-to-destination mappings for a package target.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"source": "out",
"destination": "",
"ignore": [],
"no_ignore": false
}
]
}
]
}
}
}
option.package.targets[].paths[]
- Type: object (5 documented child key(s))
- Required: No
- Default: {"source": "out", "destination": "", "ignore": [], "no_ignore": false}
- Allowed values: N/A
- Description: A single source-to-destination mapping for a package target.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"source": "out",
"destination": "",
"ignore": [],
"no_ignore": false
}
]
}
]
}
}
}
option.package.targets[].paths[].destination
- Type: string (path)
- Required: No
- Default: ""
- Allowed values: N/A
- Description: Destination subdirectory inside the packaged output (zip or folder) where the source files are placed.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"destination": ""
}
]
}
]
}
}
}
option.package.targets[].paths[].ignore
- Type: array (items:
option.package.targets[].paths[].ignore[]) - Required: No
- Default: []
- Allowed values: N/A
- Description: Per-path package ignore pattern list for this target mapping.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"ignore": []
}
]
}
]
}
}
}
option.package.targets[].paths[].ignore[]
- Type: string (path)
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Ignore patterns applied within a package path mapping.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"ignore": [
"<value>"
]
}
]
}
]
}
}
}
option.package.targets[].paths[].no_ignore
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: If true, disables ignore processing for this path mapping.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"no_ignore": false
}
]
}
]
}
}
}
option.package.targets[].paths[].source
- Type: string (path)
- Required: No
- Default: "out"
- Allowed values: N/A
- Description: Project-relative source directory to include in a package target.
- Example:
{
"option": {
"package": {
"targets": [
{
"paths": [
{
"source": "out"
}
]
}
]
}
}
}
option.package.targets[].suffix
- Type: string
- Required: No
- Default: ""
- Allowed values: N/A
- Description: Suffix appended to the package name for this target (useful for variants).
- Example:
{
"option": {
"package": {
"targets": [
{
"suffix": ""
}
]
}
}
}
Option.Path
Optional configuration block.
option.path
- Type: object
- Required: No
- Default: {"ignore_prefix": "_", "ignore_sitemap": ["404", "503"]}
- Allowed values: N/A
- Description: Path-related settings (ignore prefixes and sitemap exclusions).
- Example:
{
"option": {
"path": {
"ignore_prefix": "_",
"ignore_sitemap": [
"404",
"503"
]
}
}
}
option.path.ignore_prefix
- Type: string
- Required: No
- Default: "_"
- Allowed values: N/A
- Description: Files/directories starting with this prefix are ignored by default (commonly '_' for partials).
- Example:
{
"option": {
"path": {
"ignore_prefix": "_"
}
}
}
option.path.ignore_sitemap
- Type: array
- Required: No
- Default: ["404", "503"]
- Allowed values: N/A
- Description: List container for paths/slugs excluded from sitemap generation.
- Example:
{
"option": {
"path": {
"ignore_sitemap": [
"404",
"503"
]
}
}
}
option.path.ignore_sitemap[]
- Type: string (path)
- Required: No
- Default: "404"
- Allowed values: N/A
- Description: Page slugs/paths to exclude from sitemap generation (commonly error pages like 404/503).
- Example:
{
"option": {
"path": {
"ignore_sitemap": [
"404"
]
}
}
}
Option.Replace
Optional configuration block.
option.replace
- Type: object
- Required: No
- Default: {"delimiter": {"open": "[[", "close": "]]"}}
- Allowed values: N/A
- Description: Token replacement settings (delimiters used for placeholder replacement).
- Example:
{
"option": {
"replace": {
"delimiter": {
"open": "[[",
"close": "]]"
}
}
}
}
option.replace.delimiter
- Type: union (string, object)
- Required: No
- Default: {"open": "[[", "close": "]]"}
- Allowed values:
string,object - Description: Delimiter strings used to detect replacement tokens in content.
- Example:
{
"option": {
"replace": {
"delimiter": {
"open": "[[",
"close": "]]"
}
}
}
}
option.replace.delimiter.close
- Type: string
- Required: No
- Default: "]]"
- Allowed values: N/A
- Description: Closing delimiter for config token replacement in templates/content (e.g., '...]]').
- Example:
{
"option": {
"replace": {
"delimiter": {
"close": "]]"
}
}
}
}
option.replace.delimiter.open
- Type: string
- Required: No
- Default: "[["
- Allowed values: N/A
- Description: Opening delimiter for config token replacement in templates/content (e.g., '[[...').
- Example:
{
"option": {
"replace": {
"delimiter": {
"open": "[["
}
}
}
}
Option.Title
Optional configuration block.
option.title
- Type: object
- Required: No
- Default: {"compose": {"dirDepth": -1, "dirOrder": "leafToRoot", "dirJoiner": " - ", "titleJoiner": " - "}, "name": {"word": {"acronyms": ["API", "CPU", "CSS", "DB", "...
- Allowed values: N/A
- Description: Automatic title generation settings.
- Example:
{
"option": {
"title": {
"compose": {
"dirDepth": -1,
"dirOrder": "leafToRoot",
"dirJoiner": " - ",
"titleJoiner": " - "
},
"name": {
"word": {
"acronyms": [
"API",
"CPU",
"CSS",
"DB",
"DOM",
"FAQ",
"FTP",
"GPU",
"HTML",
"HTTP",
"HTTPS",
"ID",
"IP",
"JS",
"JSON",
"OS",
"PDF",
"RAM",
"REST",
"SQL",
"SSH",
"SVG",
"UI",
"URL",
"UUID",
"UX",
"XML",
"2D",
"3D"
],
"lowercases": [
"a",
"an",
"and",
"as",
"at",
"but",
"by",
"for",
"from",
"in",
"into",
"like",
"near",
"nor",
"of",
"off",
"on",
"onto",
"or",
"out",
"over",
"so",
"the",
"to",
"up",
"upon",
"with",
"yet"
],
"propercases": [
"JavaScript",
"Synticore"
]
},
"case": {
"preserve": false,
"enforceCamel": true
},
"separator": {
"separatorsToSpace": [
"_",
"-"
],
"stripPatterns": [],
"wordSplitPattern": "[\\s_\\-]+",
"wordJoinSeparator": " "
}
},
"source": "filename"
}
}
}
option.title.compose
- Type: object
- Required: No
- Default: {"dirDepth": -1, "dirOrder": "leafToRoot", "dirJoiner": " - ", "titleJoiner": " - "}
- Allowed values: N/A
- Description: Rules for composing titles from directory + filename/header pieces.
- Example:
{
"option": {
"title": {
"compose": {
"dirDepth": -1,
"dirOrder": "leafToRoot",
"dirJoiner": " - ",
"titleJoiner": " - "
}
}
}
}
option.title.compose.dirDepth
- Type: integer
- Required: No
- Default: -1
- Allowed values: N/A
- Description: How many directory segments to include when composing titles. -1 typically means 'all'.
- Example:
{
"option": {
"title": {
"compose": {
"dirDepth": -1
}
}
}
}
option.title.compose.dirJoiner
- Type: string
- Required: No
- Default: " - "
- Allowed values: N/A
- Description: String used to join directory segments when composing titles.
- Example:
{
"option": {
"title": {
"compose": {
"dirJoiner": " - "
}
}
}
}
option.title.compose.dirOrder
- Type: string (enum)
- Required: No
- Default: "leafToRoot"
- Allowed values:
leafToRoot,rootToLeaf - Description: Order to arrange directory segments when composing automatic document titles ('leafToRoot' reverses the directory chain; 'rootToLeaf' keeps natural order).
- Example:
{
"option": {
"title": {
"compose": {
"dirOrder": "leafToRoot"
}
}
}
}
option.title.compose.titleJoiner
- Type: string
- Required: No
- Default: " - "
- Allowed values: N/A
- Description: String used to join the directory-derived portion with the page title portion.
- Example:
{
"option": {
"title": {
"compose": {
"titleJoiner": " - "
}
}
}
}
option.title.name
- Type: object
- Required: No
- Default: {"word": {"acronyms": ["API", "CPU", "CSS", "DB", "DOM", "FAQ", "FTP", "GPU", "HTML", "HTTP", "HTTPS", "ID", "IP", "JS", "JSON", "OS", "PDF", "RAM", "REST", ...
- Allowed values: N/A
- Description: Rules for converting raw names (filenames/headers) into human-readable titles.
- Example:
{
"option": {
"title": {
"name": {
"word": {
"acronyms": [
"API",
"CPU",
"CSS",
"DB",
"DOM",
"FAQ",
"FTP",
"GPU",
"HTML",
"HTTP",
"HTTPS",
"ID",
"IP",
"JS",
"JSON",
"OS",
"PDF",
"RAM",
"REST",
"SQL",
"SSH",
"SVG",
"UI",
"URL",
"UUID",
"UX",
"XML",
"2D",
"3D"
],
"lowercases": [
"a",
"an",
"and",
"as",
"at",
"but",
"by",
"for",
"from",
"in",
"into",
"like",
"near",
"nor",
"of",
"off",
"on",
"onto",
"or",
"out",
"over",
"so",
"the",
"to",
"up",
"upon",
"with",
"yet"
],
"propercases": [
"JavaScript",
"Synticore"
]
},
"case": {
"preserve": false,
"enforceCamel": true
},
"separator": {
"separatorsToSpace": [
"_",
"-"
],
"stripPatterns": [],
"wordSplitPattern": "[\\s_\\-]+",
"wordJoinSeparator": " "
}
}
}
}
}
option.title.name.case
- Type: object
- Required: No
- Default: {"preserve": false, "enforceCamel": true}
- Allowed values: N/A
- Description: Case-handling rules used during title generation.
- Example:
{
"option": {
"title": {
"name": {
"case": {
"preserve": false,
"enforceCamel": true
}
}
}
}
}
option.title.name.case.enforceCamel
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: If true, split CamelCase/PascalCase words into separate words when generating titles.
- Example:
{
"option": {
"title": {
"name": {
"case": {
"enforceCamel": true
}
}
}
}
}
option.title.name.case.preserve
- Type: boolean
- Required: No
- Default: false
- Allowed values: N/A
- Description: If true, preserve original casing from the source instead of enforcing title casing rules.
- Example:
{
"option": {
"title": {
"name": {
"case": {
"preserve": false
}
}
}
}
}
option.title.name.separator
- Type: object
- Required: No
- Default: {"separatorsToSpace": ["", "-"], "stripPatterns": [], "wordSplitPattern": "[\s\-]+", "wordJoinSeparator": " "}
- Allowed values: N/A
- Description: Separator/regex rules for splitting and joining title words.
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"separatorsToSpace": [
"_",
"-"
],
"stripPatterns": [],
"wordSplitPattern": "[\\s_\\-]+",
"wordJoinSeparator": " "
}
}
}
}
}
option.title.name.separator.separatorsToSpace
- Type: array
- Required: No
- Default: ["_", "-"]
- Allowed values: N/A
- Description: List container for separator characters converted to spaces before title formatting.
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"separatorsToSpace": [
"_",
"-"
]
}
}
}
}
}
option.title.name.separator.separatorsToSpace[]
- Type: string
- Required: No
- Default: "_"
- Allowed values: N/A
- Description: Characters that should be replaced with spaces before title generation (e.g., '_' and '-').
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"separatorsToSpace": [
"_"
]
}
}
}
}
}
option.title.name.separator.stripPatterns
- Type: array
- Required: No
- Default: []
- Allowed values: N/A
- Description: List container for regex/string patterns stripped during title formatting.
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"stripPatterns": []
}
}
}
}
}
option.title.name.separator.stripPatterns[]
- Type: unspecified
- Required: No
- Default: N/A
- Allowed values: N/A
- Description: Regex/string patterns to strip from titles before final formatting.
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"stripPatterns": [
"<value>"
]
}
}
}
}
}
option.title.name.separator.wordJoinSeparator
- Type: string
- Required: No
- Default: " "
- Allowed values: N/A
- Description: Separator used to join words into the final title string.
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"wordJoinSeparator": " "
}
}
}
}
}
option.title.name.separator.wordSplitPattern
- Type: string
- Required: No
- Default: "[\s_\-]+"
- Allowed values: N/A
- Description: Regex used to split raw text into words for title generation.
- Example:
{
"option": {
"title": {
"name": {
"separator": {
"wordSplitPattern": "[\\s_\\-]+"
}
}
}
}
}
option.title.name.word
- Type: object
- Required: No
- Default: {"acronyms": ["API", "CPU", "CSS", "DB", "DOM", "FAQ", "FTP", "GPU", "HTML", "HTTP", "HTTPS", "ID", "IP", "JS", "JSON", "OS", "PDF", "RAM", "REST", "SQL", "S...
- Allowed values: N/A
- Description: Word-level casing rules used during title generation.
- Example:
{
"option": {
"title": {
"name": {
"word": {
"acronyms": [
"API",
"CPU",
"CSS",
"DB",
"DOM",
"FAQ",
"FTP",
"GPU",
"HTML",
"HTTP",
"HTTPS",
"ID",
"IP",
"JS",
"JSON",
"OS",
"PDF",
"RAM",
"REST",
"SQL",
"SSH",
"SVG",
"UI",
"URL",
"UUID",
"UX",
"XML",
"2D",
"3D"
],
"lowercases": [
"a",
"an",
"and",
"as",
"at",
"but",
"by",
"for",
"from",
"in",
"into",
"like",
"near",
"nor",
"of",
"off",
"on",
"onto",
"or",
"out",
"over",
"so",
"the",
"to",
"up",
"upon",
"with",
"yet"
],
"propercases": [
"JavaScript",
"Synticore"
]
}
}
}
}
}
option.title.name.word.acronyms
- Type: array
- Required: No
- Default: ["API", "CPU", "CSS", "DB", "DOM", "FAQ", "FTP", "GPU", "HTML", "HTTP", "HTTPS", "ID", "IP", "JS", "JSON", "OS", "PDF", "RAM", "REST", "SQL", "SSH", "SVG", "...
- Allowed values: N/A
- Description: List container for words that should stay uppercase in generated titles.
- Example:
{
"option": {
"title": {
"name": {
"word": {
"acronyms": [
"API",
"CPU",
"CSS",
"DB",
"DOM",
"FAQ",
"FTP",
"GPU",
"HTML",
"HTTP",
"HTTPS",
"ID",
"IP",
"JS",
"JSON",
"OS",
"PDF",
"RAM",
"REST",
"SQL",
"SSH",
"SVG",
"UI",
"URL",
"UUID",
"UX",
"XML",
"2D",
"3D"
]
}
}
}
}
}
option.title.name.word.acronyms[]
- Type: string
- Required: No
- Default: "API"
- Allowed values: N/A
- Description: Acronyms that should remain uppercase when generating human-readable titles.
- Example:
{
"option": {
"title": {
"name": {
"word": {
"acronyms": [
"API"
]
}
}
}
}
}
option.title.name.word.lowercases
- Type: array
- Required: No
- Default: ["a", "an", "and", "as", "at", "but", "by", "for", "from", "in", "into", "like", "near", "nor", "of", "off", "on", "onto", "or", "out", "over", "so", "the", ...
- Allowed values: N/A
- Description: List container for words that should stay lowercase in generated titles.
- Example:
{
"option": {
"title": {
"name": {
"word": {
"lowercases": [
"a",
"an",
"and",
"as",
"at",
"but",
"by",
"for",
"from",
"in",
"into",
"like",
"near",
"nor",
"of",
"off",
"on",
"onto",
"or",
"out",
"over",
"so",
"the",
"to",
"up",
"upon",
"with",
"yet"
]
}
}
}
}
}
option.title.name.word.lowercases[]
- Type: string
- Required: No
- Default: "a"
- Allowed values: N/A
- Description: Words that should remain lowercase in generated titles (unless first/last).
- Example:
{
"option": {
"title": {
"name": {
"word": {
"lowercases": [
"a"
]
}
}
}
}
}
option.title.name.word.propercases
- Type: array
- Required: No
- Default: ["JavaScript", "Synticore"]
- Allowed values: N/A
- Description: List container for words that should keep exact casing in generated titles.
- Example:
{
"option": {
"title": {
"name": {
"word": {
"propercases": [
"JavaScript",
"Synticore"
]
}
}
}
}
}
option.title.name.word.propercases[]
- Type: string
- Required: No
- Default: "JavaScript"
- Allowed values: N/A
- Description: Words that should use exact casing when generating titles (e.g., JavaScript).
- Example:
{
"option": {
"title": {
"name": {
"word": {
"propercases": [
"JavaScript"
]
}
}
}
}
}
option.title.source
- Type: string (enum)
- Required: No
- Default: "filename"
- Allowed values:
filename,header - Description: Where automatic page titles come from: 'filename' uses the file name; 'header' uses the first
<h1>in the HTML when present. - Example:
{
"option": {
"title": {
"source": "filename"
}
}
}
Option.URL
Optional configuration block.
option.url
- Type: object
- Required: No
- Default: {"clean": true, "trailing_slash": true}
- Allowed values: N/A
- Description: URL formatting settings (clean URLs, trailing slash).
- Example:
{
"option": {
"url": {
"clean": true,
"trailing_slash": true
}
}
}
option.url.clean
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: If true, generate clean URLs (omit the .html extension).
- Example:
{
"option": {
"url": {
"clean": true
}
}
}
option.url.trailing_slash
- Type: boolean
- Required: No
- Default: true
- Allowed values: N/A
- Description: If true, include a trailing slash on directory index URLs.
- Example:
{
"option": {
"url": {
"trailing_slash": true
}
}
}
Option.Watch
Optional configuration block.
option.watch
- Type: object
- Required: No
- Default: {"delay_browser": 1250, "delay_change": 750}
- Allowed values: N/A
- Description: Watch-mode debounce/delay settings for change detection, dependent rebuild triggering, and browser reload.
- Example:
{
"option": {
"watch": {
"delay_browser": 1250,
"delay_change": 750
}
}
}
option.watch.delay_browser
- Type: integer
- Required: No
- Default: 1250
- Allowed values: N/A
- Description: Browser reload debounce/delay in milliseconds after changes are detected.
- Example:
{
"option": {
"watch": {
"delay_browser": 1250
}
}
}
option.watch.delay_change
- Type: integer
- Required: No
- Default: 750
- Allowed values: N/A
- Description: Change-detection debounce/delay in milliseconds for watch mode event batching and follow-up dependent task scheduling.
- Example:
{
"option": {
"watch": {
"delay_change": 750
}
}
}