mirror of
https://github.com/docsifyjs/docsify.git
synced 2025-12-08 19:55:52 +00:00
Merge pull request #1598 from luwol03/issue/1597-embed-quotes-bug
fix: allow also " inside of an embed
This commit is contained in:
commit
74f17a0635
@ -16,7 +16,7 @@ Then the content of `example.md` will be displayed directly here;
|
||||
|
||||
You can check the original content for [example.md](_media/example.md ':ignore').
|
||||
|
||||
Normally, this will compiled into a link, but in docsify, if you add `:include` it will be embedded.
|
||||
Normally, this will compiled into a link, but in docsify, if you add `:include` it will be embedded. You can use single or double quotation marks around as you like.
|
||||
|
||||
External links can be used too - just replace the target. If you want to use a gist URL, see [Embed a gist](#embed-a-gist) section.
|
||||
|
||||
|
||||
@ -23,8 +23,8 @@ export function getAndRemoveConfig(str = '') {
|
||||
|
||||
if (str) {
|
||||
str = str
|
||||
.replace(/^'/, '')
|
||||
.replace(/'$/, '')
|
||||
.replace(/^('|")/, '')
|
||||
.replace(/('|")$/, '')
|
||||
.replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g, (m, key, value) => {
|
||||
if (key.indexOf(':') === -1) {
|
||||
config[key] = (value && value.replace(/"/g, '')) || true;
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
const { removeAtag } = require('../../src/core/render/utils');
|
||||
const {
|
||||
removeAtag,
|
||||
getAndRemoveConfig,
|
||||
} = require('../../src/core/render/utils');
|
||||
|
||||
const { tree } = require(`../../src/core/render/tpl`);
|
||||
|
||||
@ -16,6 +19,46 @@ describe('core/render/utils', () => {
|
||||
expect(result).toEqual('content');
|
||||
});
|
||||
});
|
||||
|
||||
// getAndRemoveConfig()
|
||||
// ---------------------------------------------------------------------------
|
||||
describe('getAndRemoveConfig()', () => {
|
||||
test('parse simple config', () => {
|
||||
const result = getAndRemoveConfig(
|
||||
`[filename](_media/example.md ':include')`
|
||||
);
|
||||
|
||||
expect(result).toMatchObject({
|
||||
config: {},
|
||||
str: `[filename](_media/example.md ':include')`,
|
||||
});
|
||||
});
|
||||
|
||||
test('parse config with arguments', () => {
|
||||
const result = getAndRemoveConfig(
|
||||
`[filename](_media/example.md ':include :foo=bar :baz test')`
|
||||
);
|
||||
|
||||
expect(result).toMatchObject({
|
||||
config: {
|
||||
foo: 'bar',
|
||||
baz: true,
|
||||
},
|
||||
str: `[filename](_media/example.md ':include test')`,
|
||||
});
|
||||
});
|
||||
|
||||
test('parse config with double quotes', () => {
|
||||
const result = getAndRemoveConfig(
|
||||
`[filename](_media/example.md ":include")`
|
||||
);
|
||||
|
||||
expect(result).toMatchObject({
|
||||
config: {},
|
||||
str: `[filename](_media/example.md ":include")`,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('core/render/tpl', () => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user