1. 嘗試1
interface Interface_1 {
heading: RegExp;
listItem: RegExp;
paragraph: RegExp;
}
const markdownRules: Interface_1 = {
heading: /^#\s+(.*)$/,
listItem: /^\s*-\s+(.*)$/,
paragraph: /^([^\n]+)$/,
}
// 解析 Markdown 文字
function parseMarkdown(markdownText: string) {
const lines: string[] = markdownText.split('\n');
const jsonData: string[] = [];
for (const line of lines) {
if (markdownRules.heading.test(line)) {
const res: RegExpMatchArray | null = line.match(markdownRules.heading)
if (res) {
const heading: string = res[1];
jsonData.push(heading);
}
} else if (markdownRules.listItem.test(line)) {
const res: RegExpMatchArray | null = line.match(markdownRules.listItem)
if (res){
const listItem:string= res[1];
jsonData.push(listItem);
}
} else if (markdownRules.paragraph.test(line)) {
const res: RegExpMatchArray | null = line.match(markdownRules.paragraph)
if (res){
const paragraph:string= res[1];
jsonData.push(paragraph);
}
}
}
return jsonData;
}
interface LiteralInterface_1 {
heading?: string;
title?: string
}
let array: LiteralInterface_1[] = [];
// 新增物件
array.push({ heading: 'abc' });
array.push({ title: 'jjj' });
console.log('',JSON.stringify(array));
// 示例用法
const markdownText = `
# 標題
這是一段 Markdown 文字。
- 列表項 1
- 列表項 2
`;
const jsonData = parseMarkdown(markdownText);
console.log(JSON.stringify(jsonData, null, 2));