MDit 0.0.0.dev54__tar.gz → 0.0.0.dev55__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 (50) hide show
  1. {mdit-0.0.0.dev54/src/MDit.egg-info → mdit-0.0.0.dev55}/PKG-INFO +4 -4
  2. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/pyproject.toml +4 -4
  3. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55/src/MDit.egg-info}/PKG-INFO +4 -4
  4. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/MDit.egg-info/requires.txt +3 -3
  5. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/element.py +13 -2
  6. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/MANIFEST.in +0 -0
  7. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/README.md +0 -0
  8. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/setup.cfg +0 -0
  9. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/MDit.egg-info/SOURCES.txt +0 -0
  10. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/MDit.egg-info/dependency_links.txt +0 -0
  11. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/MDit.egg-info/not-zip-safe +0 -0
  12. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/MDit.egg-info/top_level.txt +0 -0
  13. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/__init__.py +0 -0
  14. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/container.py +0 -0
  15. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/__init__.py +0 -0
  16. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/file.py +0 -0
  17. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema/document.yaml +0 -0
  18. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema/element/badge.yaml +0 -0
  19. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema.py +0 -0
  20. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/badge/dynamic.yaml +0 -0
  21. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/create-badges.yaml +0 -0
  22. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/coc_covenant.yaml +0 -0
  23. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/heading.yaml +0 -0
  24. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/highlights.yaml +0 -0
  25. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/line.yaml +0 -0
  26. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/newline.yaml +0 -0
  27. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/paragraph.yaml +0 -0
  28. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/paragraph_style.yaml +0 -0
  29. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/_to_review/spacer.yaml +0 -0
  30. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/badge/params.yaml +0 -0
  31. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/badges.yaml +0 -0
  32. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/element/image.yaml +0 -0
  33. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/html/attr/align.yaml +0 -0
  34. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/html/attr/size.yaml +0 -0
  35. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/html/attrs.yaml +0 -0
  36. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/html-document.yaml +0 -0
  37. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/pepy/badge-params.yaml +0 -0
  38. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/schema_/shields/badge-params.yaml +0 -0
  39. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/data/template/code_of_conduct/contributor_covenant.md +0 -0
  40. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/display.py +0 -0
  41. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/document.py +0 -0
  42. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/generate.py +0 -0
  43. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/parse.py +0 -0
  44. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/protocol.py +0 -0
  45. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/render.py +0 -0
  46. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/renderable.py +0 -0
  47. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/target/__init__.py +0 -0
  48. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/target/md.py +0 -0
  49. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/target/rich.py +0 -0
  50. {mdit-0.0.0.dev54 → mdit-0.0.0.dev55}/src/mdit/template.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MDit
3
- Version: 0.0.0.dev54
3
+ Version: 0.0.0.dev55
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: sphinx<8
6
6
  Requires-Dist: myst-nb<2,>1
@@ -23,9 +23,9 @@ Requires-Dist: rich>=13.8
23
23
  Requires-Dist: pydantic>=2.9
24
24
  Requires-Dist: referencing>=0.35.1
25
25
  Requires-Dist: PkgData==0.0.0.dev5
26
- Requires-Dist: PySerials==0.0.0.dev57
27
- Requires-Dist: PyBadger==0.0.0.dev51
26
+ Requires-Dist: PySerials==0.0.0.dev58
27
+ Requires-Dist: PyBadger==0.0.0.dev52
28
28
  Requires-Dist: PyColorIT==0.0.0.dev8
29
29
  Requires-Dist: ProtocolMan==0.0.0.dev2
30
30
  Requires-Dist: HTMP==0.0.0.dev5
31
- Requires-Dist: JSONSchemata==0.0.0.dev53
31
+ Requires-Dist: JSONSchemata==0.0.0.dev54
@@ -17,7 +17,7 @@ namespaces = true
17
17
  # ----------------------------------------- Project Metadata -------------------------------------
18
18
  #
19
19
  [project]
20
- version = "0.0.0.dev54"
20
+ version = "0.0.0.dev55"
21
21
  name = "MDit"
22
22
  requires-python = ">=3.10"
23
23
  dependencies = [
@@ -42,10 +42,10 @@ dependencies = [
42
42
  "pydantic >= 2.9",
43
43
  "referencing >= 0.35.1",
44
44
  "PkgData == 0.0.0.dev5",
45
- "PySerials == 0.0.0.dev57",
46
- "PyBadger == 0.0.0.dev51",
45
+ "PySerials == 0.0.0.dev58",
46
+ "PyBadger == 0.0.0.dev52",
47
47
  "PyColorIT == 0.0.0.dev8",
48
48
  "ProtocolMan == 0.0.0.dev2",
49
49
  "HTMP == 0.0.0.dev5",
50
- "JSONSchemata == 0.0.0.dev53",
50
+ "JSONSchemata == 0.0.0.dev54",
51
51
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MDit
3
- Version: 0.0.0.dev54
3
+ Version: 0.0.0.dev55
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: sphinx<8
6
6
  Requires-Dist: myst-nb<2,>1
@@ -23,9 +23,9 @@ Requires-Dist: rich>=13.8
23
23
  Requires-Dist: pydantic>=2.9
24
24
  Requires-Dist: referencing>=0.35.1
25
25
  Requires-Dist: PkgData==0.0.0.dev5
26
- Requires-Dist: PySerials==0.0.0.dev57
27
- Requires-Dist: PyBadger==0.0.0.dev51
26
+ Requires-Dist: PySerials==0.0.0.dev58
27
+ Requires-Dist: PyBadger==0.0.0.dev52
28
28
  Requires-Dist: PyColorIT==0.0.0.dev8
29
29
  Requires-Dist: ProtocolMan==0.0.0.dev2
30
30
  Requires-Dist: HTMP==0.0.0.dev5
31
- Requires-Dist: JSONSchemata==0.0.0.dev53
31
+ Requires-Dist: JSONSchemata==0.0.0.dev54
@@ -19,9 +19,9 @@ rich>=13.8
19
19
  pydantic>=2.9
20
20
  referencing>=0.35.1
21
21
  PkgData==0.0.0.dev5
22
- PySerials==0.0.0.dev57
23
- PyBadger==0.0.0.dev51
22
+ PySerials==0.0.0.dev58
23
+ PyBadger==0.0.0.dev52
24
24
  PyColorIT==0.0.0.dev8
25
25
  ProtocolMan==0.0.0.dev2
26
26
  HTMP==0.0.0.dev5
27
- JSONSchemata==0.0.0.dev53
27
+ JSONSchemata==0.0.0.dev54
@@ -69,6 +69,17 @@ class Element(_Renderable):
69
69
  container_func = getattr(_htmp.element, str(container))
70
70
  return container_func(_htmp.elementor.markdown(content), attrs_container).source(indent=-1)
71
71
 
72
+ @staticmethod
73
+ def _escape(content: Stringable):
74
+ """Escape all ASCII punctuation characters in a Markdown string.
75
+
76
+ References
77
+ ----------
78
+ - [GFM Documentation](https://github.github.com/gfm/#backslash-escapes)
79
+ """
80
+ ascii_punctuation = r'!"#$%&\'()*+,\-./:;<=>?@[\\]^_`{|}~'
81
+ return _re.sub(f'([{_re.escape(ascii_punctuation)}])', r'\\\1', str(content))
82
+
72
83
 
73
84
  class Admonition(Element):
74
85
 
@@ -1181,7 +1192,7 @@ class InlineImage(Element):
1181
1192
 
1182
1193
  def _source_md(self, target: MDTargetConfig, filters: str | list[str] | None = None) -> str:
1183
1194
  if target.prefer_md:
1184
- alt = _html.escape(self.alt or "")
1195
+ alt = self._escape(self.alt or "")
1185
1196
  image = f"![{alt}]({self.src})"
1186
1197
  if (self.height or self.width or self.align or self.classes or self.name) and target.attrs_inline:
1187
1198
  image = attribute(
@@ -1194,7 +1205,7 @@ class InlineImage(Element):
1194
1205
  target_default=self.target_default,
1195
1206
  ).source(target=target, filters=filters)
1196
1207
  if self.link:
1197
- image=f"[{image}]({self.link})"
1208
+ image=f"[{image}]({self.link}{f' "{self._escape(self.title)}"' if self.title else ""})"
1198
1209
  else:
1199
1210
  img_attrs = {
1200
1211
  "src": self.src,
File without changes
File without changes
File without changes
File without changes