txt2ebook 0.1.130__tar.gz → 0.1.132__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.
Files changed (51) hide show
  1. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/PKG-INFO +1 -1
  2. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/pyproject.toml +1 -1
  3. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/__init__.py +7 -3
  4. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/cli.py +3 -1
  5. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/gmi.py +3 -3
  6. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/parser.py +7 -6
  7. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/env.py +2 -2
  8. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/gmi.py +1 -1
  9. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/LICENSE.md +0 -0
  10. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/README.md +0 -0
  11. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/__main__.py +0 -0
  12. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/exceptions.py +0 -0
  13. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/__init__.py +0 -0
  14. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/base.py +0 -0
  15. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/epub.py +0 -0
  16. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/md.py +0 -0
  17. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/pdf.py +0 -0
  18. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/templates/__init__.py +0 -0
  19. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/templates/epub/__init__.py +0 -0
  20. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/templates/epub/clean.css +0 -0
  21. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/templates/epub/condense.css +0 -0
  22. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/templates/epub/noindent.css +0 -0
  23. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/tex.py +0 -0
  24. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/txt.py +0 -0
  25. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/formats/typ.py +0 -0
  26. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/helpers/__init__.py +0 -0
  27. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/languages/__init__.py +0 -0
  28. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/languages/en.py +0 -0
  29. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/languages/zh_cn.py +0 -0
  30. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/languages/zh_tw.py +0 -0
  31. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.mo +0 -0
  32. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/en/LC_MESSAGES/txt2ebook.po +0 -0
  33. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/txt2ebook.pot +0 -0
  34. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.mo +0 -0
  35. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/zh-cn/LC_MESSAGES/txt2ebook.po +0 -0
  36. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.mo +0 -0
  37. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/locales/zh-tw/LC_MESSAGES/txt2ebook.po +0 -0
  38. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/models/__init__.py +0 -0
  39. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/models/book.py +0 -0
  40. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/models/chapter.py +0 -0
  41. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/models/volume.py +0 -0
  42. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/__init__.py +0 -0
  43. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/epub.py +0 -0
  44. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/massage.py +0 -0
  45. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/md.py +0 -0
  46. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/parse.py +0 -0
  47. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/pdf.py +0 -0
  48. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/tex.py +0 -0
  49. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/subcommands/typ.py +0 -0
  50. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/src/txt2ebook/tokenizer.py +0 -0
  51. {txt2ebook-0.1.130 → txt2ebook-0.1.132}/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.130
3
+ Version: 0.1.132
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "txt2ebook"
3
- version = "0.1.130"
3
+ version = "0.1.132"
4
4
  description = "CLI tool to convert txt file to ebook format"
5
5
  authors = ["Kian-Meng Ang <kianmeng@cpan.org>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -18,6 +18,7 @@
18
18
  import argparse
19
19
  import logging
20
20
  import platform
21
+ from typing import Optional
21
22
  import sys
22
23
 
23
24
  import langdetect
@@ -58,9 +59,9 @@ def log_or_raise_on_warning(message: str, raise_on_warning: bool = False) -> Non
58
59
  raise_on_warning: If True, raises a RuntimeError instead of logging.
59
60
  """
60
61
  if raise_on_warning:
61
- raise RuntimeError(msg)
62
+ raise RuntimeError(message)
62
63
 
63
- logger.warning(msg)
64
+ logger.warning(message)
64
65
 
65
66
 
66
67
  def print_env() -> None:
@@ -77,12 +78,15 @@ def print_env() -> None:
77
78
  def detect_and_expect_language(content: str, config_language: str) -> str:
78
79
  """Detects the content language and compares it to the configured language.
79
80
 
81
+ If no config_language is provided, the detected language is used.
82
+
80
83
  Args:
81
84
  content: The text content to analyze.
82
85
  config_language: The language specified in the configuration.
83
86
 
84
87
  Returns:
85
- The configured language, or the detected language if none is configured.
88
+ The configured language, or the detected language if none is
89
+ configured.
86
90
  """
87
91
  detect_language = langdetect.detect(content)
88
92
  config_language = config_language or detect_language
@@ -30,6 +30,8 @@ from txt2ebook import __version__, setup_logger
30
30
 
31
31
  logger = logging.getLogger(__name__)
32
32
 
33
+ DEFAULT_OUTPUT_FOLDER = "output"
34
+
33
35
 
34
36
  def build_parser(
35
37
  _args: Optional[Sequence[str]] = None,
@@ -48,7 +50,7 @@ def build_parser(
48
50
  "-of",
49
51
  "--output-folder",
50
52
  dest="output_folder",
51
- default="output",
53
+ default=DEFAULT_OUTPUT_FOLDER,
52
54
  help="set default output folder (default: '%(default)s')",
53
55
  )
54
56
 
@@ -84,7 +84,7 @@ class GmiWriter(BaseWriter):
84
84
  f"_{txt_filename.stem}"
85
85
  f"_{section.title}"
86
86
  f"_{chapter.title}"
87
- ".md"
87
+ ".gmi"
88
88
  )
89
89
  )
90
90
 
@@ -128,12 +128,12 @@ class GmiWriter(BaseWriter):
128
128
 
129
129
  with open(new_filename, "w", encoding="utf8") as file:
130
130
  logger.info("Generate GemText file: %s", new_filename.resolve())
131
- file.write(self._to_md())
131
+ file.write(self._to_gmi())
132
132
 
133
133
  if self.config.open:
134
134
  self._open_file(new_filename)
135
135
 
136
- def _to_md(self) -> str:
136
+ def _to_gmi(self) -> str:
137
137
  toc = self._to_toc("*", "# ") if self.config.with_toc else ""
138
138
  return self._to_metadata_txt() + toc + self._to_body_txt()
139
139
 
@@ -88,10 +88,10 @@ class Parser:
88
88
  Returns:
89
89
  str: The formatted section header.
90
90
  """
91
- if hasattr(self.config, "header_number") and (not self.config.header_number or self.config.language not in (
91
+ if not getattr(self.config, "header_number", False) or self.config.language not in (
92
92
  "zh-cn",
93
93
  "zh-tw",
94
- )):
94
+ ):
95
95
  return words
96
96
 
97
97
  # left pad the section number if found as halfwidth integer
@@ -209,11 +209,12 @@ class Parser:
209
209
  toc.append(current_chapter)
210
210
 
211
211
  if token.type == "PARAGRAPH":
212
- if toc and isinstance(toc[-1], Volume):
213
- toc[-1].chapters[-1].add_paragraph(token.value)
212
+ if toc:
213
+ if isinstance(toc[-1], Volume):
214
+ toc[-1].chapters[-1].add_paragraph(token.value)
214
215
 
215
- if toc and isinstance(toc[-1], Chapter):
216
- toc[-1].add_paragraph(token.value)
216
+ if isinstance(toc[-1], Chapter):
217
+ toc[-1].add_paragraph(token.value)
217
218
 
218
219
  # Use authors if set explicitly from command line.
219
220
  if hasattr(self.config, "author") and self.config.author:
@@ -35,10 +35,10 @@ def build_subparser(subparsers) -> None:
35
35
 
36
36
 
37
37
  def run(_args: argparse.Namespace) -> None:
38
- """Run env subcommand.
38
+ """Run the env subcommand to print environment information.
39
39
 
40
40
  Args:
41
- config (argparse.Namespace): Config from command line arguments
41
+ _args (argparse.Namespace): Config from command line arguments (unused).
42
42
 
43
43
  Returns:
44
44
  None
@@ -29,7 +29,7 @@ logger = logging.getLogger(__name__)
29
29
  def build_subparser(subparsers) -> None:
30
30
  """Build the subparser."""
31
31
  gmi_parser = subparsers.add_parser(
32
- "gmi", help="generate ebook in Markdown format"
32
+ "gmi", help="generate ebook in Gemtext format"
33
33
  )
34
34
 
35
35
  gmi_parser.set_defaults(func=run)
File without changes
File without changes