wikiparser-node
Version:
A Node.js parser for MediaWiki markup with AST
82 lines (81 loc) • 2.94 kB
TypeScript
import Parser from '../../index';
import { Token } from '../index';
import { TableBaseToken } from './base';
import type { Config, LintError, AST } from '../../base';
import type { SyntaxToken, AttributesToken, TrToken, TableToken } from '../../internal';
export type TdSubtypes = 'td' | 'th' | 'caption';
export interface TdSpanAttrs {
rowspan?: number;
colspan?: number;
}
declare type TdAttrGetter<T extends string> = T extends keyof TdSpanAttrs ? number : string | true | undefined;
declare type TdAttrSetter<T extends string> = T extends keyof TdSpanAttrs ? number : string | boolean;
export type TdAttrs = Record<string, string | true> & TdSpanAttrs;
/**
* `<td>`, `<th>` or `<caption>`
*
* `<td>`、`<th>`或`<caption>`
* @classdesc `{childNodes: [SyntaxToken, AttributesToken, Token]}`
*/
export declare abstract class TdToken extends TableBaseToken {
#private;
readonly childNodes: readonly [SyntaxToken, AttributesToken, Token];
abstract get parentNode(): TrToken | TableToken | undefined;
abstract get nextSibling(): this | TrToken | SyntaxToken | undefined;
abstract get previousSibling(): Token | undefined;
abstract get children(): [SyntaxToken, AttributesToken, Token];
abstract get parentElement(): TrToken | TableToken | undefined;
abstract get nextElementSibling(): this | TrToken | SyntaxToken | undefined;
get type(): 'td';
/** rowspan */
get rowspan(): number;
/** colspan */
get colspan(): number;
/** cell type / 单元格类型 */
get subtype(): TdSubtypes;
set subtype(subtype: TdSubtypes);
set rowspan(rowspan: number);
set colspan(colspan: number);
/** inner wikitext / 内部wikitext */
get innerText(): string;
set innerText(text: string);
/**
* @param syntax 单元格语法
* @param inner 内部wikitext
*/
constructor(syntax: string, inner?: string, config?: Config, accum?: Token[]);
/**
* Check if the cell is at the beginning of a line
*
* 是否位于行首
*/
isIndependent(): boolean;
getAttr<T extends string>(key: T): TdAttrGetter<T>;
escape(): void;
cloneNode(): this;
/**
* Move to a new line
*
* 改为独占一行
*/
independence(): void;
getAttrs(): TdAttrs;
/**
* @override
* @param key attribute name / 属性键
* @param value attribute value / 属性值
* @param prop attribute object / 属性对象
*/
setAttr<T extends string>(key: T, value: TdAttrSetter<T>): void;
setAttr(prop: Record<string, string | number | boolean>): void;
}
/**
* 创建新的单元格
* @param inner 内部wikitext
* @param subtype 单元格类型
* @param attr 单元格属性
* @param include 是否嵌入
* @param config
*/
export declare const createTd: (inner: string | Token, subtype?: TdSubtypes, attr?: TdAttrs, include?: boolean, config?: Config) => TdToken;
export {};