-
Notifications
You must be signed in to change notification settings - Fork 647
Error: Unrecognized Tag
ℹ️ Not expecting a tag? If you're writing text at the root of a template, remember, Marko starts in concise mode, where any text not prefixed with
--
is parsed as a tag declaration.
When Marko encounters an unrecognized tag at compile time, it will throw an error by default. For example:
<invalid-tag />
[template.marko:0:1] Unrecognized tag: invalid-tag
While erroring on unrecognized tags lets Marko catch potential problems as early as possible, it does require that Marko be aware of all possible tag names: standard HTML elements, Marko UI components, and custom HTML elements.
Marko will only discover tags from packages that are listed under dependencies
or devDependencies
in your package.json
file. If the tag name looks correct, please make sure you have the package installed and listed.
For tags you wish to pass through transparently, without Marko looking up a corresponding .marko
template, you can tell Marko not to process certain tag names with an html-elements.json
file.
For example, say we want to use the Accelerated Mobile Pages’ <amp-app-banner>
Web Component. To register its custom element, create a html-elements.json
in the same directory or a higher-up directory as the template containing the tag name, then register the tag as shown below.
src/components/hello/index.marko
:
<amp-app-banner layout="nodisplay" id="demo-app-banner-2134">
src/components/hello/html-elements.json
:
{
"<amp-app-banner>": {}
}
With that hint, the Marko compiler will not complain that the <amp-app-banner>
tag is unrecognized and instead output the tag as if it was a standard HTML tag.
To automatically fix deprecated marko syntax, try the marko migrate
command from the CLI.