UNPKG

3.24 kBTypeScriptView Raw
1import MarkdownIt = require('.');
2import Token = require('./token');
3
4declare namespace Renderer {
5 type RenderRule = (tokens: Token[], idx: number, options: MarkdownIt.Options, env: any, self: Renderer) => string;
6
7 interface RenderRuleRecord {
8 [type: string]: RenderRule | undefined;
9 code_inline?: RenderRule | undefined;
10 code_block?: RenderRule | undefined;
11 fence?: RenderRule | undefined;
12 image?: RenderRule | undefined;
13 hardbreak?: RenderRule | undefined;
14 softbreak?: RenderRule | undefined;
15 text?: RenderRule | undefined;
16 html_block?: RenderRule | undefined;
17 html_inline?: RenderRule | undefined;
18 }
19}
20
21declare class Renderer {
22 /**
23 * Contains render rules for tokens. Can be updated and extended.
24 *
25 * ##### Example
26 *
27 * ```javascript
28 * var md = require('markdown-it')();
29 *
30 * md.renderer.rules.strong_open = function () { return '<b>'; };
31 * md.renderer.rules.strong_close = function () { return '</b>'; };
32 *
33 * var result = md.renderInline(...);
34 * ```
35 *
36 * Each rule is called as independent static function with fixed signature:
37 *
38 * ```javascript
39 * function my_token_render(tokens, idx, options, env, renderer) {
40 * // ...
41 * return renderedHTML;
42 * }
43 * ```
44 *
45 * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)
46 * for more details and examples.
47 */
48 rules: Renderer.RenderRuleRecord;
49
50 /**
51 * Render token attributes to string.
52 */
53 renderAttrs(token: Token): string;
54
55 /**
56 * Default token renderer. Can be overriden by custom function
57 * in [[Renderer#rules]].
58 *
59 * @param tokens list of tokens
60 * @param idx token index to render
61 * @param options params of parser instance
62 */
63 renderToken(tokens: Token[], idx: number, options: MarkdownIt.Options): string;
64
65 /**
66 * The same as [[Renderer.render]], but for single token of `inline` type.
67 *
68 * @param tokens list on block tokens to renter
69 * @param options params of parser instance
70 * @param env additional data from parsed input (references, for example)
71 */
72 renderInline(tokens: Token[], options: MarkdownIt.Options, env: any): string;
73
74 /**
75 * Special kludge for image `alt` attributes to conform CommonMark spec.
76 * Don't try to use it! Spec requires to show `alt` content with stripped markup,
77 * instead of simple escaping.
78 *
79 * @param tokens list on block tokens to renter
80 * @param options params of parser instance
81 * @param env additional data from parsed input (references, for example)
82 */
83 renderInlineAsText(tokens: Token[], options: MarkdownIt.Options, env: any): string;
84
85 /**
86 * Takes token stream and generates HTML. Probably, you will never need to call
87 * this method directly.
88 *
89 * @param tokens list on block tokens to renter
90 * @param options params of parser instance
91 * @param env additional data from parsed input (references, for example)
92 */
93 render(tokens: Token[], options: MarkdownIt.Options, env: any): string;
94}
95
96export = Renderer;