《顺着历史学古诗》
内容简介:
点击展开/收起
《顺着历史学古诗》是《中国诗词大会》评委蒙曼,给孩子量身定制的古诗课。 本书在全面理清中国历史与诗歌流派的基础上,按照中国历史的发展顺序,精心设计6个站点——春秋战国、秦汉、三国两晋南北朝、隋唐、宋、元明清,挑选30首必背古诗,关联100+经典诗篇,跟随蒙曼老师一起,穿越到历史现场,走进大诗人,抓住古诗精髓、把握意象、掌握写作手法……击破各个知识点,还有诗题诗体、诗歌流派、成语、历史典故等超多硬核知识。 蒙曼老师对每一首古诗,都作了仔细拆解,深入分析,力求给孩子一种全新的阅读体验和收获。最好的方法学古诗——学古诗,就要通历史。// 指定要搜索的文件夹
const targetFolder = "阅读/作家";
// 可修改的摘要长度(字符数)
const excerptLength = 300;
// 从模板变量接收作者名(可能带引号)
let rawAuthor = `蒙曼`;
let author = rawAuthor.replace(/^['"]+|['"]+$/g, "").trim();
// 获取该目录下所有页面并过滤
let pagesInFolder = dv.pages(`"${targetFolder}"`);
let matching = pagesInFolder.filter(p => p.file.name === author || p.file.name.includes(author));
if (matching.length > 0) {
(async () => {
let note = matching[0];
let path = note.file.path;
let name = note.file.name;
// 输出文件链接
dv.paragraph(`**作者简介:** ${name}`);
// 读取全文
let file = app.vault.getAbstractFileByPath(path);
let content = await app.vault.read(file);
// 去除笔记属性
content = content.replace(/^---\r?\n[\s\S]*?\r?\n---/, "").trim();
// 提取“作家简介”标题后的首个段落,允许标题后空行
const sectionRegex = /^###\s*作家简介[^\n]*\r?\n(?:\r?\n)?([\s\S]*?)(?=\r?\n\s*\r?\n|$)/m;
let excerpt = '';
const secMatch = content.match(sectionRegex);
if (secMatch) {
let body = secMatch[1].trim();
excerpt = body.length > excerptLength ? body.substring(0, excerptLength) + '...' : body;
} else {
// 未找到标题时默认使用首个段落
const paraMatch = content.match(/^([\s\S]*?)(?=\r?\n\s*\r?\n|$)/);
let firstPara = paraMatch ? paraMatch[1].trim() : content.substring(0, excerptLength).trim();
excerpt = firstPara.length > excerptLength ? firstPara.substring(0, excerptLength) + '...' : firstPara;
}
// 使用 <details> 实现可折叠展示摘要
dv.paragraph(
`<details>
<summary>点击展开/收起</summary>
${excerpt}
</details>`
);
})();
} else {
dv.paragraph(`尚未添加 “${author}” 的简介。`);
}
原文摘录
夏、商、周三代是中国历史的开篇,《诗经》是中国古典诗词的开篇
《诗经》是中国最早的一部诗歌总集,收录的是从西周初年一直到春秋时代的诗歌。
《诗经》一共有305首
《诗经》的三百多篇诗歌分成三个部分,分别叫风、雅、颂。
投我以木瓜,报之以琼琚(jū)。匪报也,永以为好也。
投我以木桃,报之以琼瑶。匪报也,永以为好也。
投我以木李,报之以琼玖(jiǔ)。匪报也,永以为好也。
翻译
你送我木瓜,我还你琼琚,这可不是为回报,是要和你永相好。你送我木桃,我还你琼瑶,这可不是为回报,是要和你永相好。你送我木李,我还你琼玖,这可不是为回报,是要和你永相好。
这种诗歌的写法叫作复沓(tà)
这首诗后来演化成了一个成语,叫“投木报琼”
这首诗的重点不在于礼尚往来,而在于重义轻利。
分斤掰两
——引自章节:《诗经·卫风·木瓜》
成语“”三山五岳“”,“三山”是哪三山?这就有不同的说法了。有人认为,三山是指中国的三条“龙脉”,也就是喜马拉雅山脉、昆仑山脉和天山山脉;还有人认为三山是指海上的三座仙山,分别是蓬莱、方丈和瀛洲。当然,也有人把现在的旅游胜地黄山、庐山和雁荡山叫作三山。
——引自章节:春秋战国
🗒️ 我的笔记
读书笔记
// dataviewjs: 根据读书笔记中是否存在“摘抄”部分的标题,选择不同渲染方式。若有摘抄部分,则只显示摘抄部分,否则显示页面封面内容。
(async () => {
// 1. 获取书籍笔记库路径和书名变量
const configPage = dv.pages(`#path`)
.filter(p => String(p.file.path).includes("BookLibPath"))[0];
if (!configPage) {
dv.paragraph("⚠️ 未配置 `BookLibPath` 路径。");
return;
}
const BookNotePath = configPage.BookNotePath;
const rawBook = '顺着历史学古诗';
const bookName = rawBook.replace(/^['"]+|['"]+$/g, "").trim();
// 2. 查找匹配笔记
const matching = dv.pages(`"${BookNotePath}"`)
.filter(p => p.file.name.includes(bookName));
if (matching.length === 0) {
// 4a. 如果没有笔记
dv.paragraph(`尚未创建《${bookName}》的读书笔记。`);
return;
}
// 3. 选第一个匹配的笔记
const note = matching[0];
const path = note.file.path;
const name = note.file.name;
// 4. 读取文件、去除 frontmatter
const file = app.vault.getAbstractFileByPath(path);
let content = await app.vault.read(file);
content = content.replace(/^---\r?\n[\s\S]*?\r?\n---/, "").trim();
// 5. 提取 “摘抄” 节
const lines = content.split('\n');
let capture = false;
const sect = [];
for (const line of lines) {
if (/^#{1,6}\s*摘抄\s*$/.test(line)) {
capture = true;
continue;
}
if (capture && /^#{1,6}\s*\S+/.test(line)) break;
if (capture) sect.push(line);
}
const excerpt = sect.join('\n').trim();
if (excerpt) {
// 6a. 有“摘抄”,渲染带折叠和样式的区域
dv.paragraph(`
<div style="
border:1px solid;
padding:8px;
border-radius:4px;
margin:8px 0;
">
<div>
<strong>📖 书籍笔记:</strong>
</div>
<hr style="
border:none;
border-top:1px dotted;
margin:8px 0;
">
<details>
<summary style="cursor:pointer;">📋 摘抄(点击展开/收起)</summary>
${excerpt}
</details>
</div>
`);
} else {
// 6b. 无“摘抄”,退回到第一段逻辑:展示封面图
dv.paragraph("读书笔记:");
const imagePath = path.replace(/\s+/g, '%20');
dv.paragraph(``);
}
})();
微信读书
- 微信读书 -
高亮划线
let WereadPath = dv.pages(`#path`).filter(p=>String(p.file.path).includes("BookLibPath"))[0].WereadPath;
let link = dv.pages(`"${WereadPath}"`)
.filter(p=>String(p.file.name).includes("顺着历史学古诗")).file.path;
if(link[0])
{
let path = link[0].replace(/\s+/g, '%20');
dv.paragraph("");
}
- 微信读书 -
读书笔记
let WereadPath = dv.pages(`#path`).filter(p=>String(p.file.path).includes("BookLibPath"))[0].WereadPath;
let link = dv.pages(`"${WereadPath}"`)
.filter(p=>String(p.file.name).includes("顺着历史学古诗")).file.path;
if(link[0])
{
let path = link[0].replace(/\s+/g, '%20');
dv.paragraph("");
}
- 微信读书 -
本书评论
let WereadPath = dv.pages(`#path`).filter(p=>String(p.file.path).includes("BookLibPath"))[0].WereadPath;
let link = dv.pages(`"${WereadPath}"`)
.filter(p=>String(p.file.name).includes("顺着历史学古诗")).file.path;
if(link[0])
{
let path = link[0].replace(/\s+/g, '%20');
dv.paragraph("");
}
Zotero
- Zotero -
电子书
let ZoteroPath = dv.pages(`#path`).filter(p=>String(p.file.path).includes("BookLibPath"))[0].ZoteroPath;
let link = dv.pages(`"${ZoteroPath}"`)
.filter(p=>String(p.file.name).includes("顺着历史学古诗")).file.path;
if(link[0])
{
let path = link[0].replace(/\s+/g, '%20');
dv.paragraph("");
}
- Zotero -
注释
let ZoteroPath = dv.pages(`#path`).filter(p=>String(p.file.path).includes("BookLibPath"))[0].ZoteroPath;
let link = dv.pages(`"${ZoteroPath}"`)
.filter(p=>String(p.file.name).includes("顺着历史学古诗")).file.path;
if(link[0])
{
let path = link[0].replace(/\s+/g, '%20');
dv.paragraph("");
}