将带注释的Word文档改造成点击注释引用即可弹窗显示注释的HTML文档

阅读中国古籍电子书的时候,往往有很多注释。在正文和注释之间来回滚动页面是一件挺麻烦的事,比较方便的做法是将它编辑成通过点击注释引用即将注释弹出显示在引用所在位置的HTML文档,然后利用HTML文档制作成PDF或者epub文件,就比较便于阅读了。

例如下面这首诗,在Word文档中显示的样子:

c5f0c383665f45fd977e393b98d69b00.png

将它改造成HTML文件,在浏览器中就变成了下面的样子:

bb5e85395f3745e581f30860f1bc67f4.png

本文就介绍快速批量实现这种转换的一个思路。

首先,在Word文档中要定义好样式。本文以诗标题样式为“标题 2”,诗的内容样式为“要点”,诗的注释样式为“正文”,并且每一条注释为一段,中间不得用enter键分段(如确需分行,可用shift+enter进行软分行)。

然后,我们可以编写下面的VBA,对段落进行改造:

Sub 将Word文本改造为带HTML标记的文本()Dim i%, j%On Error Resume NextWith Selection.StartOf wdStoryWith .Find.Forward = True.MatchWildcards = True' 循环查找注释引用进行处理Do' 注释引用形式为①-⑨,如果有更大的编号,可以从①开始再次循环使用' 只要注释引用与注释文本顺序能够一一对应,编号并没有什么关系Found = .Execute(FindText:="[①-⑨]")commentRef = Selection.Range.TextIf Selection.Style = "标题 2" Then' 文档中标题与正文连续编号的i = i + 1' 将①-⑨形式的编号改成#1-#9形式的对应编号,防止查找陷入死循环' 之所以用①-⑨编号,是因为像下面这样利用unicode编码在带圈序号' 与阿拉伯数字之间转换极为方便commentRef = "#" & ChrW(AscW(commentRef) - 9263)' 将带圈数字注释引用改为#加阿拉伯数字形式的注释引用Selection.Range.Text = "<a id=""commentRef" & Trim(Str(i)) & """ href=""#"" class=""commentRef""" + _" data-related-div=""commentDiv" & Trim(Str(i)) & """>" & commentRef & "</a>"' 如果是“标题 2”样式的段落,用<h2>标签包裹起来para_text = Selection.Paragraphs(1).Range.Text' 如果段落中有多个注释,已经在第一个注释处理时包裹了<h2>标签的,不再包裹If Left(para_text, 3) <> "<h2" ThenSelection.Paragraphs(1).Range.Text = "<h2>" & para_text & "</h2>" & vbCrLfEnd IfElseIf Selection.Style = "要点" Theni = i + 1commentRef = "#" & ChrW(AscW(commentRef) - 9263)Selection.Range.Text = "<a id=""commentRef" & Trim(Str(i)) & """ href=""#"" class=""commentRef""" + _" data-related-div=""commentDiv" & Trim(Str(i)) & """>" & commentRef & "</a>"' 对于样式为“要点”的段落,用class为mainPoint的<div>标签包裹para_text = Selection.Paragraphs(1).Range.TextIf Left(para_text, 4) <> "<div" ThenSelection.Paragraphs(1).Range.Text = "<div class=""mainPoint"">" & para_text & "</div>" & vbCrLfEnd IfElseIf Selection.Style = "正文" Then' 注释单独连续编号的j = j + 1Selection.Paragraphs(1).Range.Text = "<div id=""commentDiv" & Trim(Str(j)) & """ class=""commentDiv"">" & _"<a class=""commentRef"" href=""#commentRef" & Trim(Str(j)) & """>" & "#" & ChrW(AscW(commentRef) - 9263) & "</a>" & _Replace(Selection.Paragraphs(1).Range.Text, commentRef, "") & "</div>" & vbCrLfEnd IfLoop While Found '直至找不到注释引用停止循环End WithEnd With
End Sub

运行以上宏,Word文档中的文本成了下面这样(为了演示注释引用可以重复用①-⑨进行编号,只要顺序能够一一对应即可,故意将诗歌内容和注释内容各重复了一次):

<h2>斗鸡<a id="commentRef1" href="#" class="commentRef" data-related-div="commentDiv1">#1</a>
</h2>
<div class="mainPoint">游目极妙伎,倾听厌宫商<a id="commentRef2" href="#" class="commentRef" data-related-div="commentDiv2">#2</a>。主人寂无为,众宾进乐方<a id="commentRef3" href="#" class="commentRef" data-related-div="commentDiv3">#3</a>。长筵坐戏客,斗鸡观闲房<a id="commentRef4" href="#" class="commentRef" data-related-div="commentDiv4">#4</a>。群雄正翕赫,双翅自飞扬<a id="commentRef5" href="#" class="commentRef" data-related-div="commentDiv5">#5</a>。振羽激流风,悍目发朱光<a id="commentRef6" href="#" class="commentRef" data-related-div="commentDiv6">#6</a>。觜落轻毛散,严距往往伤<a id="commentRef7" href="#" class="commentRef" data-related-div="commentDiv7">#7</a>。长鸣入青云,扇翼独翱翔<a id="commentRef8" href="#" class="commentRef" data-related-div="commentDiv8">#8</a>。愿蒙狸膏助,长得擅此场<a id="commentRef9" href="#" class="commentRef" data-related-div="commentDiv9">#9</a>。
</div>
<div class="mainPoint">游目极妙伎,倾听厌宫商<a id="commentRef10" href="#" class="commentRef" data-related-div="commentDiv10">#2</a>。主人寂无为,众宾进乐方<a id="commentRef11" href="#" class="commentRef" data-related-div="commentDiv11">#3</a>。长筵坐戏客,斗鸡观闲房<a id="commentRef12" href="#" class="commentRef" data-related-div="commentDiv12">#4</a>。群雄正翕赫,双翅自飞扬<a id="commentRef13" href="#" class="commentRef" data-related-div="commentDiv13">#5</a>。振羽激流风,悍目发朱光<a id="commentRef14" href="#" class="commentRef" data-related-div="commentDiv14">#6</a>。觜落轻毛散,严距往往伤<a id="commentRef15" href="#" class="commentRef" data-related-div="commentDiv15">#7</a>。长鸣入青云,扇翼独翱翔<a id="commentRef16" href="#" class="commentRef" data-related-div="commentDiv16">#8</a>。愿蒙狸膏助,长得擅此场<a id="commentRef17" href="#" class="commentRef" data-related-div="commentDiv17">#9</a>。
</div>
<div id="commentDiv1" class="commentDiv"><a class="commentRef" href="#commentRef1">#1</a>曹操统一北方后以邺城(今河北省临漳县邺城镇)为都,曹植与其兄曹丕以贵公子身份,与陈琳、王粲、徐幹、阮瑀、应玚、刘桢等建安诸子,经常相聚游园饮宴,诗赋唱和。当时流行斗鸡游戏,在一次斗鸡游戏后各有所作。这是曹植作的诗。现存的还有刘桢、应玚的同题诗。此诗的写作时间大约在建安十六年(211年)前后。前人有谓作于魏明帝筑斗鸡台的太和中,误;盖其时刘桢、应玚早已逝世;近人或谓作于建安二十五年前,亦不准确;盖刘桢、应玚、徐幹、陈琳于建安二十二年(217年)已死于大瘟疫,其时建安七子俱已亡故,此诗之作不会迟于邺下文人集团聚会活动之时。据现存建安诸子作品,他们的聚会活动主要在建安十六年曹丕封五官中郎将、丞相副前后一、二年,以后丕、植争嗣矛盾激化,建安文人分属丕党、植党,集体活动逐渐减少,如应玚、刘桢即分属两党。应玚《斗鸡》诗有“兄弟游戏场,命驾迎众宾”两句,既称“兄弟”和“众宾”,据此推想,此诗也可能作于曹丕任五官中郎将之前或当年。据以上考察,可信此诗是曹植的早期诗作,即十九岁左右的作品。全诗描写斗鸡游戏的热烈场面,对斗鸡的描写细致、传神,巧用比喻和夸饰,显示出青年作者的才华,也展示了当时贵公子生活和文人文艺活动的一个生动的镜头。
</div>
<div id="commentDiv2" class="commentDiv"><a class="commentRef" href="#commentRef2">#2</a>〔游目二句〕游目:游古通流,流目即放目随意观望。极:穷尽。妙伎:优美的舞伎。伎,古代女歌舞艺人。厌:倦。宫商:音调名,代指乐曲。二句意为看遍了舞女优美的舞蹈,听厌了音乐的曲调。
</div>
<div id="commentDiv3" class="commentDiv"><a class="commentRef" href="#commentRef3">#3</a>〔主人〕指曹丕、曹植兄弟。〔无为〕无事做。〔乐方〕娱乐方式。
</div>
<div id="commentDiv4" class="commentDiv"><a class="commentRef" href="#commentRef4">#4</a>〔长筵〕筵,竹席。古人席地而坐,地上铺竹席称筵,筵上再铺一重称席,筵长,席短,故称长筵。〔戏客〕参加游戏的宾客。〔闲房〕殿旁两侧空房。闲,静也。观闲,丁晏《曹集铨评》(以下简称丁本)作“闲观”,《艺文类聚》作“閒观”,宋刊本《曹子建文集》(以下简称宋本)闲作间,闲间古通,间为闲的异体,今规范字为闲。斗鸡观闲房,即在殿房旁空房观斗鸡。
</div>
<div id="commentDiv5" class="commentDiv"><a class="commentRef" href="#commentRef5">#5</a>〔翕(xī)赫〕盛貌,形容斗鸡气势高昂。〔双翅〕丁本作双翘,《艺文类聚》作双翅,按《说文解字》:“翘,尾长毛也。”双翘则欠通,故据《艺文类聚》改。〔飞扬〕形容双翅羽毛竖立若飞。
</div>
<div id="commentDiv6" class="commentDiv"><a class="commentRef" href="#commentRef6">#6</a>〔振羽二句〕激流风,丁本原作“邀清风”,《艺文类聚》作“激流风”。案此句应为挥羽激流风。挥羽,振动羽毛。激,发也。流风,急风。〔悍目〕凶悍的目光。二句意为振动羽毛激起急风,凶悍的目光发出红色光芒。
</div>
<div id="commentDiv7" class="commentDiv"><a class="commentRef" href="#commentRef7">#7</a>〔觜落〕觜同“嘴”。斗鸡以尖嘴相啄,乃至伤损脱落。〔轻毛〕柔细的毛散乱脱落。〔严距〕古代斗鸡用锋利的金属附于鸡爪,斗时用以刺伤对方,又称金距。
</div>
<div id="commentDiv8" class="commentDiv"><a class="commentRef" href="#commentRef8">#8</a>〔长鸣入青云〕斗胜的鸡先鸣,鸣声高昂。此处夸张地形容其响声直彻云霄。〔扇翼〕扇同“搧”,搧动羽翼。〔翱翔〕本义是禽鸟的飞翔,亦指游逛徘徊,这里指自得地绕场急走。
</div>
<div id="commentDiv9" class="commentDiv"><a class="commentRef" href="#commentRef9">#9</a>〔愿蒙二句〕狸膏:黄鼠狼的油膏。丁晏《事类赋注》引《庄子》逸篇:“羊沟之鸡,时以胜人者,以狸膏涂其头也。”盖鸡畏狸,凃狸膏可退敌。长,宋本作“常”。擅,专也。二句意为希望有狸膏的帮助而专擅于斗鸡场。
</div>
<div id="commentDiv10" class="commentDiv"><a class="commentRef" href="#commentRef10">#2</a>〔游目二句〕游目:游古通流,流目即放目随意观望。极:穷尽。妙伎:优美的舞伎。伎,古代女歌舞艺人。厌:倦。宫商:音调名,代指乐曲。二句意为看遍了舞女优美的舞蹈,听厌了音乐的曲调。
</div>
<div id="commentDiv11" class="commentDiv"><a class="commentRef" href="#commentRef11">#3</a>〔主人〕指曹丕、曹植兄弟。〔无为〕无事做。〔乐方〕娱乐方式。
</div>
<div id="commentDiv12" class="commentDiv"><a class="commentRef" href="#commentRef12">#4</a>〔长筵〕筵,竹席。古人席地而坐,地上铺竹席称筵,筵上再铺一重称席,筵长,席短,故称长筵。〔戏客〕参加游戏的宾客。〔闲房〕殿旁两侧空房。闲,静也。观闲,丁晏《曹集铨评》(以下简称丁本)作“闲观”,《艺文类聚》作“閒观”,宋刊本《曹子建文集》(以下简称宋本)闲作间,闲间古通,间为闲的异体,今规范字为闲。斗鸡观闲房,即在殿房旁空房观斗鸡。
</div>
<div id="commentDiv13" class="commentDiv"><a class="commentRef" href="#commentRef13">#5</a>〔翕(xī)赫〕盛貌,形容斗鸡气势高昂。〔双翅〕丁本作双翘,《艺文类聚》作双翅,按《说文解字》:“翘,尾长毛也。”双翘则欠通,故据《艺文类聚》改。〔飞扬〕形容双翅羽毛竖立若飞。
</div>
<div id="commentDiv14" class="commentDiv"><a class="commentRef" href="#commentRef14">#6</a>〔振羽二句〕激流风,丁本原作“邀清风”,《艺文类聚》作“激流风”。案此句应为挥羽激流风。挥羽,振动羽毛。激,发也。流风,急风。〔悍目〕凶悍的目光。二句意为振动羽毛激起急风,凶悍的目光发出红色光芒。
</div>
<div id="commentDiv15" class="commentDiv"><a class="commentRef" href="#commentRef15">#7</a>〔觜落〕觜同“嘴”。斗鸡以尖嘴相啄,乃至伤损脱落。〔轻毛〕柔细的毛散乱脱落。〔严距〕古代斗鸡用锋利的金属附于鸡爪,斗时用以刺伤对方,又称金距。
</div>
<div id="commentDiv16" class="commentDiv"><a class="commentRef" href="#commentRef16">#8</a>〔长鸣入青云〕斗胜的鸡先鸣,鸣声高昂。此处夸张地形容其响声直彻云霄。〔扇翼〕扇同“搧”,搧动羽翼。〔翱翔〕本义是禽鸟的飞翔,亦指游逛徘徊,这里指自得地绕场急走。
</div>
<div id="commentDiv17" class="commentDiv"><a class="commentRef" href="#commentRef17">#9</a>〔愿蒙二句〕狸膏:黄鼠狼的油膏。丁晏《事类赋注》引《庄子》逸篇:“羊沟之鸡,时以胜人者,以狸膏涂其头也。”盖鸡畏狸,凃狸膏可退敌。长,宋本作“常”。擅,专也。二句意为希望有狸膏的帮助而专擅于斗鸡场。
</div>

下面再准备一个HTML模板,内容如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" clickable="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 定义浮动框的样式 */#floatingBox {position: absolute;background-color: white;border: 1px solid gray;padding: 10px;z-index: 999;}/* 定义标题2段落的样式 */h2 {font-size:3em;}/* 定义诗歌内容段落的样式 */.mainPoint{font-size:2em;font-weight:bold;}/* 定义注释段落的样式 */.commentDiv{font-size:1.5em;}/* 注释引用以上标样式显示 */a.commentRef{vertical-align: super;}</style>
</head><body><!--此处插入在Word中用VBA处理过的文本--><div id="floatingBox" style="display:none"></div><script>// 获取浮动框的DOM元素const floatingBox = document.getElementById('floatingBox');// 获取所有带有 commentRef 类的a标签元素const commentRefs = document.querySelectorAll('.commentRef');// 获取所有带有 commentDiv 类的div标签元素const commentDivs = document.querySelectorAll('.commentDiv');// 遍历每个a标签,添加点击事件监听器commentRefs.forEach(function (link) {link.addEventListener('click', function (event) {// 阻止a标签默认的跳转行为event.preventDefault();// 获取当前a标签关联的div的idconst relatedDivId = link.dataset.relatedDiv;// 根据id获取对应的div元素const relatedDiv = document.getElementById(relatedDivId);// 获取要显示的文字内容const text = relatedDiv.textContent;// 设置浮动框的内容floatingBox.textContent = text;// 设置浮动框显示并定位到点击位置floatingBox.style.display = 'block';floatingBox.style.left = event.pageX + 'px';floatingBox.style.top = event.pageY + 'px';});});// 给浮动框添加点击事件监听器,点击浮动框可隐藏浮动框floatingBox.addEventListener('click', function (event) {// 阻止事件冒泡,避免影响后续查找对应的a标签逻辑event.stopPropagation();floatingBox.style.display = 'none';});</script>
</body></html>

当然,如果最后要做成epub文件,以上HTML文档中的样式定义部分应当抽出来做成单独文件,在HTML页面中加以引用即可。样式文件的内容也可以根据自己的喜好自行定义。接下来复制在Word文档中用VBA处理后的文本,粘贴到上面的HTML模板中注释“<!--此处插入在Word中用VBA处理过的文本-->”的位置,即可大功告成。本文用于示例的诗替换后的最终内容如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" clickable="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 定义浮动框的样式 */#floatingBox {position: absolute;background-color: white;border: 1px solid gray;padding: 10px;z-index: 999;}h2 {font-size:3em;}.mainPoint{font-size:2em;font-weight:bold;}.commentDiv{font-size:1.5em;}a.commentRef{vertical-align: super;}</style>
</head><body><h2>斗鸡<a id="commentRef1" href="#" class="commentRef" data-related-div="commentDiv1">#1</a>
</h2>
<div class="mainPoint">游目极妙伎,倾听厌宫商<a id="commentRef2" href="#" class="commentRef" data-related-div="commentDiv2">#2</a>。主人寂无为,众宾进乐方<a id="commentRef3" href="#" class="commentRef" data-related-div="commentDiv3">#3</a>。长筵坐戏客,斗鸡观闲房<a id="commentRef4" href="#" class="commentRef" data-related-div="commentDiv4">#4</a>。群雄正翕赫,双翅自飞扬<a id="commentRef5" href="#" class="commentRef" data-related-div="commentDiv5">#5</a>。振羽激流风,悍目发朱光<a id="commentRef6" href="#" class="commentRef" data-related-div="commentDiv6">#6</a>。觜落轻毛散,严距往往伤<a id="commentRef7" href="#" class="commentRef" data-related-div="commentDiv7">#7</a>。长鸣入青云,扇翼独翱翔<a id="commentRef8" href="#" class="commentRef" data-related-div="commentDiv8">#8</a>。愿蒙狸膏助,长得擅此场<a id="commentRef9" href="#" class="commentRef" data-related-div="commentDiv9">#9</a>。
</div>
<div class="mainPoint">游目极妙伎,倾听厌宫商<a id="commentRef10" href="#" class="commentRef" data-related-div="commentDiv10">#2</a>。主人寂无为,众宾进乐方<a id="commentRef11" href="#" class="commentRef" data-related-div="commentDiv11">#3</a>。长筵坐戏客,斗鸡观闲房<a id="commentRef12" href="#" class="commentRef" data-related-div="commentDiv12">#4</a>。群雄正翕赫,双翅自飞扬<a id="commentRef13" href="#" class="commentRef" data-related-div="commentDiv13">#5</a>。振羽激流风,悍目发朱光<a id="commentRef14" href="#" class="commentRef" data-related-div="commentDiv14">#6</a>。觜落轻毛散,严距往往伤<a id="commentRef15" href="#" class="commentRef" data-related-div="commentDiv15">#7</a>。长鸣入青云,扇翼独翱翔<a id="commentRef16" href="#" class="commentRef" data-related-div="commentDiv16">#8</a>。愿蒙狸膏助,长得擅此场<a id="commentRef17" href="#" class="commentRef" data-related-div="commentDiv17">#9</a>。
</div>
<div id="commentDiv1" class="commentDiv"><a class="commentRef" href="#commentRef1">#1</a>曹操统一北方后以邺城(今河北省临漳县邺城镇)为都,曹植与其兄曹丕以贵公子身份,与陈琳、王粲、徐幹、阮瑀、应玚、刘桢等建安诸子,经常相聚游园饮宴,诗赋唱和。当时流行斗鸡游戏,在一次斗鸡游戏后各有所作。这是曹植作的诗。现存的还有刘桢、应玚的同题诗。此诗的写作时间大约在建安十六年(211年)前后。前人有谓作于魏明帝筑斗鸡台的太和中,误;盖其时刘桢、应玚早已逝世;近人或谓作于建安二十五年前,亦不准确;盖刘桢、应玚、徐幹、陈琳于建安二十二年(217年)已死于大瘟疫,其时建安七子俱已亡故,此诗之作不会迟于邺下文人集团聚会活动之时。据现存建安诸子作品,他们的聚会活动主要在建安十六年曹丕封五官中郎将、丞相副前后一、二年,以后丕、植争嗣矛盾激化,建安文人分属丕党、植党,集体活动逐渐减少,如应玚、刘桢即分属两党。应玚《斗鸡》诗有“兄弟游戏场,命驾迎众宾”两句,既称“兄弟”和“众宾”,据此推想,此诗也可能作于曹丕任五官中郎将之前或当年。据以上考察,可信此诗是曹植的早期诗作,即十九岁左右的作品。全诗描写斗鸡游戏的热烈场面,对斗鸡的描写细致、传神,巧用比喻和夸饰,显示出青年作者的才华,也展示了当时贵公子生活和文人文艺活动的一个生动的镜头。
</div>
<div id="commentDiv2" class="commentDiv"><a class="commentRef" href="#commentRef2">#2</a>〔游目二句〕游目:游古通流,流目即放目随意观望。极:穷尽。妙伎:优美的舞伎。伎,古代女歌舞艺人。厌:倦。宫商:音调名,代指乐曲。二句意为看遍了舞女优美的舞蹈,听厌了音乐的曲调。
</div>
<div id="commentDiv3" class="commentDiv"><a class="commentRef" href="#commentRef3">#3</a>〔主人〕指曹丕、曹植兄弟。〔无为〕无事做。〔乐方〕娱乐方式。
</div>
<div id="commentDiv4" class="commentDiv"><a class="commentRef" href="#commentRef4">#4</a>〔长筵〕筵,竹席。古人席地而坐,地上铺竹席称筵,筵上再铺一重称席,筵长,席短,故称长筵。〔戏客〕参加游戏的宾客。〔闲房〕殿旁两侧空房。闲,静也。观闲,丁晏《曹集铨评》(以下简称丁本)作“闲观”,《艺文类聚》作“閒观”,宋刊本《曹子建文集》(以下简称宋本)闲作间,闲间古通,间为闲的异体,今规范字为闲。斗鸡观闲房,即在殿房旁空房观斗鸡。
</div>
<div id="commentDiv5" class="commentDiv"><a class="commentRef" href="#commentRef5">#5</a>〔翕(xī)赫〕盛貌,形容斗鸡气势高昂。〔双翅〕丁本作双翘,《艺文类聚》作双翅,按《说文解字》:“翘,尾长毛也。”双翘则欠通,故据《艺文类聚》改。〔飞扬〕形容双翅羽毛竖立若飞。
</div>
<div id="commentDiv6" class="commentDiv"><a class="commentRef" href="#commentRef6">#6</a>〔振羽二句〕激流风,丁本原作“邀清风”,《艺文类聚》作“激流风”。案此句应为挥羽激流风。挥羽,振动羽毛。激,发也。流风,急风。〔悍目〕凶悍的目光。二句意为振动羽毛激起急风,凶悍的目光发出红色光芒。
</div>
<div id="commentDiv7" class="commentDiv"><a class="commentRef" href="#commentRef7">#7</a>〔觜落〕觜同“嘴”。斗鸡以尖嘴相啄,乃至伤损脱落。〔轻毛〕柔细的毛散乱脱落。〔严距〕古代斗鸡用锋利的金属附于鸡爪,斗时用以刺伤对方,又称金距。
</div>
<div id="commentDiv8" class="commentDiv"><a class="commentRef" href="#commentRef8">#8</a>〔长鸣入青云〕斗胜的鸡先鸣,鸣声高昂。此处夸张地形容其响声直彻云霄。〔扇翼〕扇同“搧”,搧动羽翼。〔翱翔〕本义是禽鸟的飞翔,亦指游逛徘徊,这里指自得地绕场急走。
</div>
<div id="commentDiv9" class="commentDiv"><a class="commentRef" href="#commentRef9">#9</a>〔愿蒙二句〕狸膏:黄鼠狼的油膏。丁晏《事类赋注》引《庄子》逸篇:“羊沟之鸡,时以胜人者,以狸膏涂其头也。”盖鸡畏狸,凃狸膏可退敌。长,宋本作“常”。擅,专也。二句意为希望有狸膏的帮助而专擅于斗鸡场。
</div>
<div id="commentDiv10" class="commentDiv"><a class="commentRef" href="#commentRef10">#2</a>〔游目二句〕游目:游古通流,流目即放目随意观望。极:穷尽。妙伎:优美的舞伎。伎,古代女歌舞艺人。厌:倦。宫商:音调名,代指乐曲。二句意为看遍了舞女优美的舞蹈,听厌了音乐的曲调。
</div>
<div id="commentDiv11" class="commentDiv"><a class="commentRef" href="#commentRef11">#3</a>〔主人〕指曹丕、曹植兄弟。〔无为〕无事做。〔乐方〕娱乐方式。
</div>
<div id="commentDiv12" class="commentDiv"><a class="commentRef" href="#commentRef12">#4</a>〔长筵〕筵,竹席。古人席地而坐,地上铺竹席称筵,筵上再铺一重称席,筵长,席短,故称长筵。〔戏客〕参加游戏的宾客。〔闲房〕殿旁两侧空房。闲,静也。观闲,丁晏《曹集铨评》(以下简称丁本)作“闲观”,《艺文类聚》作“閒观”,宋刊本《曹子建文集》(以下简称宋本)闲作间,闲间古通,间为闲的异体,今规范字为闲。斗鸡观闲房,即在殿房旁空房观斗鸡。
</div>
<div id="commentDiv13" class="commentDiv"><a class="commentRef" href="#commentRef13">#5</a>〔翕(xī)赫〕盛貌,形容斗鸡气势高昂。〔双翅〕丁本作双翘,《艺文类聚》作双翅,按《说文解字》:“翘,尾长毛也。”双翘则欠通,故据《艺文类聚》改。〔飞扬〕形容双翅羽毛竖立若飞。
</div>
<div id="commentDiv14" class="commentDiv"><a class="commentRef" href="#commentRef14">#6</a>〔振羽二句〕激流风,丁本原作“邀清风”,《艺文类聚》作“激流风”。案此句应为挥羽激流风。挥羽,振动羽毛。激,发也。流风,急风。〔悍目〕凶悍的目光。二句意为振动羽毛激起急风,凶悍的目光发出红色光芒。
</div>
<div id="commentDiv15" class="commentDiv"><a class="commentRef" href="#commentRef15">#7</a>〔觜落〕觜同“嘴”。斗鸡以尖嘴相啄,乃至伤损脱落。〔轻毛〕柔细的毛散乱脱落。〔严距〕古代斗鸡用锋利的金属附于鸡爪,斗时用以刺伤对方,又称金距。
</div>
<div id="commentDiv16" class="commentDiv"><a class="commentRef" href="#commentRef16">#8</a>〔长鸣入青云〕斗胜的鸡先鸣,鸣声高昂。此处夸张地形容其响声直彻云霄。〔扇翼〕扇同“搧”,搧动羽翼。〔翱翔〕本义是禽鸟的飞翔,亦指游逛徘徊,这里指自得地绕场急走。
</div>
<div id="commentDiv17" class="commentDiv"><a class="commentRef" href="#commentRef17">#9</a>〔愿蒙二句〕狸膏:黄鼠狼的油膏。丁晏《事类赋注》引《庄子》逸篇:“羊沟之鸡,时以胜人者,以狸膏涂其头也。”盖鸡畏狸,凃狸膏可退敌。长,宋本作“常”。擅,专也。二句意为希望有狸膏的帮助而专擅于斗鸡场。
</div><div id="floatingBox" style="display:none"></div><script>// 获取浮动框的DOM元素const floatingBox = document.getElementById('floatingBox');// 获取所有带有 commentRef 类的a标签元素const commentRefs = document.querySelectorAll('.commentRef');// 获取所有带有 commentDiv 类的div标签元素const commentDivs = document.querySelectorAll('.commentDiv');// 遍历每个a标签,添加点击事件监听器commentRefs.forEach(function (link) {link.addEventListener('click', function (event) {// 阻止a标签默认的跳转行为event.preventDefault();// 获取当前a标签关联的div的idconst relatedDivId = link.dataset.relatedDiv;// 根据id获取对应的div元素const relatedDiv = document.getElementById(relatedDivId);// 获取要显示的文字内容const text = relatedDiv.textContent;// 设置浮动框的内容floatingBox.textContent = text;// 设置浮动框显示并定位到点击位置floatingBox.style.display = 'block';floatingBox.style.left = event.pageX + 'px';floatingBox.style.top = event.pageY + 'px';});});// 给浮动框添加点击事件监听器,点击浮动框可隐藏浮动框floatingBox.addEventListener('click', function (event) {// 阻止事件冒泡,避免影响后续查找对应的a标签逻辑event.stopPropagation();floatingBox.style.display = 'none';});</script>
</body></html>

前面处理后的注释引用,如果不喜欢这个样式,也可以用VBA替换回带圈数字样式,但是带圈数字编号太大时比较麻烦(曹植集注中有的诗注释达到了六七十条),不如只利用查找替换将“#”删掉。如果注释太多编号数量超过Integer数据类型的范围(可能性约等于0),可以将VBA代码中的i,j定义为Long数据类型。

因为本文是由于编辑诗歌电子书引发的,如果点赞超过十个,我就在这个编程序的平台放一首自己写的长诗。☺

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Harmony Next开发通过bindSheet绑定半模态窗口

示例概述 Harmony Next开发通过bindSheet绑定半模态窗口 知识点 半模态窗口父子组件传值 组件 LoginComponent Component struct LoginComponent {// Prop 父子单项绑定值Prop message:string // Link 父子双向绑定值Link userName:stringLink password:stringLink isSh…

codeforces一些题目思路复盘

codeforces round 919 dv2 C Partitioning the Array 大致题意&#xff0c;对于n约数i&#xff0c;我们把原数组分成份&#xff0c;并且每份中有i个元素&#xff0c;对于每个分组情况&#xff0c;如果存在一个数m使得数组中元素modm后使得每个部分的数组完全相同&#xff0c;如…

ElasticSearch 简介

一、什么是 ElastcSearch&#xff1f; ElasticSearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎。 1.1 ElasticSearh 的基本术语概念 index 索引 索引类似与 mysql 中的数据库&#xff0c;ES 中的索引是存储数据的地方&#xff0c;包含了一堆有相似结构的文档数据…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片&#xff0c;无法预览&#xff0c;提示&#xff1a; Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法&#xff1a; 点击左边这个刷新下即可

测试工程师的职业规划

测试人员在管理上的发展 基层测试管理者&#xff1a;测试组长 工作内容&#xff1a;安排小组工作&#xff0c;提升小组成员测试能力&#xff0c;负责重要的测试工作。 负责对象&#xff1a;版本&#xff0c;项目 中层测试管理者&#xff1a;测试经理 负责对象&#xff1…

Linux系统下多任务管理器:screen使用指南

文章目录 安装快速入门启动Screen会话创建和管理窗口退出和恢复会话 高级功能多用户支持日志记录复制粘贴模式自定义配置 在Linux和类Unix系统的世界里&#xff0c;命令行是用于与系统交互的主要方式之一。然而&#xff0c;当涉及到远程服务器管理、长时间运行的任务或者同时处…

C缺陷与陷阱 — 8 编译与链接

目录 1 程序的编译过程 2 动态链接的优缺点 2.1 动态链接的优点 2.2 动态链接的缺点 2.3 只使用动态链接 3 函数库链接的5个特殊秘密 4 警惕Interpositioning 5 产生链接器报告文件 1 程序的编译过程 程序的编译过程是将源代码转换成计算机可以执行的机器代码的过程。…

Harmony Next开发Navigation页面跳转

概述 Harmony Next开发Navigation页面跳转 知识点 Navigation通过NavPathStack路由跳转Navigation以弹窗的方式打开NavDestination页面Menu配置 组件 NavTest Entry Component struct NavTest {Provide pageInfos: NavPathStack new NavPathStack()Builder PageMap(name…

大模型系列4--开源大模型本地部署到微调(WIP)

背景 一直想真正了解大模型对硬件资源的需求&#xff0c;于是准备详细看一篇视频&#xff0c;将核心要点总结记录下。本文内容参考视频&#xff1a;保姆级教程&#xff1a;6小时掌握开源大模型本地部署到微调&#xff0c;感谢up主 训练成本 训练 > 微调 > 推理训练GPT…

仿《公主连结》首页场景的制作(附资源包)

先看效果&#xff08;主要实现点击按钮切换图片&#xff0c;未解锁按钮弹出提示&#xff0c;点击过后播放动画&#xff09; 预备知识&#xff08;单例模式&#xff0c;携程&#xff0c; Resources.Load加载资源的方式&#xff09; 资源准备&#xff08;底部按钮7个图标&#x…

Redis - 集合 Set 及代码实战

Set 类型 定义&#xff1a;类似 Java 中的 HashSet 类&#xff0c;key 是 set 的名字&#xff0c;value 是集合中的值特点 无序元素唯一查找速度快支持交集、并集、补集功能 常见命令 命令功能SADD key member …添加元素SREM key member …删除元素SCARD key获取元素个数SI…

基于Llamaindex的网页内容爬取实战

目的 本文不关注如何解析网页 html 元素和各种 python 爬虫技术&#xff0c;仅作为一种网页数据的预处理手段进行研究。Llamaindex 也并不是爬虫技术的集大成者&#xff0c;使用它是为了后续的存查一体化。 安装依赖 pip install llama-index-readers-web # pip install llam…

《九重紫》逐集分析鉴赏第一集(下)

主标题&#xff1a;《九重紫》一起追剧吧 副标题&#xff1a;《九重紫》逐集分析鉴赏第一集&#xff08;下&#xff09;/《九重紫》逐集分析鉴赏1 接上回分解&#xff0c;窦昭和宋墨都安置城外万佛寺 交谈没一会儿&#xff0c;天还未亮&#xff0c;兵临寺下 记住这个人&…

Introduction to NoSQL Systems

What is NoSQL NoSQL database are no-tabular非數據表格 database that store data differently than relational tables 其數據的存儲方式與關係型表格不同 Database that provide a mechanism機制 for data storage retrieval 檢索 that is modelled in means other than …

图论【Lecode_HOT100】

文章目录 1.岛屿数量No.2002.腐烂的橘子No.9943.课程表No.2074.实现Trie&#xff08;前缀树&#xff09;No.208 1.岛屿数量No.200 class Solution {public int numIslands(char[][] grid) {if (grid null || grid.length 0) {return 0;}int numIslands 0;int rows grid.len…

【深度学习量化交易9】miniQMT快速上手教程案例集——使用xtQuant获取基本面数据篇

我是Mr.看海&#xff0c;我在尝试用信号处理的知识积累和思考方式做量化交易&#xff0c;应用深度学习和AI实现股票自动交易&#xff0c;目的是实现财务自由~目前我正在开发基于miniQMT的量化交易系统。 在前几篇的文章中讲到&#xff0c;我正在开发的看海量化交易系统&#xf…

网络层IP协议(TCP)

IP协议&#xff1a; 在了解IP协议之前&#xff0c;我们市面上看到的"路由器"其实就是工作在网络层。如下图&#xff1a; 那么网络层中的IP协议究竟是如何发送数据包的呢&#xff1f; IP报头&#xff1a; IP协议的报头是比较复杂的&#xff0c;作为程序猿只需要我们重…

Xcode

info.plist Appearance Light 关闭黑暗模式 Bundle display name 设置app名称&#xff0c;默认为工程名 Location When In Use Usage Description 定位权限一共有3个key 1.Privacy - Location When In Use Usage Description 2.Privacy - Location Always and When In U…

【CSS in Depth 2 精译_079】第 13 章:渐变、阴影与混合模式概述 + 13.1:CSS 渐变效果(一)——使用多个颜色节点

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 13 章 渐变、阴影与混合模式】 ✔️ 13.1 渐变 ✔️ 13.1.1 使用多个颜色节点&#xff08;一&#xff09; ✔️13.1.2 颜色插值13.1.3 径向渐变13.1.4 锥形渐变 文…

地下管线三维建模,市面上有哪些软件

1. 地下管线&#xff1a;城市“生命线” 地下管线是城市的重要基础设施&#xff0c;包括供水、排水、燃气、热力、电力、通信等管线&#xff0c;它们如同城市的“生命线”&#xff0c;支撑着城市的正常运转。如果缺乏完整和准确的地下管线信息&#xff0c;施工破坏地下管线的事…