txt2ebook 0.1.154__py3-none-any.whl → 0.1.156__py3-none-any.whl
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/subcommands/epub.py +40 -7
- txt2ebook/subcommands/tex.py +40 -15
- txt2ebook/subcommands/typ.py +41 -8
- {txt2ebook-0.1.154.dist-info → txt2ebook-0.1.156.dist-info}/METADATA +18 -18
- {txt2ebook-0.1.154.dist-info → txt2ebook-0.1.156.dist-info}/RECORD +9 -18
- {txt2ebook-0.1.154.dist-info → txt2ebook-0.1.156.dist-info}/WHEEL +2 -1
- txt2ebook-0.1.156.dist-info/entry_points.txt +3 -0
- txt2ebook-0.1.156.dist-info/top_level.txt +1 -0
- txt2ebook/formats/templates/epub/clean.css +0 -41
- txt2ebook/formats/templates/epub/condense.css +0 -42
- txt2ebook/formats/templates/epub/noindent.css +0 -42
- txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo +0 -0
- txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po +0 -31
- txt2ebook/locales/txt2ebook.pot +0 -31
- txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo +0 -0
- txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po +0 -31
- txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo +0 -0
- txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po +0 -31
- txt2ebook-0.1.154.dist-info/entry_points.txt +0 -4
- {txt2ebook-0.1.154.dist-info → txt2ebook-0.1.156.dist-info}/licenses/LICENSE.md +0 -0
txt2ebook/subcommands/epub.py
CHANGED
@@ -38,11 +38,10 @@ def build_subparser(subparsers) -> None:
|
|
38
38
|
|
39
39
|
epub_parser.add_argument(
|
40
40
|
"input_file",
|
41
|
-
nargs=
|
41
|
+
nargs="*",
|
42
42
|
type=argparse.FileType("rb"),
|
43
|
-
|
44
|
-
|
45
|
-
metavar="TXT_FILENAME",
|
43
|
+
help="source text filenames (can use glob patterns)",
|
44
|
+
metavar="TXT_FILENAMES",
|
46
45
|
)
|
47
46
|
|
48
47
|
epub_parser.add_argument(
|
@@ -124,6 +123,40 @@ def run(args: argparse.Namespace) -> None:
|
|
124
123
|
Returns:
|
125
124
|
None
|
126
125
|
"""
|
127
|
-
|
128
|
-
|
129
|
-
|
126
|
+
input_sources = []
|
127
|
+
|
128
|
+
if not sys.stdin.isatty():
|
129
|
+
# piped input, use stdin as the single input source
|
130
|
+
input_sources.append(sys.stdin)
|
131
|
+
elif args.input_file:
|
132
|
+
# multiple file(s)
|
133
|
+
input_sources.extend(args.input_file)
|
134
|
+
else:
|
135
|
+
logger.error("No input files provided.")
|
136
|
+
sys.exit(1)
|
137
|
+
|
138
|
+
if len(input_sources) > 1 and args.output_file:
|
139
|
+
logger.error(
|
140
|
+
"Cannot specify a single output file when "
|
141
|
+
"processing multiple input files."
|
142
|
+
)
|
143
|
+
sys.exit(1)
|
144
|
+
|
145
|
+
for i, current_input_stream in enumerate(input_sources):
|
146
|
+
# ensures that `input_file` and `output_file` are correctly isolated
|
147
|
+
current_file_args = argparse.Namespace(**vars(args))
|
148
|
+
current_file_args.input_file = current_input_stream
|
149
|
+
|
150
|
+
# if an explicit output_file was provided, it must apply to the first
|
151
|
+
# input
|
152
|
+
if i > 0 and args.output_file:
|
153
|
+
current_file_args.output_file = None
|
154
|
+
|
155
|
+
book = parse_txt(current_file_args)
|
156
|
+
writer = EpubWriter(book, current_file_args)
|
157
|
+
writer.write()
|
158
|
+
|
159
|
+
# close the file stream if it was opened by argparse.FileType and is
|
160
|
+
# not sys.stdin.
|
161
|
+
if current_input_stream is not sys.stdin:
|
162
|
+
current_input_stream.close()
|
txt2ebook/subcommands/tex.py
CHANGED
@@ -33,19 +33,10 @@ def build_subparser(subparsers) -> None:
|
|
33
33
|
|
34
34
|
tex_parser.add_argument(
|
35
35
|
"input_file",
|
36
|
-
nargs=
|
36
|
+
nargs="*",
|
37
37
|
type=argparse.FileType("rb"),
|
38
|
-
|
39
|
-
|
40
|
-
metavar="TXT_FILENAME",
|
41
|
-
)
|
42
|
-
|
43
|
-
tex_parser.add_argument(
|
44
|
-
"output_file",
|
45
|
-
nargs="?",
|
46
|
-
default=None,
|
47
|
-
help="converted ebook filename (default: 'TXT_FILENAME.pdf')",
|
48
|
-
metavar="EBOOK_FILENAME",
|
38
|
+
help="source text filenames (can use glob patterns)",
|
39
|
+
metavar="TXT_FILENAMES",
|
49
40
|
)
|
50
41
|
|
51
42
|
tex_parser.add_argument(
|
@@ -121,6 +112,40 @@ def run(args: argparse.Namespace) -> None:
|
|
121
112
|
Returns:
|
122
113
|
None
|
123
114
|
"""
|
124
|
-
|
125
|
-
|
126
|
-
|
115
|
+
input_sources = []
|
116
|
+
|
117
|
+
if not sys.stdin.isatty():
|
118
|
+
# piped input, use stdin as the single input source
|
119
|
+
input_sources.append(sys.stdin)
|
120
|
+
elif args.input_file:
|
121
|
+
# multiple file(s)
|
122
|
+
input_sources.extend(args.input_file)
|
123
|
+
else:
|
124
|
+
logger.error("No input files provided.")
|
125
|
+
sys.exit(1)
|
126
|
+
|
127
|
+
if len(input_sources) > 1 and args.output_file:
|
128
|
+
logger.error(
|
129
|
+
"Cannot specify a single output file when "
|
130
|
+
"processing multiple input files."
|
131
|
+
)
|
132
|
+
sys.exit(1)
|
133
|
+
|
134
|
+
for i, current_input_stream in enumerate(input_sources):
|
135
|
+
# ensures that `input_file` and `output_file` are correctly isolated
|
136
|
+
current_file_args = argparse.Namespace(**vars(args))
|
137
|
+
current_file_args.input_file = current_input_stream
|
138
|
+
|
139
|
+
# if an explicit output_file was provided, it must apply to the first
|
140
|
+
# input
|
141
|
+
if i > 0 and args.output_file:
|
142
|
+
current_file_args.output_file = None
|
143
|
+
|
144
|
+
book = parse_txt(current_file_args)
|
145
|
+
writer = TexWriter(book, current_file_args)
|
146
|
+
writer.write()
|
147
|
+
|
148
|
+
# close the file stream if it was opened by argparse.FileType and is
|
149
|
+
# not sys.stdin.
|
150
|
+
if current_input_stream is not sys.stdin:
|
151
|
+
current_input_stream.close()
|
txt2ebook/subcommands/typ.py
CHANGED
@@ -36,11 +36,10 @@ def build_subparser(subparsers) -> None:
|
|
36
36
|
|
37
37
|
typ_parser.add_argument(
|
38
38
|
"input_file",
|
39
|
-
nargs=
|
39
|
+
nargs="*",
|
40
40
|
type=argparse.FileType("rb"),
|
41
|
-
|
42
|
-
|
43
|
-
metavar="TXT_FILENAME",
|
41
|
+
help="source text filenames (can use glob patterns)",
|
42
|
+
metavar="TXT_FILENAMES",
|
44
43
|
)
|
45
44
|
|
46
45
|
typ_parser.add_argument(
|
@@ -126,11 +125,45 @@ def run(args: argparse.Namespace) -> None:
|
|
126
125
|
"""Run typ subcommand.
|
127
126
|
|
128
127
|
Args:
|
129
|
-
|
128
|
+
args (argparse.Namespace): Config from command line arguments
|
130
129
|
|
131
130
|
Returns:
|
132
131
|
None
|
133
132
|
"""
|
134
|
-
|
135
|
-
|
136
|
-
|
133
|
+
input_sources = []
|
134
|
+
|
135
|
+
if not sys.stdin.isatty():
|
136
|
+
# piped input, use stdin as the single input source
|
137
|
+
input_sources.append(sys.stdin)
|
138
|
+
elif args.input_file:
|
139
|
+
# multiple file(s)
|
140
|
+
input_sources.extend(args.input_file)
|
141
|
+
else:
|
142
|
+
logger.error("No input files provided.")
|
143
|
+
sys.exit(1)
|
144
|
+
|
145
|
+
if len(input_sources) > 1 and args.output_file:
|
146
|
+
logger.error(
|
147
|
+
"Cannot specify a single output file when "
|
148
|
+
"processing multiple input files."
|
149
|
+
)
|
150
|
+
sys.exit(1)
|
151
|
+
|
152
|
+
for i, current_input_stream in enumerate(input_sources):
|
153
|
+
# ensures that `input_file` and `output_file` are correctly isolated
|
154
|
+
current_file_args = argparse.Namespace(**vars(args))
|
155
|
+
current_file_args.input_file = current_input_stream
|
156
|
+
|
157
|
+
# if an explicit output_file was provided, it must apply to the first
|
158
|
+
# input
|
159
|
+
if i > 0 and args.output_file:
|
160
|
+
current_file_args.output_file = None
|
161
|
+
|
162
|
+
book = parse_txt(current_file_args)
|
163
|
+
writer = TypWriter(book, current_file_args)
|
164
|
+
writer.write()
|
165
|
+
|
166
|
+
# close the file stream if it was opened by argparse.FileType and is
|
167
|
+
# not sys.stdin.
|
168
|
+
if current_input_stream is not sys.stdin:
|
169
|
+
current_input_stream.close()
|
@@ -1,14 +1,14 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: txt2ebook
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.156
|
4
4
|
Summary: CLI tool to convert txt file to ebook format
|
5
|
-
Keywords: cjk,ebook,epub,gmi,latex,md,pdf,txt,typst
|
6
5
|
Author-email: Kian-Meng Ang <kianmeng@cpan.org>
|
7
|
-
|
8
|
-
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
7
|
+
Project-URL: Homepage, https://github.com/kianmeng/txt2ebook
|
8
|
+
Project-URL: Repository, https://github.com/kianmeng/txt2ebook
|
9
|
+
Keywords: cjk,ebook,epub,gmi,latex,md,pdf,txt,typst
|
9
10
|
Classifier: Development Status :: 4 - Beta
|
10
11
|
Classifier: Environment :: Console
|
11
|
-
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
|
12
12
|
Classifier: Natural Language :: Chinese (Simplified)
|
13
13
|
Classifier: Natural Language :: Chinese (Traditional)
|
14
14
|
Classifier: Programming Language :: Python
|
@@ -23,22 +23,23 @@ Classifier: Topic :: Text Processing :: Filters
|
|
23
23
|
Classifier: Topic :: Text Processing :: General
|
24
24
|
Classifier: Topic :: Text Processing :: Markup :: HTML
|
25
25
|
Classifier: Topic :: Text Processing :: Markup :: Markdown
|
26
|
+
Requires-Python: ~=3.9
|
27
|
+
Description-Content-Type: text/markdown
|
26
28
|
License-File: LICENSE.md
|
27
29
|
Requires-Dist: CJKwrap~=2.2
|
28
|
-
Requires-Dist: EbookLib
|
29
|
-
Requires-Dist: bs4
|
30
|
-
Requires-Dist: importlib-resources
|
31
|
-
Requires-Dist: jieba
|
32
|
-
Requires-Dist: langdetect
|
33
|
-
Requires-Dist: lxml
|
34
|
-
Requires-Dist: pylatex
|
30
|
+
Requires-Dist: EbookLib<0.18,>=0.17.1
|
31
|
+
Requires-Dist: bs4<0.0.2,>=0.0.1
|
32
|
+
Requires-Dist: importlib-resources<7,>=6.1.1
|
33
|
+
Requires-Dist: jieba<0.43,>=0.42.1
|
34
|
+
Requires-Dist: langdetect<2,>=1.0.9
|
35
|
+
Requires-Dist: lxml<6,>=5.2.2
|
36
|
+
Requires-Dist: pylatex<2,>=1.4.2
|
35
37
|
Requires-Dist: pypandoc~=1.11
|
36
|
-
Requires-Dist: regex
|
37
|
-
Requires-Dist: reportlab
|
38
|
-
Requires-Dist: typing-extensions
|
38
|
+
Requires-Dist: regex<2022,>=2021.11.10
|
39
|
+
Requires-Dist: reportlab<5,>=4.0.0
|
40
|
+
Requires-Dist: typing-extensions<5,>=4.5.0
|
39
41
|
Requires-Dist: typst>=0.13.0
|
40
|
-
|
41
|
-
Project-URL: Repository, https://github.com/kianmeng/txt2ebook
|
42
|
+
Dynamic: license-file
|
42
43
|
|
43
44
|
# txt2ebook
|
44
45
|
|
@@ -150,4 +151,3 @@ The fish logo used in the documentation generated by Sphinx is a public domain
|
|
150
151
|
drawing of Troschel's parrotfish (Chlorurus troschelii Var. A.) from
|
151
152
|
<https://commons.wikimedia.org/entity/M18506436>.
|
152
153
|
18506436>.
|
153
|
-
|
@@ -16,37 +16,28 @@ txt2ebook/formats/txt.py,sha256=0DOVBTDRV2gcixham5Wj7NaZlNKAeLG9MLRlZgtUxqM,7412
|
|
16
16
|
txt2ebook/formats/typ.py,sha256=MNclD5RdCnYAmPRzAaI6ZE6NnI8GdHKJla54wyfTUdc,6705
|
17
17
|
txt2ebook/formats/templates/__init__.py,sha256=f3K7pJByNmmvu-wvziks6qb2QnnLmkDjUACXyw2s60E,760
|
18
18
|
txt2ebook/formats/templates/epub/__init__.py,sha256=-XVLvnknTJTmQZY9UTH705vMcHgy56rQVRTusYawEZ4,766
|
19
|
-
txt2ebook/formats/templates/epub/clean.css,sha256=AnEwMckzUSKcjKsDiWtJW1oaceuklt2tyuS1VbpVK1s,462
|
20
|
-
txt2ebook/formats/templates/epub/condense.css,sha256=Fz80ZqkPsFRmGdURduAxqMV8drD0CCUlrv41P8rUsm8,477
|
21
|
-
txt2ebook/formats/templates/epub/noindent.css,sha256=_O5Tv90TKyyPBRdgjuNKFwtKFbdheh2V9PtDhgRUg3U,483
|
22
19
|
txt2ebook/helpers/__init__.py,sha256=c2EItHvPABDORfgfjArfa5XR--43es4D1tKWqaPcBxY,1309
|
23
20
|
txt2ebook/languages/__init__.py,sha256=1AfDn-D0q-dvODGP-9KxPHY_Wtk-ifZdN1FutZMT9-Q,763
|
24
21
|
txt2ebook/languages/en.py,sha256=8qsmbKB69M3SD9nBnSX8rP8hAL_RFkhB-zyH93INgaQ,999
|
25
22
|
txt2ebook/languages/zh_cn.py,sha256=ryKMeaNgX2J6BGrHl7KZL9S6HwIlTyLk75z3lvVQIi4,1960
|
26
23
|
txt2ebook/languages/zh_tw.py,sha256=_fdXOOSLK0nTMuBe1Om2qjb4zr2PVd6N4xi2rrYkNTI,1515
|
27
|
-
txt2ebook/locales/txt2ebook.pot,sha256=VoXU9LrDzZApUVCCcKZC5Fu5QLx1fwd1lYEkbIdCEgc,641
|
28
|
-
txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo,sha256=Ym6soeijV3zsv9FUPWlJnu18-CNb5tcOTN5JsMOfV9c,672
|
29
|
-
txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po,sha256=ENsZFITaqEdOYE3xkPX5wDR1HMs1JqB7uyrHaAdPiE0,698
|
30
|
-
txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo,sha256=rRGW7HByDVZV8WpQkhyIFOWYNTQc4NnStrn0eGJX8Wc,675
|
31
|
-
txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po,sha256=i_B-urg-eik0myXxIBSV8_ohPu3xsPNWHJP-fcATotg,698
|
32
|
-
txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo,sha256=1GIuOcO_bISiFcfhFez-A7mSi11Mo-x3PBobBENgMEc,675
|
33
|
-
txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po,sha256=sNyEKCHin78wmSwUARfAypsl9mXfJJaWD1a8E1ixKjs,698
|
34
24
|
txt2ebook/models/__init__.py,sha256=Z3zClWLj08Q8HgaWV1RRgIKatEhIUfYBAVWm-j4m05w,930
|
35
25
|
txt2ebook/models/book.py,sha256=P-SQabvrRgWoafrk0tw6zjD-3hq_r8_jGvgTORUS-DM,2730
|
36
26
|
txt2ebook/models/chapter.py,sha256=6YvUDHzR6amGMZgkQl_xHWrYZUmlfpF7mnDLilG2BpA,1686
|
37
27
|
txt2ebook/models/volume.py,sha256=koz1KfWjvGWLFbmGEQlZ23frsP93cDsuBMySYBHiXm8,1597
|
38
28
|
txt2ebook/subcommands/__init__.py,sha256=ldhzvsrMsR8lZmhZef77JFz0jValpV3pytFfwJSkjls,1146
|
39
29
|
txt2ebook/subcommands/env.py,sha256=gEzra4b6guy7pRZUTCWX1_eiR7JmrtR1Z-J-vxljvMY,1549
|
40
|
-
txt2ebook/subcommands/epub.py,sha256=
|
30
|
+
txt2ebook/subcommands/epub.py,sha256=oVk00rypqN53UAOIYhOofkAPbjrdlvkszLDIdVqexvE,4706
|
41
31
|
txt2ebook/subcommands/gmi.py,sha256=ANnPg-RFsylTo44fUzFOSHN1fC3Ce82gBzrv-sBv5fU,3318
|
42
32
|
txt2ebook/subcommands/massage.py,sha256=cjeee4wJJ6xPV76efnlWRVdeVkEtJYIBDaKhFMPjKTg,14643
|
43
33
|
txt2ebook/subcommands/md.py,sha256=PmIqrqrnzLywvN4qTkle0V9N3FTIJGRWpC0Xbk76B5o,3329
|
44
34
|
txt2ebook/subcommands/parse.py,sha256=xjhW8I9zS5DL3n3m04RyFofgci-6-_L6aF3d4N7c7M4,2938
|
45
35
|
txt2ebook/subcommands/pdf.py,sha256=1JQtpugzAIaho6G3CK1rGYk74hotAexXZxPH9PHpRps,2980
|
46
|
-
txt2ebook/subcommands/tex.py,sha256=
|
47
|
-
txt2ebook/subcommands/typ.py,sha256=
|
48
|
-
txt2ebook-0.1.
|
49
|
-
txt2ebook-0.1.
|
50
|
-
txt2ebook-0.1.
|
51
|
-
txt2ebook-0.1.
|
52
|
-
txt2ebook-0.1.
|
36
|
+
txt2ebook/subcommands/tex.py,sha256=8XqTV5GsOEr7sGSLUJB-B1KefIMxW3_BDq_Jm96Bt1Y,4369
|
37
|
+
txt2ebook/subcommands/typ.py,sha256=xeJ_cPmyq_uouUBiH2kbcscckHLqewPmu9j0WO36sXY,4814
|
38
|
+
txt2ebook-0.1.156.dist-info/licenses/LICENSE.md,sha256=tGtFDwxWTjuR9syrJoSv1Hiffd2u8Tu8cYClfrXS_YU,31956
|
39
|
+
txt2ebook-0.1.156.dist-info/METADATA,sha256=FmlT-uz7lE9ZU6vp0U3X96lRMQSeNHEcuAu6NdQn7dw,4664
|
40
|
+
txt2ebook-0.1.156.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
41
|
+
txt2ebook-0.1.156.dist-info/entry_points.txt,sha256=3jm5vpUsDRgoM6S3CQVMMiP7tJQqfq1vfV0sh_KaK9s,74
|
42
|
+
txt2ebook-0.1.156.dist-info/top_level.txt,sha256=pesdk4CJRlfhUXVD9vH3Dd_F8ATlLQoqlUsUnU8SJMw,10
|
43
|
+
txt2ebook-0.1.156.dist-info/RECORD,,
|
@@ -0,0 +1 @@
|
|
1
|
+
txt2ebook
|
@@ -1,41 +0,0 @@
|
|
1
|
-
/* cover page */
|
2
|
-
div#cover {
|
3
|
-
text-align: center;
|
4
|
-
width: 100%;
|
5
|
-
}
|
6
|
-
|
7
|
-
/* navigation page - toc */
|
8
|
-
ol {
|
9
|
-
list-style-type: none;
|
10
|
-
padding-left: 0;
|
11
|
-
}
|
12
|
-
|
13
|
-
ol li {
|
14
|
-
padding-top: 0.2em;
|
15
|
-
}
|
16
|
-
|
17
|
-
ol li ol li:last-of-type {
|
18
|
-
padding-bottom: 1em;
|
19
|
-
}
|
20
|
-
|
21
|
-
ol li a {
|
22
|
-
text-decoration: none;
|
23
|
-
}
|
24
|
-
|
25
|
-
/* chapters & section */
|
26
|
-
div.volume {
|
27
|
-
display: table;
|
28
|
-
width: 100%;
|
29
|
-
height: 100%;
|
30
|
-
}
|
31
|
-
|
32
|
-
h1.volume {
|
33
|
-
display: table-cell;
|
34
|
-
text-align: center;
|
35
|
-
vertical-align: middle;
|
36
|
-
}
|
37
|
-
|
38
|
-
h2 {
|
39
|
-
}
|
40
|
-
p {
|
41
|
-
}
|
@@ -1,42 +0,0 @@
|
|
1
|
-
/* cover page */
|
2
|
-
div#cover {
|
3
|
-
text-align: center;
|
4
|
-
width: 100%;
|
5
|
-
}
|
6
|
-
|
7
|
-
/* navigation page - toc */
|
8
|
-
ol {
|
9
|
-
list-style-type: none;
|
10
|
-
padding-left: 0;
|
11
|
-
}
|
12
|
-
|
13
|
-
ol li {
|
14
|
-
padding-top: 0.2em;
|
15
|
-
}
|
16
|
-
|
17
|
-
ol li ol li:last-of-type {
|
18
|
-
padding-bottom: 1em;
|
19
|
-
}
|
20
|
-
|
21
|
-
ol li a {
|
22
|
-
text-decoration: none;
|
23
|
-
}
|
24
|
-
|
25
|
-
/* chapters & section */
|
26
|
-
div.volume {
|
27
|
-
display: table;
|
28
|
-
width: 100%;
|
29
|
-
height: 100%;
|
30
|
-
}
|
31
|
-
|
32
|
-
h1.volume {
|
33
|
-
display: table-cell;
|
34
|
-
text-align: center;
|
35
|
-
vertical-align: middle;
|
36
|
-
}
|
37
|
-
|
38
|
-
h2 {
|
39
|
-
}
|
40
|
-
p {
|
41
|
-
margin: 0em;
|
42
|
-
}
|
@@ -1,42 +0,0 @@
|
|
1
|
-
/* cover page */
|
2
|
-
div#cover {
|
3
|
-
text-align: center;
|
4
|
-
width: 100%;
|
5
|
-
}
|
6
|
-
|
7
|
-
/* navigation page - toc */
|
8
|
-
ol {
|
9
|
-
list-style-type: none;
|
10
|
-
padding-left: 0;
|
11
|
-
}
|
12
|
-
|
13
|
-
ol li {
|
14
|
-
padding-top: 0.2em;
|
15
|
-
}
|
16
|
-
|
17
|
-
ol li ol li:last-of-type {
|
18
|
-
padding-bottom: 1em;
|
19
|
-
}
|
20
|
-
|
21
|
-
ol li a {
|
22
|
-
text-decoration: none;
|
23
|
-
}
|
24
|
-
|
25
|
-
/* chapters & section */
|
26
|
-
div.volume {
|
27
|
-
display: table;
|
28
|
-
width: 100%;
|
29
|
-
height: 100%;
|
30
|
-
}
|
31
|
-
|
32
|
-
h1.volume {
|
33
|
-
display: table-cell;
|
34
|
-
text-align: center;
|
35
|
-
vertical-align: middle;
|
36
|
-
}
|
37
|
-
|
38
|
-
h2 {
|
39
|
-
}
|
40
|
-
p {
|
41
|
-
text-indent: -2em;
|
42
|
-
}
|
Binary file
|
@@ -1,31 +0,0 @@
|
|
1
|
-
#: src/txt2ebook/formats/base.py:139
|
2
|
-
msgid "title:"
|
3
|
-
msgstr "Title:"
|
4
|
-
|
5
|
-
#: src/txt2ebook/formats/base.py:140
|
6
|
-
msgid "author:"
|
7
|
-
msgstr "Author:"
|
8
|
-
|
9
|
-
#: src/txt2ebook/formats/base.py:141
|
10
|
-
msgid "translator:"
|
11
|
-
msgstr "Translator:"
|
12
|
-
|
13
|
-
#: src/txt2ebook/formats/base.py:142
|
14
|
-
msgid "tag:"
|
15
|
-
msgstr "Tag:"
|
16
|
-
|
17
|
-
#: src/txt2ebook/formats/base.py:153 src/txt2ebook/formats/gmi.py:62
|
18
|
-
#: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
|
19
|
-
#: src/txt2ebook/formats/txt.py:71
|
20
|
-
msgid "toc"
|
21
|
-
msgstr "Table of Content"
|
22
|
-
|
23
|
-
#: src/txt2ebook/formats/epub.py:147
|
24
|
-
msgid "cover"
|
25
|
-
msgstr "Cover"
|
26
|
-
|
27
|
-
#: src/txt2ebook/formats/gmi.py:47 src/txt2ebook/formats/md.py:46
|
28
|
-
#: src/txt2ebook/formats/txt.py:56
|
29
|
-
msgid "metadata"
|
30
|
-
msgstr "Metadata"
|
31
|
-
|
txt2ebook/locales/txt2ebook.pot
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
#: src/txt2ebook/formats/base.py:139
|
2
|
-
msgid "title:"
|
3
|
-
msgstr ""
|
4
|
-
|
5
|
-
#: src/txt2ebook/formats/base.py:140
|
6
|
-
msgid "author:"
|
7
|
-
msgstr ""
|
8
|
-
|
9
|
-
#: src/txt2ebook/formats/base.py:141
|
10
|
-
msgid "translator:"
|
11
|
-
msgstr ""
|
12
|
-
|
13
|
-
#: src/txt2ebook/formats/base.py:142
|
14
|
-
msgid "tag:"
|
15
|
-
msgstr ""
|
16
|
-
|
17
|
-
#: src/txt2ebook/formats/base.py:153 src/txt2ebook/formats/gmi.py:62
|
18
|
-
#: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
|
19
|
-
#: src/txt2ebook/formats/txt.py:71
|
20
|
-
msgid "toc"
|
21
|
-
msgstr ""
|
22
|
-
|
23
|
-
#: src/txt2ebook/formats/epub.py:147
|
24
|
-
msgid "cover"
|
25
|
-
msgstr ""
|
26
|
-
|
27
|
-
#: src/txt2ebook/formats/gmi.py:47 src/txt2ebook/formats/md.py:46
|
28
|
-
#: src/txt2ebook/formats/txt.py:56
|
29
|
-
msgid "metadata"
|
30
|
-
msgstr ""
|
31
|
-
|
Binary file
|
@@ -1,31 +0,0 @@
|
|
1
|
-
#: src/txt2ebook/formats/base.py:139
|
2
|
-
msgid "title:"
|
3
|
-
msgstr "书名:"
|
4
|
-
|
5
|
-
#: src/txt2ebook/formats/base.py:140
|
6
|
-
msgid "author:"
|
7
|
-
msgstr "作者:"
|
8
|
-
|
9
|
-
#: src/txt2ebook/formats/base.py:141
|
10
|
-
msgid "translator:"
|
11
|
-
msgstr "翻译:"
|
12
|
-
|
13
|
-
#: src/txt2ebook/formats/base.py:142
|
14
|
-
msgid "tag:"
|
15
|
-
msgstr "票签:"
|
16
|
-
|
17
|
-
#: src/txt2ebook/formats/base.py:153 src/txt2ebook/formats/gmi.py:62
|
18
|
-
#: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
|
19
|
-
#: src/txt2ebook/formats/txt.py:71
|
20
|
-
msgid "toc"
|
21
|
-
msgstr "目录"
|
22
|
-
|
23
|
-
#: src/txt2ebook/formats/epub.py:147
|
24
|
-
msgid "cover"
|
25
|
-
msgstr "封面"
|
26
|
-
|
27
|
-
#: src/txt2ebook/formats/gmi.py:47 src/txt2ebook/formats/md.py:46
|
28
|
-
#: src/txt2ebook/formats/txt.py:56
|
29
|
-
msgid "metadata"
|
30
|
-
msgstr "元数据"
|
31
|
-
|
Binary file
|
@@ -1,31 +0,0 @@
|
|
1
|
-
#: src/txt2ebook/formats/base.py:139
|
2
|
-
msgid "title:"
|
3
|
-
msgstr "书名:"
|
4
|
-
|
5
|
-
#: src/txt2ebook/formats/base.py:140
|
6
|
-
msgid "author:"
|
7
|
-
msgstr "作者:"
|
8
|
-
|
9
|
-
#: src/txt2ebook/formats/base.py:141
|
10
|
-
msgid "translator:"
|
11
|
-
msgstr "翻译:"
|
12
|
-
|
13
|
-
#: src/txt2ebook/formats/base.py:142
|
14
|
-
msgid "tag:"
|
15
|
-
msgstr "标签:"
|
16
|
-
|
17
|
-
#: src/txt2ebook/formats/base.py:153 src/txt2ebook/formats/gmi.py:62
|
18
|
-
#: src/txt2ebook/formats/md.py:61 src/txt2ebook/formats/pdf.py:130
|
19
|
-
#: src/txt2ebook/formats/txt.py:71
|
20
|
-
msgid "toc"
|
21
|
-
msgstr "目录"
|
22
|
-
|
23
|
-
#: src/txt2ebook/formats/epub.py:147
|
24
|
-
msgid "cover"
|
25
|
-
msgstr "封面"
|
26
|
-
|
27
|
-
#: src/txt2ebook/formats/gmi.py:47 src/txt2ebook/formats/md.py:46
|
28
|
-
#: src/txt2ebook/formats/txt.py:56
|
29
|
-
msgid "metadata"
|
30
|
-
msgstr "元数据"
|
31
|
-
|
File without changes
|