astro-ghostcms/.pnpm-store/v3/files/a0/135c091a2666cfcd2eed0499bf9...

65 lines
2.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { AbbreviationNode, AbbreviationAttribute, Abbreviation } from '@emmetio/abbreviation';
import { WalkState, type WalkNext } from './walk.js';
import type { Config } from '../../config.js';
/**
* @description Utility methods for working with indent-based markup languages
* like HAML, Slim, Pug etc.
*/
interface AttributesCollection {
/** Primary element attributes: `id` and `class` */
primary: AbbreviationAttribute[];
/** Secondary element attributes: everything except `id` and `class` */
secondary: AbbreviationAttribute[];
}
export interface IndentWalkState extends WalkState {
options: FormatOptions;
}
export interface FormatOptions {
/** String to output before tag name */
beforeName?: string;
/** String to output after tag name */
afterName?: string;
/** String to output before secondary attribute set */
beforeAttribute?: string;
/** String to output after secondary attribute set */
afterAttribute?: string;
/** String to put between secondary attributes */
glueAttribute?: string;
/** Value for boolean attributes */
booleanValue?: string;
/** String to put before content line (if value is multiline) */
beforeTextLine?: string;
/** String to put after content line (if value is multiline) */
afterTextLine?: string;
/** String to put after self-closing elements like `br`. Mostly a `/` character */
selfClose?: string;
}
export default function indentFormat(abbr: Abbreviation, config: Config, options?: Partial<FormatOptions>): string;
/**
* Outputs `node` content to output stream of `state`
* @param node Context node
* @param index Index of `node` in `items`
* @param items List of `node`s siblings
* @param state Current walk state
*/
export declare function element(node: AbbreviationNode, index: number, items: AbbreviationNode[], state: IndentWalkState, next: WalkNext): void;
/**
* From given node, collects all attributes as `primary` (id, class) and
* `secondary` (all the rest) lists. In most indent-based syntaxes, primary attribute
* has special syntax
*/
export declare function collectAttributes(node: AbbreviationNode): AttributesCollection;
/**
* Outputs given attributes as primary into output stream
*/
export declare function pushPrimaryAttributes(attrs: AbbreviationAttribute[], state: WalkState): void;
/**
* Outputs given attributes as secondary into output stream
*/
export declare function pushSecondaryAttributes(attrs: AbbreviationAttribute[], state: IndentWalkState): void;
/**
* Outputs given node value into state output stream
*/
export declare function pushValue(node: AbbreviationNode, state: IndentWalkState): void;
export {};