Stage1st

标题: KOODO READER 怎么自动判断TXT文件的章节的? [打印本页]

作者: 瓦格雷    时间: 2024-3-24 09:44
标题: KOODO READER 怎么自动判断TXT文件的章节的?
有没有这东西的说明?    一定的格式还是?


作者: 汝者    时间: 2024-3-24 10:35
能自动判断就是有分章规则,但具体规则要看软件
作者: 瓦格雷    时间: 2024-3-24 11:24
汝者 发表于 2024-3-24 10:35
能自动判断就是有分章规则,但具体规则要看软件

我问的就是koodo这个软件啊
作者: aki1ostt    时间: 2024-3-24 11:32
没用过你说的这个软件,但是我自己做过阅读软件,TXT又没什么额外信息,分章那就只能读内容然后按照一些分割规则来分章,就是你说的按照一些特定的格式,至于具体可以按照哪些格式来分就只能看源码才能知道了。
作者: kyomu    时间: 2024-3-24 11:52
txt又没有标准,基本都是按约定俗成来设计,一般都是含有关键字第几章之类或者特殊字符。有些会给你自定义分章的正则表达式。

论坛助手,iPhone
作者: 绕指流光    时间: 2024-3-24 13:34
瓦格雷 发表于 2024-3-24 11:24
我问的就是koodo这个软件啊

那为啥不去github翻源码这里又不是issue区

—— 来自 vivo V2302A, Android 14上的 S1Next-鹅版 v2.5.2-play
作者: 瓦格雷    时间: 2024-3-24 13:46
绕指流光 发表于 2024-3-24 13:34
那为啥不去github翻源码这里又不是issue区

—— 来自 vivo V2302A, Android 14上的 S1Nex ...

明显 我是看不懂这些的  我不是超能力者
作者: 帆影FX    时间: 2024-3-24 13:46
看了眼代码,大概在这个位置
https://github.com/koodo-reader/ ... s/bookUtil.tsx#L256
里面用到了kookit.js不过看样子作者不打算开源
(, 下载次数: 3)
你可以去翻他说的这个库
https://github.com/johnfactotum/foliate-js

作者: 糊状物    时间: 2024-3-24 16:31
帆影FX 发表于 2024-3-24 13:46
看了眼代码,大概在这个位置
https://github.com/koodo-reader/koodo-reader/blob/fcc8a6f014f20b1bf5c1b2b ...

https://github.com/johnfactotum/foliate/issues/226

简单搜了一下, 如果真的只是简单包装的话, 分章规则应该就是链接里这个回答.

机翻:
我已经添加了对文本文件的基本支持。
需要注意的是,由于文本文件没有唯一的标识符,因此注释目前是禁用的,最后的位置也不会被记住。
此外,它会将 3 个或更多换行符视为分章符,将 2 个换行符视为分段符,而忽略单个换行符。显然,这对某些文本文件比对其他文本文件更有效。
作者: 瓦格雷    时间: 2024-3-24 17:07
糊状物 发表于 2024-3-24 16:31
https://github.com/johnfactotum/foliate/issues/226

简单搜了一下, 如果真的只是简单包装的话, 分章规 ...

谢谢啊   不过 感觉很奇怪  我都是连续6个回车分章节  但是有些地方有效 有些地方就没用
作者: 糊状物    时间: 2024-3-24 17:57
瓦格雷 发表于 2024-3-24 17:07
谢谢啊   不过 感觉很奇怪  我都是连续6个回车分章节  但是有些地方有效 有些地方就没用 ...
  1.     const chapters = data.split(/(\r\n){3,}/g)
  2.         .filter(x => x && x !== '\r\n')
  3.         .map(c => {
  4.             const ps = c.split(/(\r\n){2}/g)
  5.                 .filter(x => x && x !== '\r\n')
  6.             const blob = new Blob(
  7.                 [ps.map(p => `<p>${p}</p>`).join('')],
  8.                 { type: 'text/html' })
  9.             const url = URL.createObjectURL(blob)
  10.             return {
  11.                 href: url,
  12.                 type: 'text/html',
  13.                 title: ps[0].replace(/\r\n/g, '')
  14.             }
  15.         })
复制代码


简单看了一下代码他是识别\r\n不是单个\n
或许你需要换一个方便输入\r\n的文本编辑器
\r和\n得介绍:
https://blog.csdn.net/lqy971966/article/details/108355292
作者: 瓦格雷    时间: 2024-3-24 21:07
糊状物 发表于 2024-3-24 17:57
简单看了一下代码他是识别\r\n不是单个\n
或许你需要换一个方便输入\r\n的文本编辑器
\r和\n得介绍:

谢谢 再去研究下




欢迎光临 Stage1st (https://www.saraba1st.com/2b/) Powered by Discuz! X3.4