Skip to content

Commit 99d8ee1

Browse files
committed
update: tricky for render result
1 parent 24d2a92 commit 99d8ee1

File tree

5 files changed

+32
-22
lines changed

5 files changed

+32
-22
lines changed

docs/cover.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# Test
2+
3+
A checked box test
4+
5+
- [x] Item 1
6+
- [ ] Item 2
7+
18
# Cover
29

310
Activate the cover feature by setting `coverpage` to **true**. See [coverpage configuration](configuration.md#coverpage).

src/core/render/compiler.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,15 @@ export class Compiler {
245245
origin.image = imageCompiler({ renderer, contentBase, router });
246246
origin.list = taskListCompiler({ renderer });
247247
origin.listitem = taskListItemCompiler({ renderer });
248-
249-
renderer.origin = origin;
248+
(origin.checkbox = renderer.checkbox =
249+
({ checked }) => {
250+
return (
251+
'<input ' +
252+
(checked ? 'checked="" ' : '') +
253+
'disabled="" type="checkbox">'
254+
);
255+
}),
256+
(renderer.origin = origin);
250257

251258
return renderer;
252259
}

src/core/render/compiler/taskListItem.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
export const taskListItemCompiler = ({ renderer }) =>
22
(renderer.listitem = function (item) {
33
const isTaskItem = item.task;
4-
const text = this.parser.parse(item.tokens) || '';
5-
4+
let text = '';
5+
let checkboxText = '';
6+
if (isTaskItem) {
7+
checkboxText = this.checkbox?.({ checked: !!item.checked });
8+
}
9+
text = this.parser.parse(item.tokens) || '';
10+
text = text.replace(/^<p>/, '').replace(/<\/p>$/, '');
11+
text = checkboxText + text;
612
const html = isTaskItem
713
? /* html */ `<li class="task-list-item"><label>${text}</label></li>`
814
: /* html */ `<li>${text}</li>`;

test/integration/__snapshots__/docs.test.js.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ exports[`Docs Site coverpage renders and is unchanged 1`] = `
1111
<div class="mask"></div>
1212
<div class="cover-main"><p><img src="http://127.0.0.1:4000/_media/icon.svg" data-origin="_media/icon.svg" alt="logo"></p><h1 id="docsify-4130" tabindex="-1"><a href="#/?id=docsify-4130" data-id="docsify-4130" class="anchor"><span>docsify <small>4.13.0</small></span></a></h1><blockquote>
1313
<p>A magical documentation site generator.</p></blockquote>
14-
<ul><li><p>Simple and lightweight</p></li><li><p>No statically built html files</p></li><li><p>Multiple themes</p></li></ul><p><a href="https://github.com/docsifyjs/docsify/" target="_blank" rel="noopener">GitHub</a>
14+
<ul><li>Simple and lightweight</li><li>No statically built html files</li><li>Multiple themes</li></ul><p><a href="https://github.com/docsifyjs/docsify/" target="_blank" rel="noopener">GitHub</a>
1515
<a href="#/?id=docsify">Getting Started</a></p></div>
1616
</section>"
1717
`;
1818
19-
exports[`Docs Site navbar renders and is unchanged 1`] = `"<nav aria-label="secondary" class="app-nav no-badge"><ul><li><p>Translations</p><ul><li><p><a href="#/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png?v8.png" alt="uk" class="emoji" loading="lazy"> English</a></p></li><li><p><a href="#/zh-cn/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f3.png?v8.png" alt="cn" class="emoji" loading="lazy"> 简体中文</a></p></li><li><p><a href="#/de-de/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ea.png?v8.png" alt="de" class="emoji" loading="lazy"> Deutsch</a></p></li><li><p><a href="#/es/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f8.png?v8.png" alt="es" class="emoji" loading="lazy"> Español</a></p></li><li><p><a href="#/ru-ru/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1fa.png?v8.png" alt="ru" class="emoji" loading="lazy"> Русский</a></p></li></ul></li></ul></nav>"`;
19+
exports[`Docs Site navbar renders and is unchanged 1`] = `"<nav aria-label="secondary" class="app-nav no-badge"><ul><li>Translations<p></p><ul><li><a href="#/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1ec-1f1e7.png?v8.png" alt="uk" class="emoji" loading="lazy"> English</a></li><li><a href="#/zh-cn/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1e8-1f1f3.png?v8.png" alt="cn" class="emoji" loading="lazy"> 简体中文</a></li><li><a href="#/de-de/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1e9-1f1ea.png?v8.png" alt="de" class="emoji" loading="lazy"> Deutsch</a></li><li><a href="#/es/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1ea-1f1f8.png?v8.png" alt="es" class="emoji" loading="lazy"> Español</a></li><li><a href="#/ru-ru/"><img src="https://github.githubassets.com/images/icons/emoji/unicode/1f1f7-1f1fa.png?v8.png" alt="ru" class="emoji" loading="lazy"> Русский</a></li></ul></li></ul></nav>"`;
2020
2121
exports[`Docs Site sidebar renders and is unchanged 1`] = `
2222
"<aside id="__sidebar" class="sidebar" role="none">
2323
24-
<div class="sidebar-nav" role="navigation" aria-label="primary"><ul><li><p>Getting started</p><ul><li><p><a href="#/quickstart">Quick start</a></p></li><li><p><a href="#/more-pages">Writing more pages</a></p></li><li><p><a href="#/custom-navbar">Custom navbar</a></p></li><li><p><a href="#/cover">Cover page</a></p></li></ul></li><li><p>Customization</p><ul><li><p><a href="#/configuration">Configuration</a></p></li><li><p><a href="#/themes">Themes</a></p></li><li><p><a href="#/plugins">List of Plugins</a></p></li><li><p><a href="#/write-a-plugin">Write a Plugin</a></p></li><li><p><a href="#/markdown">Markdown configuration</a></p></li><li><p><a href="#/language-highlight">Language highlighting</a></p></li><li><p><a href="#/emoji">Emoji</a></p></li></ul></li><li><p>Guide</p><ul><li><p><a href="#/deploy">Deploy</a></p></li><li><p><a href="#/helpers">Helpers</a></p></li><li><p><a href="#/vue">Vue compatibility</a></p></li><li><p><a href="#/cdn">CDN</a></p></li><li><p><a href="#/pwa">Offline Mode (PWA)</a></p></li><li><p><a href="#/embed-files">Embed Files</a></p></li></ul></li><li><p><a href="#/awesome">Awesome docsify</a></p></li><li><p><a href="#/changelog">Changelog</a></p></li></ul></div>
24+
<div class="sidebar-nav" role="navigation" aria-label="primary"><ul><li>Getting started<p></p><ul><li><a href="#/quickstart">Quick start</a></li><li><a href="#/more-pages">Writing more pages</a></li><li><a href="#/custom-navbar">Custom navbar</a></li><li><a href="#/cover">Cover page</a></li></ul></li><li>Customization<p></p><ul><li><a href="#/configuration">Configuration</a></li><li><a href="#/themes">Themes</a></li><li><a href="#/plugins">List of Plugins</a></li><li><a href="#/write-a-plugin">Write a Plugin</a></li><li><a href="#/markdown">Markdown configuration</a></li><li><a href="#/language-highlight">Language highlighting</a></li><li><a href="#/emoji">Emoji</a></li></ul></li><li>Guide<p></p><ul><li><a href="#/deploy">Deploy</a></li><li><a href="#/helpers">Helpers</a></li><li><a href="#/vue">Vue compatibility</a></li><li><a href="#/cdn">CDN</a></li><li><a href="#/pwa">Offline Mode (PWA)</a></li><li><a href="#/embed-files">Embed Files</a></li></ul></li><li><a href="#/awesome">Awesome docsify</a></li><li><a href="#/changelog">Changelog</a></li></ul></div>
2525
</aside>"
2626
`;

test/integration/render.test.js

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ describe('render', function () {
4141
- [ ] Task 3
4242
`);
4343

44-
expect(output).toMatchInlineSnapshot(
45-
`"<ul class="task-list"><li class="task-list-item"><label><p>Task 1</p></label></li><li class="task-list-item"><label><p>Task 2</p></label></li><li class="task-list-item"><label><p>Task 3</p></label></li></ul>"`,
46-
);
44+
expect(output).toMatchInlineSnapshot(`"<ul class="task-list"><li class="task-list-item"><label><input checked="" disabled="" type="checkbox">Task 1</label></li><li class="task-list-item"><label><input disabled="" type="checkbox">Task 2</label></li><li class="task-list-item"><label><input disabled="" type="checkbox">Task 3</label></li></ul>"`);
4745
});
4846

4947
test('as ordered task list', async function () {
@@ -52,9 +50,7 @@ describe('render', function () {
5250
2. [x] Task 2
5351
`);
5452

55-
expect(output).toMatchInlineSnapshot(
56-
`"<ol class="task-list"><li class="task-list-item"><label><p>Task 1</p></label></li><li class="task-list-item"><label><p>Task 2</p></label></li></ol>"`,
57-
);
53+
expect(output).toMatchInlineSnapshot(`"<ol class="task-list"><li class="task-list-item"><label><input disabled="" type="checkbox">Task 1</label></li><li class="task-list-item"><label><input checked="" disabled="" type="checkbox">Task 2</label></li></ol>"`);
5854
});
5955

6056
test('normal unordered', async function () {
@@ -63,9 +59,7 @@ describe('render', function () {
6359
- just text
6460
`);
6561

66-
expect(output).toMatchInlineSnapshot(
67-
`"<ul ><li><p><a href="#/link" >linktext</a></p></li><li><p>just text</p></li></ul>"`,
68-
);
62+
expect(output).toMatchInlineSnapshot(`"<ul ><li><a href="#/link" >linktext</a></li><li>just text</li></ul>"`);
6963
});
7064

7165
test('unordered with custom start', async function () {
@@ -78,9 +72,7 @@ describe('render', function () {
7872
3. third
7973
`);
8074

81-
expect(output).toMatchInlineSnapshot(
82-
`"<ol ><li><p>first</p></li><li><p>second</p></li></ol><p>text</p><ol start="3"><li><p>third</p></li></ol>"`,
83-
);
75+
expect(output).toMatchInlineSnapshot(`"<ol ><li>first</li><li>second</li></ol><p>text</p><ol start="3"><li>third</li></ol>"`);
8476
});
8577

8678
test('nested', async function () {
@@ -92,9 +84,7 @@ describe('render', function () {
9284
- 3
9385
`);
9486

95-
expect(output).toMatchInlineSnapshot(
96-
`"<ul ><li><p>1</p></li><li><p>2</p><ul ><li><p>2 a</p></li><li><p>2 b</p></li></ul></li><li><p>3</p></li></ul>"`,
97-
);
87+
expect(output).toMatchInlineSnapshot(`"<ul ><li>1</li><li>2</p><ul ><li>2 a</li><li>2 b</li></ul></li><li>3</li></ul>"`);
9888
});
9989
});
10090

0 commit comments

Comments
 (0)