Diagnostics

Every problem Ascribe reports, with its code and fix.

Every problem Ascribe reports, with its code, its name, and how to fix it. ascribe check, ascribe build, and the editor report the same diagnostics, with the same codes.

  • An error makes ascribe check fail, and stops ascribe build from writing anything. A warning doesn’t, unless you pass --deny-warnings.
  • A file-level diagnostic is about one file on its own. A page-level diagnostic is about a page after its includes are expanded and a build’s modes are applied, so it can depend on the build; the message names the builds it appears in.
  • A diagnostic about ascribe.toml (a name that starts with model-) stops everything else when it’s an error: every other check depends on the content model.
  • In the messages below, {name} stands for a value filled in from your source.

In the editor, many diagnostics offer a quick fix. See Editing.

Source files

Code Name Severity Level
ASC001 attribute-unknown-key Error File
ASC002 attribute-type-mismatch Error File
ASC003 attribute-bare-key Error File
ASC004 attribute-unquoted-reserved Error File
ASC005 directive-unknown Warning File
ASC006 directive-primary Error File
ASC007 container-unclosed Error File
ASC008 container-colon-unexpected Error File
ASC009 container-colon-missing Error File
ASC010 container-open-at-arm Error File
ASC011 end-unmatched Error File
ASC012 end-indent-mismatch Error File
ASC013 container-nesting-deep Warning File
ASC014 binding-no-block Error File
ASC015 binding-heading Error File
ASC016 binding-blank-line Warning File
ASC017 binding-not-section-top Error File
ASC018 title-not-accepted Warning File
ASC019 title-dot-space Warning File
ASC020 id-duplicate Error Page
ASC021 include-target-missing Error File
ASC022 include-id-missing Error Page
ASC023 include-cycle Error Page
ASC024 variant-no-arm-survives Warning Page
ASC025 variant-unknown Error File
ASC026 variant-mixed-arms Error File
ASC027 variant-arm-kind Error File
ASC028 variant-no-shared-dimension Error File
ASC029 available-unknown Error File
ASC030 available-history-order Error File
ASC031 available-versionless Error File
ASC032 available-exceeds-scope Error Page
ASC033 steps-not-ordered-list Error File
ASC034 details-title-missing Error File
ASC035 widget-schema Error File
ASC036 link-target-missing Error File
ASC037 link-id-missing Error Page
ASC038 link-to-fragment Error File
ASC039 link-id-in-fragment Error Page
ASC040 link-id-removed Error Page
ASC041 link-route Warning File
ASC042 image-source-missing Error File
ASC043 image-alt-missing Warning File
ASC044 phrase-undeclared Warning File
ASC045 heading-phrase-without-id Warning File
ASC046 heading-duplicate-without-id Warning Page
ASC047 frontmatter-unknown-key Error File
ASC048 frontmatter-missing-field Error File
ASC049 frontmatter-type-mismatch Error File
ASC050 frontmatter-reserved-in-fragment Error File
ASC051 content-type-unresolved Error File
ASC052 list-ended-by-directive Warning File
ASC053 directive-indented-code Warning File
ASC054 steps-numbering-continued Warning File
ASC055 attribute-syntax Error File
ASC056 attribute-duplicate-key Error File
ASC057 available-syntax Error File
ASC058 id-invalid Error File
ASC059 image-attribute-missing Error File
ASC120 directive-extra-text Error File
ASC121 link-page-dropped Error Page
ASC122 frontmatter-syntax Error File
ASC123 source-unreadable Error File
ASC124 heading-empty-slug Warning File
ASC125 include-heading-without-id Warning File
ASC126 phrase-double-braces Warning File
ASC127 snippet-address Error File
ASC128 snippet-source-unknown Error File
ASC129 snippet-file-missing Error File
ASC130 snippet-file-not-text Error File
ASC131 snippet-region-missing Error File
ASC132 snippet-tags Error File

Attributes

ASC001 attribute-unknown-key

Error · file level · SPEC §3.3

When: Unknown key for the directive or image.

Message: @{name} has no attribute {key}; its attributes are: {keys}

Fix: Fix the key’s spelling, or remove it. To accept a new image attribute, declare it in [images.attributes]; for a project widget, in its attributes.

ASC002 attribute-type-mismatch

Error · file level · SPEC §3.3

When: Value doesn’t match the key’s declared type.

Message: {key} must be {expected}, but it’s “{value}”

Fix: Give a value of the key’s declared type: one of the enumeration’s values, true or false for a boolean, or a plain number such as 600 for a number.

ASC003 attribute-bare-key

Error · file level · SPEC §3.3

When: Bare key without a value.

Message: {key} needs a value, such as {key}=<value>; booleans are written out too: {key}=true

Fix: Give the key a value: key=value. Booleans are written out too: open=true.

ASC004 attribute-unquoted-reserved

Error · file level · SPEC §3.3

When: Unquoted value containing a reserved character.

Message: the value of {key} contains {character}, so it must be quoted: {key}="{value}"

Fix: Quote the value: label="Using other images".

ASC055 attribute-syntax

Error · file level · SPEC §3.3

When: Attribute block that doesn’t parse (such as an unclosed quote or brace, or = with no value).

Message: this attribute block isn’t valid: {detail}

Fix: Fix the attribute block: close every quote and brace, give every = a value, and separate pairs with commas.

ASC056 attribute-duplicate-key

Error · file level · SPEC §3.3

When: The same key given more than once.

Message: {key} is given more than once; give each attribute once

Fix: Give the key once. For several values of a set-valued key, write a value set: platform=cloud|on-prem.

Directives

ASC005 directive-unknown

Warning · file level · SPEC §3.2

When: Directive-shaped line (@word followed by {, :, or end of line) with an unknown name.

Message: @{name} isn’t a known directive, so this line is text; write \@{name} if that’s what you mean

Fix: Correct the directive’s name, or declare a project widget with that name in ascribe.toml. If the line is meant as text, write \@ at its start.

ASC006 directive-primary

Error · file level · SPEC §3.4

When: Primary given to a directive that takes none, or a required primary missing.

Message: @{name} doesn’t take a primary; remove the text after its colon

Fix: Remove the text after the colon, or add the primary the directive needs, such as the path in @include: setup.md.

ASC120 directive-extra-text

Error · file level · SPEC §3.1

When: Text on a directive line that fits no part of it: after the name or attributes, after @end, or after an identifier primary.

Message: @{name}’s primary is a single word, so {extra} isn’t part of it; remove it

Fix: Remove the extra text. Text a directive should show belongs in its primary, after the colon, or in its content.

Container

ASC007 container-unclosed

Error · file level · SPEC §3.5

When: Container not closed before its enclosing block ends.

Message: the @{name} container opened here isn’t closed before {end}; add @end where it should end

Fix: Add an @end line where the container’s content ends, indented like its opener.

ASC008 container-colon-unexpected

Error · file level · SPEC §3.5

When: Trailing : on a directive with no container form.

Message: @{name} has no container form, so its line can’t end in a colon; remove the trailing :

Fix: Remove the trailing colon. The directive applies to what its binding says, such as the block after it.

ASC009 container-colon-missing

Error · file level · SPEC §3.5

When: Container-only directive without a trailing :.

Message: @{name} is always a container; end its line with a colon to open it

Fix: End the opener’s line with a colon, and close the container with @end.

ASC010 container-open-at-arm

Error · file level · SPEC §3.6

When: Container still open when the next arm of its group begins (reported at that arm’s opener).

Message: the @{name} container opened on line {line} is still open where this @{group} arm begins; close it with @end first

Fix: Close the inner container with @end before the next arm’s opener.

ASC011 end-unmatched

Error · file level · SPEC §3.5

When: End line with no open container.

Message: this @end has no open container to close; if a directive above should be a container, end its line with a colon

Fix: Remove the @end, or make the directive it should close a container by ending that directive’s line with a colon.

ASC012 end-indent-mismatch

Error · file level · SPEC §3.9

When: End line indented differently from its opener.

Message: this @end is indented differently from the @{name} it would close; indent them the same

Fix: Indent the @end exactly as its opener is indented.

ASC013 container-nesting-deep

Warning · file level · SPEC §3.10

When: Nesting deeper than two levels.

Message: containers are nested {depth} levels deep here; more than two is hard to follow, so flatten them, for example with a following-block form

Fix: Flatten the structure: use a directive’s following-block form instead of a container, or split the content into sections.

Binding

ASC014 binding-no-block

Error · file level · SPEC §3.8

When: Following-block directive with no following block in its container.

Message: @{name} applies to the block after it, but nothing follows it in this {container}

Fix: Put the block the directive applies to directly below it, in the same container, or remove the directive.

ASC015 binding-heading

Error · file level · SPEC §3.8

When: Following-block directive bound to a heading.

Message: @{name} applies to the next block, and the next block here is a heading; a directive can’t be bound to a heading

Fix: Move the directive below the heading, directly above the block it describes.

ASC016 binding-blank-line

Warning · file level · SPEC §3.8

When: Blank line between a following-block directive and its block.

Message: a blank line separates @{name} from the block it applies to; remove it so the directive touches its block

Fix: Remove the blank line, so the directive touches its block. ascribe fmt does this.

ASC017 binding-not-section-top

Error · file level · SPEC §3.8

When: Heading-bound directive that isn’t at the top of its section.

Message: @{name} applies to its heading’s section, so it must come directly under the heading, before any other content

Fix: Move the directive directly under its heading, before any other content of the section.

Title

ASC018 title-not-accepted

Warning · file level · SPEC §3.7

When: Title given to a directive that doesn’t accept one.

Message: this line looks like a title, but @{name} below it doesn’t take one, so it’s text; if that’s intended, start it with \. to silence this

Fix: Remove the title line, or start it with \. if it’s text that begins with a dot.

ASC019 title-dot-space

Warning · file level · SPEC §3.7

When: A . line (dot and space) directly above a directive that accepts a title.

Message: a title line has no space after its dot; write .{title} to make this the title of the @{name} below

Fix: Remove the space after the dot (.Title) to make the line a title, or separate it from the directive with a blank line if it’s text.

@id

ASC020 id-duplicate

Error · page level · SPEC §4.1

When: Duplicate id on a page, including ids from included content.

Message: the id {id} is used more than once on this page; every id on a page must be unique

Fix: Give one of the headings a different @id. When the second id comes from an included fragment, change it in the page or in the fragment, or include the fragment once.

ASC058 id-invalid

Error · file level · SPEC §4.1

When: Id containing characters other than letters, digits, hyphens, underscores, and periods.

Message: {id} isn’t a valid id: use only letters, digits, hyphens, underscores, and periods

Fix: Use only letters, digits, hyphens, underscores, and periods in the id.

@include

ASC021 include-target-missing

Error · file level · SPEC §4.2

When: Target file doesn’t exist.

Message: the included file {path} doesn’t exist

Fix: Fix the path. It’s relative to the including file, or to the content root when it starts with /, and the file must be a Markdown source file inside the content root.

ASC022 include-id-missing

Error · page level · SPEC §4.2

When: Target id doesn’t exist in the target file.

Message: {path} has no heading with the id {id}

Fix: Fix the #id, or give the heading you want to include that id with @id.

ASC023 include-cycle

Error · page level · SPEC §4.2

When: Include cycle.

Message: including {path} here creates a cycle: {cycle}

Fix: Remove one of the includes in the cycle. A section can’t include itself, directly or through other files.

ASC125 include-heading-without-id

Warning · file level · SPEC §4.2

When: {heading=false} without an #id, which has no effect.

Message: heading=false only applies to an include of a section (file.md#id), so it does nothing here; remove it, or name the section

Fix: Remove heading=false, or include a section: file.md#id.

@variant

ASC024 variant-no-arm-survives

Warning · page level · SPEC §9.3

When: No arm of a group survives a build’s selection.

Message: build {build} removes every arm of this @variant group, so none of its content is published in that build

Fix: Add an arm for the build’s selection, or check the build’s variants in ascribe.toml. If the content is meant to be absent from that build, the warning can be ignored.

ASC025 variant-unknown

Error · file level · SPEC §4.3

When: Unknown dimension or value.

Message: {dimension} isn’t a declared dimension; the dimensions are: {dimensions}

Fix: Use a dimension and value declared in [dimensions], or declare them there.

ASC026 variant-mixed-arms

Error · file level · SPEC §4.3

When: Group mixes labeled and dimensional arms.

Message: this group mixes labeled and dimensional arms; give every arm attributes, or every arm a title

Fix: Make every arm of the group dimensional (attributes, such as {pm=npm}) or every arm labeled (a title line).

ASC027 variant-arm-kind

Error · file level · SPEC §4.3

When: Arm has both a title and attributes, or neither.

Message: this @variant arm has both a title and attributes; use one or the other

Fix: Give the arm either attributes or a title line: one, not both and not neither.

ASC028 variant-no-shared-dimension

Error · file level · SPEC §4.3

When: Dimensional arms share no dimension key.

Message: the arms of this group have no dimension in common; every arm must name at least one of the same dimensions

Fix: Name at least one dimension that every arm of the group shares.

@available

ASC029 available-unknown

Error · file level · SPEC §4.4

When: Unknown target or state.

Message: {name} isn’t a declared dimension value, dimension, or feature key

Fix: Use a declared dimension value, dimension, feature key, or lifecycle state, or declare the name in ascribe.toml.

ASC030 available-history-order

Error · file level · SPEC §4.4

When: History out of chronological order.

Message: the history for {target} must be in chronological order, but {later} comes before {earlier}

Fix: List the target’s states oldest first: self-managed (preview 3.3, ga 3.5).

ASC031 available-versionless

Error · file level · SPEC §4.4

When: Versions given for a versionless target.

Message: {target} is versionless, so it takes a state but no version

Fix: Remove the version. A versionless target, or a dimension name, takes a state but no version: cloud beta.

ASC032 available-exceeds-scope

Error · page level · SPEC §4.4

When: Spec exceeds its enclosing scope.

Message: this availability includes {target}, which the enclosing {scope} doesn’t

Fix: Narrow this availability to what the enclosing page or section allows, or widen the enclosing one.

ASC057 available-syntax

Error · file level · SPEC §4.4

When: Spec that doesn’t parse, in a directive or in available frontmatter.

Message: “{spec}” isn’t a valid availability spec: {detail}

Fix: Fix the availability spec. Its syntax is in the directive reference.

@steps

ASC033 steps-not-ordered-list

Error · file level · SPEC §4.6

When: Bound block isn’t an ordered list.

Message: @steps must be followed by an ordered list (1., 2., …), but the next block is {found}

Fix: Put an ordered list directly below @steps.

@details

ASC034 details-title-missing

Error · file level · SPEC §4.7

When: Missing title.

Message: @details needs a title line directly above it: the text readers see while the content is collapsed

Fix: Add a title line directly above @details: .Show the full configuration.

Project widget

ASC035 widget-schema

Error · file level · SPEC §6

When: Violates its declared schema.

Message: @{name} doesn’t match its declaration in ascribe.toml: {detail}

Fix: Change the widget’s use to match its declaration in [widgets], or change the declaration.

Error · file level · SPEC §5.2

When: Target file doesn’t exist.

Message: {path} doesn’t exist

Fix: Fix the path, or create the file. Names must match exactly, including case, and the file must be inside the project.

Error · page level · SPEC §5.2

When: Target id doesn’t exist in the target file.

Message: {path} has no heading with the id {id}

Fix: Fix the #id, or give the heading you mean that id with @id.

Error · file level · SPEC §4.2

When: Target is a fragment.

Message: {path} is a fragment, which isn’t published on its own; link to a page that includes it

Fix: Link to a page that includes the fragment.

Error · page level · SPEC §4.2

When: Target id exists only inside a fragment the target page includes.

Message: {id} is a heading in the fragment {fragment}, not in {path} itself; link to a page, not to an id that exists only inside a fragment

Fix: Link to the page without the #id, or to a heading the page itself contains.

Error · page level · SPEC §9.3

When: Target id is removed by a build.

Message: build {build} removes the heading {id} from {path}, so this link would be broken in that build

Fix: Put the link in a @variant arm that the same build removes, or keep the heading in that build.

Warning · file level · SPEC §5.2

When: Destination is a route rather than a file path.

Message: this looks like the published route of {page}; link to the file instead: {suggestion}

Fix: Link to the page’s file, not its URL: Ascribe writes each output’s URLs. The editor’s quick fix makes the change.

Error · page level · SPEC §5.2

When: Target page isn’t published by a build.

Message: build {build} doesn’t publish {path}, so this link would be broken in that build; move the link into a @variant arm the build removes

Fix: Put the link in a @variant arm that the same build removes, or publish the page in that build.

Images

ASC042 image-source-missing

Error · file level · SPEC §5.3

When: Local source doesn’t exist.

Message: the image {path} doesn’t exist

Fix: Fix the path, or add the image. Names must match exactly, including case, and the file must be inside the project.

ASC043 image-alt-missing

Warning · file level · SPEC §5.3

When: Missing alt text.

Message: this image has no alt text; describe it between the brackets for readers who can’t see it

Fix: Describe the image between the brackets: ![The settings page](../reference/settings.png).

ASC059 image-attribute-missing

Error · file level · SPEC §5.3

When: Required image attribute missing.

Message: this image is missing the required attribute {key}

Fix: Add the attribute in the block after the image: ![Alt](../reference/image.png){width=600}.

Phrases

ASC044 phrase-undeclared

Warning · file level · SPEC §5.1

When: {key} in prose whose key isn’t declared.

Message: {key} isn’t a declared phrase, so its braces are literal text; declare it in [phrases], or write \{ to keep it literal

Fix: Declare the key in [phrases] if it’s meant as a phrase. Otherwise write \{ to keep the braces as text.

ASC126 phrase-double-braces

Warning · file level · SPEC §5.1

When: A declared {key} directly between two more braces ({{key}}), usually a substitution left over from another tool.

Message: {key} is a declared phrase between two more braces, so its value appears between literal braces; remove the outer braces, or write \{ to keep them

Fix: Remove the outer braces, or write \{ for a brace that’s meant.

Headings

ASC045 heading-phrase-without-id

Warning · file level · SPEC §5.5

When: No @id, and the heading contains a phrase.

Message: this heading contains a phrase, so its id changes whenever the phrase’s value does; give it a stable id with @id

Fix: Give the heading a stable id: an @id line directly under it.

ASC046 heading-duplicate-without-id

Warning · page level · SPEC §5.5

When: No @id, and the heading’s slug is the same as another heading’s on the page, so its id is numbered.

Message: this heading’s text gives the same slug as another heading on the page, so its id is numbered and can change when headings move; give it a stable id with @id

Fix: Give the heading a stable id: an @id line directly under it.

ASC124 heading-empty-slug

Warning · file level · SPEC §5.5

When: No @id, and the heading’s slug is empty (its text is only punctuation or emoji).

Message: this heading’s text gives it an empty id, so nothing can link to it reliably; give it an @id

Fix: Give the heading an id: an @id line directly under it.

Frontmatter

ASC047 frontmatter-unknown-key

Error · file level · SPEC §7.2

When: Key the file’s content type or the fragment schema doesn’t declare, other than a reserved key on a page.

Message: {key} isn’t a field of the content type {type}

Fix: Fix the key’s spelling or remove it, or declare the field in the content type’s frontmatter ([fragments.frontmatter] for a fragment).

ASC048 frontmatter-missing-field

Error · file level · SPEC §7.2

When: Required field missing.

Message: the required field {field} is missing; the content type {type} needs it

Fix: Add the field to the page’s frontmatter, or give it a default in the content type.

ASC049 frontmatter-type-mismatch

Error · file level · SPEC §7.2

When: Value doesn’t match the field’s declared type.

Message: {field} must be {expected}, but it’s {found}

Fix: Give a value of the field’s type. Quote a string that YAML would read as something else: version: "3.10".

ASC050 frontmatter-reserved-in-fragment

Error · file level · SPEC §2.2

When: Reserved key (available, variant) on a fragment.

Message: {key} is reserved for pages, and fragments can’t use it

Fix: Remove the key from the fragment’s frontmatter. Use @available or @variant in the fragment’s content, or set the key on the pages that include it.

ASC051 content-type-unresolved

Error · file level · SPEC §7.2

When: Page matches more than one content type, or matches none and there’s no default type.

Message: this page matches the content types {types}, but a page can match only one; make their files patterns exclusive

Fix: Make the content types’ files patterns match each page once, or mark one type default = true for the pages no pattern matches.

ASC122 frontmatter-syntax

Error · file level · SPEC §2.1

When: Frontmatter that isn’t valid YAML.

Message: the frontmatter isn’t valid YAML: {detail}

Fix: Fix the YAML between the --- lines.

Lists

ASC052 list-ended-by-directive

Warning · file level · SPEC §3.9

When: Unindented directive line ends a list.

Message: this unindented @{name} ends the list above it; indent it to the list item’s content to keep it in the item

Fix: Indent the directive to the list item’s content, to keep it in the item. To end the list there, put a blank line before the directive.

ASC053 directive-indented-code

Warning · file level · SPEC §3.9

When: Directive line over-indented into an indented code block.

Message: this @{name} is indented four or more spaces past its container’s content, so it’s part of an indented code block, not a directive

Fix: Indent the directive less, to its container’s content. If it’s meant as code, put it in a fenced code block.

ASC054 steps-numbering-continued

Warning · file level · SPEC §4.6

When: An ordered list continues the numbering of a list bound by @steps right after it ends (usually an unindented directive split the list).

Message: this list continues the numbering of the @steps list above it, which usually means an unindented line split that list; indent the line to keep one list

Fix: Indent the line that splits the list, so the steps stay one list.

Files

ASC123 source-unreadable

Error · file level · SPEC §2.1

When: Source file that can’t be read, or isn’t valid UTF-8.

Message: this file can’t be read: {reason}

Fix: Check the file’s permissions, and save it as UTF-8.

@snippet

ASC127 snippet-address

Error · file level · SPEC §4.8

When: Address that isn’t <source>:<path>, optionally with #<region>.

Message: {address} isn’t a snippet address: {detail}; write <source>:<path>, optionally with #<region>

Fix: Write the address as <source>:<path>, with the path relative to the source’s folder and no .., and add #<region> for a region. A file outside the project’s folder can only be named through a source: declare one in [sources.<name>].

ASC128 snippet-source-unknown

Error · file level · SPEC §4.8

When: Source the content model doesn’t declare.

Message: there’s no source named {source}; the declared sources are: {sources}

Fix: Fix the source’s name, or declare it in ascribe.toml: [sources.<name>] with a path.

ASC129 snippet-file-missing

Error · file level · SPEC §4.8

When: File doesn’t exist, or its source doesn’t include it.

Message: {path} doesn’t exist in source {source}

Fix: Fix the path, which is relative to the source’s folder. For a file the source doesn’t include, add a pattern that matches it to the source’s include, or take it out of ignore. For a link, name the file it leads to through a source that includes it.

ASC130 snippet-file-not-text

Error · file level · SPEC §4.8

When: File isn’t text.

Message: {path} isn’t text ({reason}), so it can’t be a snippet

Fix: Take the snippet from a text file: UTF-8, with no NUL characters.

ASC131 snippet-region-missing

Error · file level · SPEC §4.8

When: Region doesn’t exist in the file.

Message: {path} has no region {region}; its regions are: {regions}

Fix: Fix the region’s name, or mark the region in the file with :snippet-start: <name> and :snippet-end: comments. A file whose extension isn’t in the comment table can only be used whole.

ASC132 snippet-tags

Error · file level · SPEC §4.8

When: The file’s tags are unbalanced, name a region twice, or use a reserved tag.

Message: {path} can’t be used: {tag} on line {line} is never closed

Fix: Fix the tags in the code file: give every -start tag its -end, give each region its own name, and remove tags Ascribe reserves for later (state, replace, uncomment, emphasize).

The content model

Code Name Severity Level
ASC060 model-toml-syntax Error File
ASC061 model-unknown-key Error File
ASC062 model-missing-key Error File
ASC063 model-wrong-type Error File
ASC064 model-invalid-value Error File
ASC065 model-spec-unsupported Error File
ASC066 model-invalid-name Error File
ASC067 model-empty-text Error File
ASC068 model-path-absolute Error File
ASC069 model-content-root-missing Error File
ASC070 model-output-overlaps-content Error File
ASC071 model-type-multiple-defaults Error File
ASC072 model-type-unreachable Error File
ASC073 model-type-title Error File
ASC074 model-field-reserved Error File
ASC075 model-type-syntax Error File
ASC076 model-type-fields Error File
ASC077 model-enum-values Error File
ASC078 model-set-token Error File
ASC079 model-default-type Error File
ASC080 model-phrases-field-type Error File
ASC081 model-pattern-syntax Error File
ASC082 model-name-multiple-roles Error File
ASC083 model-name-case Warning File
ASC084 model-dimension-empty Error File
ASC085 model-dimension-value-duplicate Error File
ASC086 model-dimension-value-shared Error File
ASC087 model-label-undeclared Error File
ASC088 model-versionless-undeclared Error File
ASC089 model-lifecycle-available-required Error File
ASC090 model-lifecycle-ga-unavailable Error File
ASC091 model-note-label-required Error File
ASC092 model-availability-syntax Error File
ASC093 model-availability-unknown-name Error File
ASC094 model-availability-versionless Error File
ASC095 model-availability-history-order Error File
ASC096 model-feature-nested Error File
ASC097 model-phrase-value-type Error File
ASC098 model-glossary-duplicate-term Error File
ASC099 model-glossary-link Error File
ASC100 model-widget-reserved-name Error File
ASC101 model-widget-forms Error File
ASC102 model-widget-binding Error File
ASC103 model-widget-container-primary Error File
ASC104 model-widget-groupable-form Error File
ASC105 model-widget-plain-content Error File
ASC106 model-consumer-unsupported Error File
ASC107 model-consumer-site Error File
ASC108 model-consumer-base-path Error File
ASC109 model-build-name-case Error File
ASC110 model-build-variants Error File
ASC111 model-build-unknown-dimension Error File
ASC112 model-build-unknown-value Error File
ASC113 model-build-availability Error File
ASC114 model-build-filter-target Error File
ASC115 model-build-filter-version Error File
ASC116 model-build-filter-excluded Warning File
ASC117 model-editor-build-unknown Error File
ASC118 model-editor-build-required Error File
ASC119 model-attribute-reserved Error File
ASC133 model-source-path-missing Error File
ASC134 model-source-outside-repository Error File
ASC135 model-source-remote Error File

The file

ASC060 model-toml-syntax

Error · file level · SPEC §7.1

Message: ascribe.toml isn’t valid TOML: {detail}

Fix: Fix the TOML syntax at the place the message names.

ASC061 model-unknown-key

Error · file level · SPEC §7.1

Message: unknown key {key} in [{table}]

Fix: Fix the key’s spelling, or remove it.

ASC062 model-missing-key

Error · file level · SPEC §7.1

Message: [{table}] is missing the required key {key}

Fix: Add the key.

ASC063 model-wrong-type

Error · file level · SPEC §7.1

Message: {key} must be {expected}, but it’s {found}

Fix: Give the key a value of the expected type. Strings are always quoted in TOML.

ASC064 model-invalid-value

Error · file level · SPEC §7.1

Message: {key} can’t be “{value}”; use one of: {values}

Fix: Use one of the values the message lists.

ASC065 model-spec-unsupported

Error · file level · SPEC §11

Message: ascribe.toml targets spec version “{spec}”, but this processor implements {supported}

Fix: Set spec = "0.1", the specification version this release implements, or update Ascribe.

ASC066 model-invalid-name

Error · file level · SPEC §7.2

Message: {name} isn’t a valid {role} name: {rule}

Fix: Rename it following the rule the message gives.

ASC067 model-empty-text

Error · file level · SPEC §7.2

Message: {key} can’t be empty

Fix: Give the key a value, or remove it.

[project]

ASC068 model-path-absolute

Error · file level · SPEC §2.2

Message: {key} must be a path relative to ascribe.toml, not an absolute path

Fix: Write the path relative to the directory of ascribe.toml.

ASC069 model-content-root-missing

Error · file level · SPEC §2.2

Message: content root {path} doesn’t exist

Fix: Create the directory, or correct [project] content-root.

ASC070 model-output-overlaps-content

Error · file level · SPEC §9.4

Message: output directory {output} is inside content root {content}; move it outside, or builds will read their own output as source

Fix: Keep the output directory and the content root apart: neither inside the other, and not the same. The default output directory, .ascribe/build, is outside the default content root, docs.

[sources]

ASC133 model-source-path-missing

Error · file level · SPEC §7.3

Message: the folder of source {source}, {path}, doesn’t exist

Fix: Fix path, which is relative to the folder ascribe.toml is in, or create the folder.

ASC134 model-source-outside-repository

Error · file level · SPEC §7.3

Message: the folder of source {source}, {path}, is outside the git repository the project is in

Fix: Give the source a path inside the project’s repository. A source in another repository isn’t supported yet.

ASC135 model-source-remote

Error · file level · SPEC §7.3

Message: {key} is reserved for a source in another repository, which this version of Ascribe doesn’t support; give the source a path in this repository instead

Fix: Remove git and branch, and give the source the path of a folder in this repository.

Content types, fields, and attributes

ASC071 model-type-multiple-defaults

Error · file level · SPEC §7.2

Message: only one content type can be the default, but {a} and {b} both set default = true

Fix: Keep default = true on one content type only.

ASC072 model-type-unreachable

Error · file level · SPEC §7.2

Message: content type {type} has no files and isn’t the default, so no page can use it

Fix: Give the type files patterns, make it the default type, or remove it.

ASC073 model-type-title

Error · file level · SPEC §7.2

Message: content type {type} must declare title = “string”: it’s the page title, used for empty link text

Fix: Declare title = "string" in the type’s frontmatter.

ASC074 model-field-reserved

Error · file level · SPEC §2.1

Message: {field} is reserved by the Ascribe spec and every page accepts it; remove it from [types.{type}.frontmatter]

Fix: Remove the field from the type. Every page accepts it already, with the meaning the specification gives it.

ASC075 model-type-syntax

Error · file level · SPEC §7.2

Message: “{type}” isn’t a valid {kind} type: {detail}

Fix: Fix the type. The types are string, number, boolean, date, enum(a, b), list(T), and, for attributes, set(T); a ? at the end makes one optional.

ASC076 model-type-fields

Error · file level · SPEC §7.2

Message: field {field} is an object, so it needs fields

Fix: Give an object field its fields, or remove fields from a field that isn’t an object.

ASC077 model-enum-values

Error · file level · SPEC §7.2

Message: {field} has an empty enumeration

Fix: List the enumeration’s values once each, in enum(a, b) or in values, not both.

ASC078 model-set-token

Error · file level · SPEC §3.3

Message: “{value}” can’t be in a value set: members can’t contain spaces or any of , | { } = “

Fix: Remove spaces and the characters , | { } = " from the value, or make the attribute a single value instead of a set.

ASC079 model-default-type

Error · file level · SPEC §7.2

Message: default for {field} must be {type}, but it’s {found}

Fix: Give a default of the field’s type.

ASC080 model-phrases-field-type

Error · file level · SPEC §5.1

Message: phrases = true only works on string and list(string) fields, and {field} is “{type}”

Fix: Remove phrases = true, or make the field a string or list(string).

ASC081 model-pattern-syntax

Error · file level · SPEC §2.2

Message: “{pattern}” isn’t a valid pattern: {detail}

Fix: Fix the pattern. Patterns are relative to the content root, with no leading / and no .. segment.

ASC119 model-attribute-reserved

Error · file level · SPEC §7.2

Message: {key} can’t be an image attribute: HTML already uses it on the <img> element

Fix: Rename the attribute.

Dimensions, names, lifecycle states, notes, and features

ASC082 model-name-multiple-roles

Error · file level · SPEC §7.2

Message: {name} is used as both {role-a} and {role-b}; a name can have only one role, so availability specs stay unambiguous

Fix: Rename one of them, so that each name has one role.

ASC083 model-name-case

Warning · file level · SPEC §7.2

Message: {a} and {b} differ only in case; names are case-sensitive, so they’re easy to confuse

Fix: Rename one of them, so they differ by more than case.

ASC084 model-dimension-empty

Error · file level · SPEC §7.2

Message: dimension {dimension} has no values

Fix: Add the dimension’s values, or remove the dimension.

ASC085 model-dimension-value-duplicate

Error · file level · SPEC §7.2

Message: {value} appears twice in dimensions.{dimension}.values

Fix: Remove the repeated value.

ASC086 model-dimension-value-shared

Error · file level · SPEC §7.2

Message: {value} is a value of both {a} and {b}; a value can belong to only one dimension

Fix: Rename the value in one of the dimensions.

ASC087 model-label-undeclared

Error · file level · SPEC §7.2

Message: dimensions.{dimension}.labels has a label for {value}, which isn’t one of its values: {values}

Fix: Correct the label’s key, or add the value to the dimension’s values.

ASC088 model-versionless-undeclared

Error · file level · SPEC §7.2

Message: dimensions.{dimension}.versionless lists {value}, which isn’t one of its values: {values}

Fix: Correct the entry, or add the value to the dimension’s values.

ASC089 model-lifecycle-available-required

Error · file level · SPEC §7.2

Message: new lifecycle state {state} must set available = true or available = false

Fix: Add available = true or available = false to the state.

ASC090 model-lifecycle-ga-unavailable

Error · file level · SPEC §7.2

Message: ga must count as available: content with no lifecycle state is ga

Fix: Remove available = false from [lifecycle.ga].

ASC091 model-note-label-required

Error · file level · SPEC §4.5

Message: new note type {type} needs a label, such as label = “{Type}”

Fix: Give the note type a label.

ASC092 model-availability-syntax

Error · file level · SPEC §4.4

Message: feature {key}: “{spec}” isn’t a valid availability spec: {detail}

Fix: Fix the feature’s available spec. Its syntax is in the directive reference.

ASC093 model-availability-unknown-name

Error · file level · SPEC §4.4

Message: feature {key}: {name} isn’t a declared dimension value or dimension name

Fix: Use a declared dimension value, dimension, or lifecycle state, or declare the name.

ASC094 model-availability-versionless

Error · file level · SPEC §4.4

Message: feature {key}: {target} is versionless, so it takes a state but no version

Fix: Remove the version. A versionless target, or a dimension name, takes a state but no version.

ASC095 model-availability-history-order

Error · file level · SPEC §4.4

Message: feature {key}: the history for {target} must be in chronological order, but {later} comes before {earlier}

Fix: List the target’s states oldest first.

ASC096 model-feature-nested

Error · file level · SPEC §4.4

Message: feature {key}: available must be an availability spec, not another feature ({other})

Fix: Write the feature’s availability out in full. One feature can’t refer to another.

Phrases and the glossary

ASC097 model-phrase-value-type

Error · file level · SPEC §5.1

Message: phrase {key} must be a quoted string, but it’s {found}; write {key} = “{value}”

Fix: Quote the value.

ASC098 model-glossary-duplicate-term

Error · file level · SPEC §5.4

Message: “{text}” is declared by both glossary terms {a} and {b}

Fix: Remove the text from one of the terms, or make the terms distinct.

Error · file level · SPEC §5.4

Message: glossary term {id} links to {path}, which doesn’t exist

Fix: Fix the link, or link to a page that includes the fragment.

Widgets

ASC100 model-widget-reserved-name

Error · file level · SPEC §6

Message: widget name {name} is reserved: names starting with ascribe- belong to Ascribe’s element library

Fix: Rename the widget, for example with your project’s name as its prefix: quill-aside.

ASC101 model-widget-forms

Error · file level · SPEC §6

Message: forms must be [“line”], [“container”], or [“line”, “container”]

Fix: Set forms to ["line"], ["container"], or ["line", "container"].

ASC102 model-widget-binding

Error · file level · SPEC §6

Message: widget {name} has a line form, so it needs a binding: “self”, “heading”, “block”, or “heading-or-block”

Fix: Give a widget with a line form a binding. Remove binding from a container-only widget.

ASC103 model-widget-container-primary

Error · file level · SPEC §6

Message: widget {name} has a container form, whose opener has no primary, so its primary can’t be required; use “{kind}?”

Fix: Make the primary optional ("text?"), or remove the widget’s container form. A container-only widget takes no primary.

ASC104 model-widget-groupable-form

Error · file level · SPEC §6

Message: widget {name} is groupable, so it must be container-only: forms = [“container”]

Fix: Set forms = ["container"], or remove groupable.

ASC105 model-widget-plain-content

Error · file level · SPEC §6

Message: widget {name} doesn’t wrap content, so plain-content has no effect; remove it

Fix: Remove plain-content.

The consumer, builds, and the editor

ASC106 model-consumer-unsupported

Error · file level · SPEC §9.5

Message: the {profile} profile doesn’t support {key} = {value}; use {values}

Fix: Use one of the values the message lists.

ASC107 model-consumer-site

Error · file level · SPEC §9.5

Message: site must be an origin such as “https://docs.example.com”; put any path in base-path

Fix: Set site to the origin alone, such as "https://docs.example.com", and put any path in base-path.

ASC108 model-consumer-base-path

Error · file level · SPEC §9.5

Message: base-path must start with “/”, such as “/docs/”

Fix: Start base-path with /: "/docs/".

ASC109 model-build-name-case

Error · file level · SPEC §9.3

Message: builds {a} and {b} differ only in case, so they’d share an output directory on some file systems

Fix: Rename one of the builds.

ASC110 model-build-variants

Error · file level · SPEC §9.3

Message: variants must be “switch” or a selection such as { deployment = “cloud” }

Fix: Set variants to "switch", or to a selection that names at least one dimension.

ASC111 model-build-unknown-dimension

Error · file level · SPEC §9.3

Message: build {build} selects dimension {dimension}, which isn’t declared

Fix: Correct the dimension’s name, or declare the dimension in [dimensions].

ASC112 model-build-unknown-value

Error · file level · SPEC §9.3

Message: build {build}: {value} isn’t a value of {dimension}; values: {values}

Fix: Use one of the values the message lists.

ASC113 model-build-availability

Error · file level · SPEC §9.3

Message: availability must be “badge” or { filter = “<target> <version>” }

Fix: Set availability to "badge", or to { filter = "<target> <version>" }.

ASC114 model-build-filter-target

Error · file level · SPEC §9.3

Message: build {build} filters for {target}, which isn’t a declared dimension value

Fix: Filter for a declared dimension value, not a dimension name.

ASC115 model-build-filter-version

Error · file level · SPEC §9.3

Message: build {build} filters for {target}, which is versioned, so it needs a version, such as “{target} 3.3”

Fix: Give a versioned target a version ("self-managed 3.3"), and a versionless target none.

ASC116 model-build-filter-excluded

Warning · file level · SPEC §9.3

Message: build {build} filters for {target}, but its selection keeps only {dimension} = {values}, so pages marked for {target} are dropped

Fix: Make the build’s variants selection keep the target it filters for, or filter for a target it keeps.

ASC117 model-editor-build-unknown

Error · file level · SPEC §10

Message: editor.build is {build}, which isn’t a declared build; builds: {builds}

Fix: Set [editor] build to one of the builds the message lists.

ASC118 model-editor-build-required

Error · file level · SPEC §10

Message: there are several builds and none is named site; set [editor] build to the one the editor should check

Fix: Set [editor] build to the build the editor should check, or name one of the builds site.