yamd 설명서
  1. 시작하기
  2. API

yamd.renderer

renderer: {
    ast2nt: Function,
    TextNode: Function,
    HtmlNode: Function,
    ErrorNode: Function,
    Tag: Function,
    Element: Function
}

ast2nt(ast, options)

AST로부터 노드의 트리를 만든다.

Parameters

Returns

Element 노드 트리의 최상단 요소.

Node()

Inherited by

TextNode(text)

텍스트를 표현하는 노드.

Parameters

Inherits

HtmlNode({html, display})

HTML을 표현하는 노드.

html 인자에 이스케이프 되지 않은 텍스트를 집어넣으면 XSS 취약점이 발생할 수 있다.

Parameters

Inherits

ErrorNode({message, code})

에러를 표현하는 노드.

Inherits

Tag({name, display, renderer, split?})

새로운 yamd 태그를 만든다.

어떤 Tag 인스턴스와 Element 인스턴스의 관계는 HTML DOM에서의 HTMLParagraphElement 등의 클래스와 그 인스턴스의 관계와 비슷하다고 할 수 있다. 새로운 클래스를 만드는 대신 Tag 인스턴스를 만드는 것이다.

Parameters

Examples

var i = new Tag({
    name: 'i',
    display: 'inline',
    renderer: (el, options) => {
        return el.html(`<i>${el.innerHtml}</i>`);
    }
});

Element({name, display, renderer, split?, code, attributes, children, options})

요소.

Inherits

Element#text(text)

텍스트 노드를 만든다.

Parameters

Returns

TextNode 만들어진 TextNode 인스턴스.

Examples

// asdf -> fdsa
var reverse = new Tag({
    name: 'reverse',
    display: 'inline',
    renderer: (el, options) => {
        if (!el.innerIsText)
            return el.error('Non-text input');

        return el.text(el.innerText.split('').reverse().join(''));
    }
});

Element#html(html)

HTML 노드를 만든다.

html 인자에 이스케이프 되지 않은 텍스트를 집어넣으면 XSS 취약점이 발생할 수 있다.

Parameters

Returns

HtmlNode 만들어진 HtmlNode 인스턴스.

Examples

// <i>...</i>
var i = new Tag({
    name: 'i',
    display: 'inline',
    renderer: (el, options) => {
        return el.html(`<i>${el.innerHtml}</i>`);
    }
});

Element#error(message)

에러 노드를 만든다.

Parameters

Returns

ErrorNode 만들어진 ErrorNode 인스턴스.

Examples

// asdf -> fdsa
var reverse = new Tag({
    name: 'reverse',
    display: 'inline',
    renderer: (el, options) => {
        if (!el.innerIsText)
            return el.error('Non-text input');

        return el.text(el.innerText.split('').reverse().join());
    }
});

Element#getAttribute(name)

name에 대응하는 속성 값을 반환한다. 여러 개 있을 경우 제일 처음에 작성된 것이 반환한다. 없으면 null을 반환한다.

Parameters

Returns

string 제일 왼쪽에 있는 속성 값. 없으면 null이다.

Element#escapeHtml(string)

HTML 이스케이프 함수.

Parameters

Returns

string HTML 이스케이프 된 문자열.

Element가 갖는 속성

Nested<T>T | Nested<T>[]로 정의된다.