1 | import MarkdownIt = require('.');
|
2 | import Token = require('./token');
|
3 |
|
4 | declare 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 |
|
21 | declare 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 |
|
96 | export = Renderer;
|