txt2ebook 0.1.104__tar.gz → 0.1.107__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/PKG-INFO +6 -2
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/README.md +5 -1
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/pyproject.toml +1 -1
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/__init__.py +1 -1
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/tex.py +14 -8
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/txt2ebook.py +11 -1
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/LICENSE.md +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/__main__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/exceptions.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/__init__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/base.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/epub.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/gmi.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/md.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/pdf.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/templates/__init__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/templates/epub/__init__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/templates/epub/clean.css +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/templates/epub/condense.css +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/templates/epub/noindent.css +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/txt.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/formats/typ.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/helpers/__init__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/languages/__init__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/languages/en.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/languages/zh_cn.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/languages/zh_tw.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/txt2ebook.pot +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/models/__init__.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/models/book.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/models/chapter.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/models/volume.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/parser.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/tokenizer.py +0 -0
- {txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/zh_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: txt2ebook
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.107
|
4
4
|
Summary: CLI tool to convert txt file to ebook format
|
5
5
|
Home-page: https://github.com/kianmeng/txt2ebook
|
6
6
|
License: AGPL-3.0-or-later
|
@@ -80,7 +80,7 @@ usage: txt2ebook [-of OUTPUT_FOLDER] [-p] [-f {epub,gmi,md,pdf,tex,txt,typ}]
|
|
80
80
|
[-tr TRANSLATOR] [-c IMAGE_FILENAME] [-w WIDTH]
|
81
81
|
[-ff FILENAME_FORMAT] [-ps SEPARATOR] [-pz PAGE_SIZE]
|
82
82
|
[-rd REGEX] [-rvc REGEX] [-rv REGEX] [-rc REGEX] [-rt REGEX]
|
83
|
-
[-ra REGEX] [-rl REGEX] [-rr REGEX REGEX]
|
83
|
+
[-ra REGEX] [-rl REGEX] [-rr REGEX REGEX] [-ct]
|
84
84
|
[-et {clean,condense,noindent}] [-vp] [-tp] [-sp] [-ss]
|
85
85
|
[-toc] [-hn] [-fw] [-rw] [-ow] [-op] [-q] [-v] [-y] [-d]
|
86
86
|
[--env] [-h] [-V]
|
@@ -182,6 +182,10 @@ options:
|
|
182
182
|
-toc, --table-of-content
|
183
183
|
add table of content
|
184
184
|
|
185
|
+
--format tex:
|
186
|
+
-ct, --clean-tex
|
187
|
+
purge artifacts generated by TeX (default: 'False')
|
188
|
+
|
185
189
|
--language zh-cn / --language zh-tw:
|
186
190
|
-hn, --header-number
|
187
191
|
convert section header from words to numbers
|
@@ -38,7 +38,7 @@ usage: txt2ebook [-of OUTPUT_FOLDER] [-p] [-f {epub,gmi,md,pdf,tex,txt,typ}]
|
|
38
38
|
[-tr TRANSLATOR] [-c IMAGE_FILENAME] [-w WIDTH]
|
39
39
|
[-ff FILENAME_FORMAT] [-ps SEPARATOR] [-pz PAGE_SIZE]
|
40
40
|
[-rd REGEX] [-rvc REGEX] [-rv REGEX] [-rc REGEX] [-rt REGEX]
|
41
|
-
[-ra REGEX] [-rl REGEX] [-rr REGEX REGEX]
|
41
|
+
[-ra REGEX] [-rl REGEX] [-rr REGEX REGEX] [-ct]
|
42
42
|
[-et {clean,condense,noindent}] [-vp] [-tp] [-sp] [-ss]
|
43
43
|
[-toc] [-hn] [-fw] [-rw] [-ow] [-op] [-q] [-v] [-y] [-d]
|
44
44
|
[--env] [-h] [-V]
|
@@ -140,6 +140,10 @@ options:
|
|
140
140
|
-toc, --table-of-content
|
141
141
|
add table of content
|
142
142
|
|
143
|
+
--format tex:
|
144
|
+
-ct, --clean-tex
|
145
|
+
purge artifacts generated by TeX (default: 'False')
|
146
|
+
|
143
147
|
--language zh-cn / --language zh-tw:
|
144
148
|
-hn, --header-number
|
145
149
|
convert section header from words to numbers
|
@@ -42,8 +42,13 @@ logger = logging.getLogger(__name__)
|
|
42
42
|
class TexWriter(BaseWriter):
|
43
43
|
"""Module for writing ebook in LaTeX (tex) format."""
|
44
44
|
|
45
|
+
def __post_init__(self):
|
46
|
+
"""Post init code."""
|
47
|
+
self.index_keywords = self.config.index_keyword + self.book.index
|
48
|
+
logger.debug("Index keywords: %s", self.index_keywords)
|
49
|
+
|
45
50
|
def write(self) -> None:
|
46
|
-
"""Generate
|
51
|
+
"""Generate TeX / PDF files."""
|
47
52
|
new_filename = self._output_filename(".tex")
|
48
53
|
new_filename.parent.mkdir(parents=True, exist_ok=True)
|
49
54
|
|
@@ -53,6 +58,7 @@ class TexWriter(BaseWriter):
|
|
53
58
|
|
54
59
|
doc.packages.append(Pkg("geometry", options=["a6paper"]))
|
55
60
|
doc.packages.append(Pkg("makeidx"))
|
61
|
+
doc.packages.append(Pkg("xcolor"))
|
56
62
|
doc.packages.append(
|
57
63
|
Pkg(
|
58
64
|
"idxlayout",
|
@@ -122,21 +128,21 @@ class TexWriter(BaseWriter):
|
|
122
128
|
|
123
129
|
filename = str(new_filename.parent / new_filename.stem)
|
124
130
|
pdf_filename = Path(filename).with_suffix(".pdf")
|
125
|
-
doc.generate_pdf(
|
131
|
+
doc.generate_pdf(
|
132
|
+
filename, compiler="latexmk", clean_tex=self.config.clean_tex
|
133
|
+
)
|
134
|
+
logger.info("Generate PDF file: %s", pdf_filename.resolve())
|
126
135
|
|
127
136
|
if self.config.open:
|
128
137
|
self._open_file(pdf_filename)
|
129
138
|
|
130
139
|
def _process_paragraph(self, paragraph) -> str:
|
131
140
|
par = paragraph.strip()
|
132
|
-
for keyword in self.config.index_keyword:
|
133
|
-
par = par.replace(
|
134
|
-
keyword, rf"\index{{{keyword}}}\underline{{{keyword}}}"
|
135
|
-
)
|
136
141
|
|
137
|
-
for keyword in self.
|
142
|
+
for keyword in self.index_keywords:
|
138
143
|
par = par.replace(
|
139
|
-
keyword,
|
144
|
+
keyword,
|
145
|
+
rf"\color{{red}}\index{{{keyword}}}{keyword}\color{{black}}",
|
140
146
|
)
|
141
147
|
|
142
148
|
return par
|
@@ -109,6 +109,7 @@ def build_parser(
|
|
109
109
|
epub = parser.add_argument_group("--format epub")
|
110
110
|
pdf = parser.add_argument_group("--format pdf")
|
111
111
|
txt = parser.add_argument_group("--format txt")
|
112
|
+
tex = parser.add_argument_group("--format tex")
|
112
113
|
zhlang = parser.add_argument_group("--language zh-cn / --language zh-tw")
|
113
114
|
|
114
115
|
if "--env" not in args:
|
@@ -343,6 +344,15 @@ def build_parser(
|
|
343
344
|
metavar="REGEX",
|
344
345
|
)
|
345
346
|
|
347
|
+
tex.add_argument(
|
348
|
+
"-ct",
|
349
|
+
"--clean-tex",
|
350
|
+
default=False,
|
351
|
+
action="store_true",
|
352
|
+
dest="clean_tex",
|
353
|
+
help="purge artifacts generated by TeX (default: '%(default)s')",
|
354
|
+
)
|
355
|
+
|
346
356
|
epub.add_argument(
|
347
357
|
"-et",
|
348
358
|
"--epub-template",
|
@@ -526,6 +536,6 @@ def main(args: Optional[Sequence[str]] = None):
|
|
526
536
|
except Exception as error:
|
527
537
|
logger.error(
|
528
538
|
getattr(error, "message", str(error)),
|
529
|
-
exc_info=
|
539
|
+
exc_info=("-d" in args or "--debug" in args),
|
530
540
|
)
|
531
541
|
raise SystemExit(1) from None
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo
RENAMED
File without changes
|
{txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po
RENAMED
File without changes
|
{txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo
RENAMED
File without changes
|
{txt2ebook-0.1.104 → txt2ebook-0.1.107}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|