| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -42,13 +42,6 @@ remark() | |||
| 42 | 42 | - required: false | |
| 43 | 43 | - description: Metas of example code block | |
| 44 | 44 | ||
| 45 | - ### Options.transforms | ||
| 46 | - | ||
| 47 | - - type: object of string | ||
| 48 | - - default: {} | ||
| 49 | - - required: false | ||
| 50 | - - description: Transform functions of alias code | ||
| 51 | - | ||
| 52 | 45 | ## Syntax | |
| 53 | 46 | ||
| 54 | 47 | ### code-example | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -28,12 +28,18 @@ function visitCode(tree, key, visitor) { | |||
| 28 | 28 | meta && | |
| 29 | 29 | meta.split(/\s/).some((item) => item.startsWith(key)), | |
| 30 | 30 | (node) => { | |
| 31 | - const { [key]: lang, copyToAfter, ...meta } = parseMeta(node.meta); | ||
| 31 | + const { [key]: lang, ...meta } = parseMeta(node.meta); | ||
| 32 | + | ||
| 33 | + const copyToAfter = 'copyToAfter' in meta; | ||
| 34 | + | ||
| 35 | + if (copyToAfter) { | ||
| 36 | + delete meta.copyToAfter; | ||
| 37 | + } | ||
| 32 | 38 | ||
| 33 | 39 | visitor({ | |
| 34 | 40 | node, | |
| 35 | 41 | lang: lang || 'markdown', | |
| 36 | - copyToAfter: (copyToAfter === '' ? true : copyToAfter) || false, | ||
| 42 | + copyToAfter, | ||
| 37 | 43 | meta, | |
| 38 | 44 | }); | |
| 39 | 45 | }, | |
@@ -42,22 +48,23 @@ function visitCode(tree, key, visitor) { | |||
| 42 | 48 | ||
| 43 | 49 | /* eslint-disable no-param-reassign */ | |
| 44 | 50 | ||
| 45 | - export function remarkCodeExample({ metas = {}, transforms = {} } = {}) { | ||
| 51 | + export function remarkCodeExample({ metas = {} } = {}) { | ||
| 46 | 52 | return (tree) => { | |
| 47 | - visitCode(tree, 'code-alias-copy', ({ node, lang, copyToAfter, meta }) => { | ||
| 48 | - const index = tree.children.indexOf(node); | ||
| 49 | - | ||
| 50 | - node.meta = stringifyMeta(meta); | ||
| 51 | - | ||
| 52 | - tree.children.splice(copyToAfter ? index + 1 : index, 0, { | ||
| 53 | - ...node, | ||
| 54 | - lang, | ||
| 55 | - value: | ||
| 56 | - typeof transforms[lang] === 'function' | ||
| 57 | - ? transforms[lang](node.value) | ||
| 58 | - : node.value, | ||
| 59 | - }); | ||
| 60 | - }); | ||
| 53 | + visitCode( | ||
| 54 | + tree, | ||
| 55 | + 'code-alias-copy', | ||
| 56 | + ({ node, lang, copyToAfter = false, meta }) => { | ||
| 57 | + const index = tree.children.indexOf(node); | ||
| 58 | + | ||
| 59 | + node.meta = stringifyMeta(meta); | ||
| 60 | + | ||
| 61 | + tree.children.splice(copyToAfter ? index + 1 : index, 0, { | ||
| 62 | + ...node, | ||
| 63 | + lang, | ||
| 64 | + value: node.value, | ||
| 65 | + }); | ||
| 66 | + }, | ||
| 67 | + ); | ||
| 61 | 68 | ||
| 62 | 69 | visitCode( | |
| 63 | 70 | tree, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -59,29 +59,3 @@ test('code-alias-copy-after', async (t) => { | |||
| 59 | 59 | ||
| 60 | 60 | getUtils(t).sameText(output, expected); | |
| 61 | 61 | }); | |
| 62 | - | ||
| 63 | - test('code-alias-copy-transform', async (t) => { | ||
| 64 | - const input = ` | ||
| 65 | - \`\`\`css tab code-alias-copy=less | ||
| 66 | - body {} | ||
| 67 | - \`\`\` | ||
| 68 | - `; | ||
| 69 | - | ||
| 70 | - const expected = ` | ||
| 71 | - \`\`\`less tab | ||
| 72 | - html {} | ||
| 73 | - \`\`\` | ||
| 74 | - | ||
| 75 | - \`\`\`css tab | ||
| 76 | - body {} | ||
| 77 | - \`\`\` | ||
| 78 | - `; | ||
| 79 | - | ||
| 80 | - const output = await transform(input, { | ||
| 81 | - transforms: { | ||
| 82 | - less: (original) => original.replace('body', 'html'), | ||
| 83 | - }, | ||
| 84 | - }); | ||
| 85 | - | ||
| 86 | - getUtils(t).sameText(output, expected); | ||
| 87 | - }); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments