美文网首页
修改电子书使其多看式弹注

修改电子书使其多看式弹注

作者: biglee | 来源:发表于2017-07-21 13:24 被阅读167次

最近找了几本书,发现注释跳转老是翻页影响阅读,甚至有的书居然注释无跳转,严重影响看书的乐趣,于是乎有了此文。

  • 首先,下载calibre软件,安装后,把电子书导入软件内。
  • 先看下多看官方对其弹出注释解释

用户可以通过单击文内脚注的图标,弹出显示脚注内容的窗口。文内注可以支持复杂的内容描述,比如多段落,带有样式的文本等等,具体描述如下:
在需要插入注的位置插入如下代码:
<a class="duokan-footnote"href="#df-1">![]( ../Images/note.png)</a>
在文章的末尾插入如下代码:

    <li class="duokan-footnote-item"id="df-1"><p>这是一个注释文本。</p></li>
</ol>```
注和内容之间使用id链接,通过这样的扩展方式,可以将整个章节的所有文内注内容集中在一个有序列表中,这部分内容不会直接在页面上渲染出来,而是通过应用层的交互来呈现。

据此,我们可以在书内采用*正则查找*和*全书替换*的方式来修改注释。
1.  选中你要修改的电子书右键点击<u>*编辑书籍*</u>,然后插入文件**note.png**,你可先在网上找到无数这样的图片下载来使用,我用的是下图:
![note.png](https://img.haomeiwen.com/i1280857/d8cdc8aa6d2c2fae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这样之后将`content.opf`文件中的`<item href="images/note.png" id="id" media-type="image/png"/>`修改为`<item href="Images/note.png" id="note.png" media-type="image/png"/>`

2. 修改**stylesheet.css**样式表,加入如下代码定义注释:

/** 多看注释定义 /
ol.duokan-footnote-content p {
font-size: 1em;
text-indent: 0;
}
img.duokan-footnote {
width: 0.8em;
}
li.duokan-footnote-item {
font-family: "ht","微软雅黑","黑体","zw",sans-serif;
text-align: left;
color: 0;
font-size: 1em;
line-height: 1.2;
padding: 0px;
list-style-type: none;
}
li.duokan-footnote-item a {
color: #000;
}
p.footnote-text {
font-family: "ht","微软雅黑","黑体","zw",sans-serif;
text-align: left;
color: 0;
font-size: 1em;
line-height: 1.2;
padding: 0px;
}
/
多看注释定义结束 **/

3. 现在以《周》一书为例,显示怎样用calibre自带的正则函数快速全书自动修改注释为多看式弹出注释。首先按`Ctrl+F`弹出搜索窗口,模式选`Regex-fuction`,在**查找栏**输入正则表达式([这里](https://deerchao.net/tutorials/regex/regex.htm)有个正则30分钟入门教程):```<(sup).*?[^>]*>[^br]+?</\1>```,在**函数栏**点击创建,弹出窗口输入:

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
section_number = '%d' % number

return '<a class="duokan-footnote" href="#fn' + section_number + '"> </a>'
replace.file_order = 'spine'
> 以上代码参考自calibre官方正则函数帮助文档,里面有api的用法,脚本语言为Python,[点击直达](https://manual.calibre-ebook.com/function_mode.html)。

将其命名为`footnote`文件并保存,在文件选框里可以选**当前文件**也可以选**所有文本文件**,最后点击**替换所有**。如此则可以把所有注释换成图片框,并会自动从1开始递增数字添加ID号。见下图:
![注释.png](https://img.haomeiwen.com/i1280857/2a284a4c2453c95b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
然后在页面中定位到注释文本内容处,在开头加上`<ol class="duokan-footnote-content">`,接着模式还是选`Regex-fuction`,在**查找栏**输入`<p class="annotation-text">
`,在**函数栏**点击创建,弹出窗口输入:

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
section_number = '%d' % number
return '<li class="duokan-footnote-item" id="fn' + section_number + '"><p class="footnote-text">'
replace.file_order = 'spine'

将其命名为`footnotetext`文件并保存,在文件选框里可以选**当前文件**也可以选**所有文本文件**,最后点击**替换所有**。如此则可以把所有注释内容改成对应的弹出窗口,并会自动从1开始递增数字添加ID号。
最后点击`规范HTML`图标,让其自动补全未添加的闭合标签即可。

相关文章

网友评论

      本文标题:修改电子书使其多看式弹注

      本文链接:https://www.haomeiwen.com/subject/przskxtx.html