fix: columns

This commit is contained in:
2026-03-23 22:22:01 +08:00
parent 6f8be557b4
commit 028074e4f1
2 changed files with 68 additions and 1 deletions
+64
View File
@@ -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>`;
}
}
];
}