Skip to content
This repository was archived by the owner on Jun 14, 2025. It is now read-only.

Meltryllis163/NovelFormatterFX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

归档说明

由于JavaFX在桌面开发领域颇有不便,作者正尝试转投Flutter的怀抱,因此该仓库不会再更新与修复。

目前该仓库仅作为本人学习JavaFX过程中的一个记录存留(碍于本人的技术水平,这个项目依然存在很多设计方面的问题)。

下为原README内容:

Novel Formatter

简介

JavaFX设计的简体中文小说格式化工具。

注意:虽然本程序使用Java设计,但是本人开发平台仅为Windows,不能保证它在其他平台可以运行。

界面截图

主界面

界面功能说明

小说导入

该区域允许用户选择TXT文档、设置导入文档的格式。

长度限制

在程序解析当前行是否为章节行时,会首先根据文本长度判断,超出该长度限制的文本行不会被认为是章节行。

章节匹配

用于解析文本是否为章节格式的正则表达式组。

本程序的正则表达式允许包含以下两个命名分组用于划分章节编号和章节标题:

分组名 作用
(?<chapterNumber>) 该分组用于存储章节编号,例如「一千零二十四」、或者「1024」。
(?<chapterTitle>) 该分组用于存储章节的标题名。

该选项组可以在设置界面修改。

小说导出

该区域允许用户配置导出时的一些文本格式。

段落配置

空行

定义文本行之间的空行数量。

重新分段:当检测到当前文本行不是以代表「结束」的标点(例如句号、问号、右双引号等等)时,会将下一个文本行拼接到本行。

段首缩进

控制文本行开头的空格数量,拥有空格和全角空格两种选项。

字符宽度之间的关系大约为:

中文字符*1 = 全角空格*1 = 英文字符*2 = 空格*4

当勾选「包括章节行」选项时,章节行也会采用这种缩进,否则章节行将顶格输出。

注意:本程序在格式化文本行时,会先删除文本行前后的空白字符,因此原本存在的空白字符不会保留。

章节配置

章节格式

定义导出时章节的排版格式, 具有三种占位符可用:

占位符 含义
{cnum} 中文章节编号
{num} 阿拉伯数字章节编号
{title} 章节标题

例如,第{cnum}章({num}) {title}将导出为第一千零二十四章(1024) 章节名这样的格式。

该选项组可以在设置界面修改。

自动编号:有些小说可能不存在章节编号,而是以类似「************************」的分隔符来作为章节划分的依据。此时可以勾选此功能,配合章节格式来导出具有编号的章节。

文本替换

对每次读取的文本行使用用户所添加的替换规则,支持正则表达式,且启用正则表达式的规则,原文本会显示为蓝色。

注意事项:

  1. 「文本替换」发生在「章节匹配」之前。例如,对于章节行「第一章 陨落的天才」来说,如果存在替换规则为「章」 >> 「张」 ,则在章节匹配时,尝试解析的文本为:「第一张 陨落的天才」。
  2. 文本替换仅对单一文本行有效。例如,如果文档中存在以下内容:
    “斗之力,三段!”
    
    望着测验魔石碑上面闪亮得甚至有些刺眼的五个大字……
    
    如果用户试图使用以下规则「!”\r\n望」 >> 「!”望」来将两行合并为一行,目前是不会生效的。

后记

由于生活原因,本程序可能不会频繁更新甚至不会更新。

但是你依然可以尝试在Issues界面 提出你的建议,是否会修复或采纳将根据本人空余时间而定,感谢你的理解!

致谢

包括但不限于:

atlantaFX

ikonli

hutool

About

JavaFX设计的网络小说格式化工具。

Resources

License

Stars

Watchers

Forks

Packages

No packages published