fix: columns
This commit is contained in:
parent
6f8be557b4
commit
028074e4f1
|
|
@ -0,0 +1,64 @@
|
||||||
|
import {TokenizerAndRendererExtension} from "marked";
|
||||||
|
|
||||||
|
export default function markedColumns(): TokenizerAndRendererExtension[] {
|
||||||
|
return [{
|
||||||
|
name: 'col-divider',
|
||||||
|
level: 'block',
|
||||||
|
start(src: string) {
|
||||||
|
return src.match(/^-\|-+ *\n/)?.index;
|
||||||
|
},
|
||||||
|
tokenizer(src){
|
||||||
|
const match = src.match(/^-\|(-+) *\n/);
|
||||||
|
if(!match) return;
|
||||||
|
return {
|
||||||
|
type: 'col-divider',
|
||||||
|
raw: match[0],
|
||||||
|
tokens: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
renderer(token){
|
||||||
|
const extra = token.raw.match(/^-\|(-+) *\n/)?.[1].length || 0;
|
||||||
|
const sfx = extra > 1 ? '-' + (extra) : '';
|
||||||
|
return `</div><div class="col${sfx}">`;
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
name: 'col-start',
|
||||||
|
level: 'block',
|
||||||
|
start(src: string) {
|
||||||
|
return src.match(/^\|--+ *\n/)?.index;
|
||||||
|
},
|
||||||
|
tokenizer(src){
|
||||||
|
const match = src.match(/^\|-(-+) *\n/);
|
||||||
|
if(!match) return;
|
||||||
|
return {
|
||||||
|
type: 'col-start',
|
||||||
|
raw: match[0],
|
||||||
|
tokens: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
renderer(token){
|
||||||
|
const extra = token.raw.match(/^\|-(-+) *\n/)?.[1].length || 0;
|
||||||
|
const sfx = extra > 1 ? '-' + (extra) : '';
|
||||||
|
return `<div class="cols"><div class="col${sfx}">`;
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
name: 'col-end',
|
||||||
|
level: 'block',
|
||||||
|
start(src: string) {
|
||||||
|
return src.match(/^--\| *\n/)?.index;
|
||||||
|
},
|
||||||
|
tokenizer(src){
|
||||||
|
const match = src.match(/^--\| *\n/);
|
||||||
|
if(!match) return;
|
||||||
|
return {
|
||||||
|
type: 'col-end',
|
||||||
|
raw: match[0],
|
||||||
|
tokens: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
renderer(token){
|
||||||
|
return `</div></div>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -5,6 +5,7 @@ import markedAlert from "marked-alert";
|
||||||
import markedMermaid from "./mermaid";
|
import markedMermaid from "./mermaid";
|
||||||
import markedTable from "./table";
|
import markedTable from "./table";
|
||||||
import {gfmHeadingId} from "marked-gfm-heading-id";
|
import {gfmHeadingId} from "marked-gfm-heading-id";
|
||||||
|
import markedColumns from "./columns";
|
||||||
|
|
||||||
let globalIconPrefix: string | undefined = undefined;
|
let globalIconPrefix: string | undefined = undefined;
|
||||||
function overrideIconPrefix(path?: string){
|
function overrideIconPrefix(path?: string){
|
||||||
|
|
@ -45,8 +46,10 @@ const marked = new Marked()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
]), {
|
]), {
|
||||||
|
extensions: [
|
||||||
|
...markedColumns(),
|
||||||
|
{
|
||||||
// 自定义代码块渲染器,支持 yaml/tag 格式
|
// 自定义代码块渲染器,支持 yaml/tag 格式
|
||||||
extensions: [{
|
|
||||||
name: 'code-block-yaml-tag',
|
name: 'code-block-yaml-tag',
|
||||||
level: 'block',
|
level: 'block',
|
||||||
start(src: string) {
|
start(src: string) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue