woodpecker/docs/plugins/woodpecker-plugins/src/markdown.ts
Anbraten 0812a29163
Add plugin marketplace (for official plugins) (#451)
Co-authored-by: 6543 <6543@obermui.de>
2021-10-19 18:54:01 +02:00

38 lines
930 B
TypeScript

import marked from 'marked';
const tokens = ['---', '---'];
const regexHeader = new RegExp('^' + tokens[0] + '([\\s|\\S]*?)' + tokens[1]);
const regexContent = new RegExp(
'^ *?\\' + tokens[0] + '[^]*?' + tokens[1] + '*'
);
export function getHeader<T = any>(data: string): T {
const header = getRawHeader(data);
const tmpObj = {};
const lines = header.trim().split('\n');
lines.forEach((line, i) => {
var arr = line.trim().split(':');
tmpObj[arr.shift()] = arr.join(':').trim();
});
return tmpObj as T;
}
export function getRawHeader(data: string): string {
const header = regexHeader.exec(data);
if (!header) {
new Error("Can't get the header");
}
return header[1];
}
export function getContent(data): string {
const content = data.replace(regexContent, '').replace(/<!--(.*?)-->/gm, '');
if (!content) {
throw new Error("Can't get the content");
}
return marked(content);
}