Parsing HTML Extract semantic meaning from HTML search API Reference
Categories

Parsing HTML

Methods for parsing HTML and extracting semantic component structure.

getComponentPartsFromHTML()

Parses HTML and extracts semantic component structure. Returns component name, attributes, and inner content.

Syntax

reader.getComponentPartsFromHTML(html, options)

Parameters

NameTypeDefaultDescription
htmlstringHTML string to parse
optionsObjectParse options
options.dialectstringthis.dialectHTML dialect to use

Returns

PropertyTypeDescription
componentNamestringComponent tag name
attributesObjectAttribute key-value pairs
attributeStringstringFormatted attribute string
htmlstringInner HTML content

Usage

import { SpecReader } from '@semantic-ui/specs';
import buttonSpec from './button.spec.js';
const reader = new SpecReader(buttonSpec);
const parts = reader.getComponentPartsFromHTML(
'<ui-button primary large>Save</ui-button>'
);
console.log(parts);
// {
// componentName: 'ui-button',
// attributes: { primary: true, large: true },
// attributeString: 'primary large',
// html: 'Save'
// }

Parse with verbose dialect:

const parts = reader.getComponentPartsFromHTML(
'<ui-button emphasis="primary" size="large">Save</ui-button>',
{ dialect: 'verbose' }
);
console.log(parts);
// {
// componentName: 'ui-button',
// attributes: { emphasis: 'primary', size: 'large' },
// attributeString: 'emphasis="primary" size="large"',
// html: 'Save'
// }

getAttributesFromModifiers()

Converts semantic modifier string into attribute object. Parses space-separated modifiers and maps them to their semantic attributes.

Syntax

reader.getAttributesFromModifiers(modifiers)

Parameters

NameTypeDescription
modifiersstringSpace-separated semantic modifiers

Returns

Object with attribute keys and values.

Usage

import { SpecReader } from '@semantic-ui/specs';
import buttonSpec from './button.spec.js';
const reader = new SpecReader(buttonSpec);
const attributes = reader.getAttributesFromModifiers('primary large');
console.log(attributes);
// {
// emphasis: 'primary',
// size: 'large'
// }

Boolean attributes:

const attributes = reader.getAttributesFromModifiers('disabled loading');
console.log(attributes);
// {
// disabled: true,
// loading: true
// }
Previous
Generate Docs
Next
Generating HTML