Class representing a twpub pluginconst cleanStylesheetcleanStyleAttribute = requiretransform-stylesheets flattenTree = requireflatten-tree hash = requireutils;const URL_PREFIX = httpsexamplecom;class
这段代码定义了一个名为TwpubPlugin的类,表示一个twpub插件。
该类的构造函数接受两个参数:app和options。app参数是一个应用程序实例,options参数是一些选项。在构造函数中,将传入的参数赋值给this.app和this.epubReader属性,并初始化this.fields、this.tiddlers和this.errors属性。
logError方法用于记录错误信息,将错误信息添加到this.errors数组中。
convertEpub方法用于将EPUB文件转换为twpub插件。在该方法中,首先获取EPUB文件的哈希值,并根据哈希值构造插件的标题。然后,调用createAnchorToTitleMapping方法创建从锚点到标题的映射关系。接下来,依次转换文本、目录、样式表和图片,并设置插件tiddler的字段。最后,将tiddlers添加到this.tiddlers对象中。
createAnchorToTitleMapping方法用于创建从锚点到标题的映射关系。遍历EPUB文件的每个文本块,将文本块的href(包括锚点)与标题进行映射。
makeTextTiddlerTitle方法用于生成文本tiddler的标题。
convertText方法用于转换文本块。遍历EPUB文件的每个文本块,将文本块的节点转换为wikitext,并添加到tiddlers中。
processTextChunk方法用于处理文本块。遍历文本块的每个节点,根据节点的标签和属性进行特定处理,如替换<img>标签为<$image>小部件,替换<a>标签为<$link>小部件等。
convertToc方法用于转换目录。遍历EPUB文件的目录节点,将目录节点转换为tiddler,并添加到tiddlers中。
makeStylesheetScopeClass方法用于生成样式表的作用域类名。
convertStylesheets方法用于转换样式表。遍历EPUB文件的样式表,将样式表进行清理和转换,并添加到tiddlers中。
convertImages方法用于转换图片。遍历EPUB文件的图片,将图片添加到tiddlers中。
addTiddler方法用于向tiddlers中添加tiddler。
getPluginText方法用于获取整个插件的JSON文本。将tiddlers转换为JSON字符串,并将其作为字段添加到this.fields中。最后,将this.fields转换为JSON字符串,并将"<"替换为"\u003c",以避免在将JSON嵌入到脚本标签中时出现HTML解析错误
原文地址: http://www.cveoy.top/t/topic/hZNP 著作权归作者所有。请勿转载和采集!