MDit 0.0.0.dev52__tar.gz → 0.0.0.dev54__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.dev52/src/MDit.egg-info → mdit-0.0.0.dev54}/PKG-INFO +4 -4
  2. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/pyproject.toml +4 -4
  3. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54/src/MDit.egg-info}/PKG-INFO +4 -4
  4. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/MDit.egg-info/requires.txt +3 -3
  5. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/container.py +3 -1
  6. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/element.py +43 -26
  7. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/generate.py +0 -1
  8. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/MANIFEST.in +0 -0
  9. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/README.md +0 -0
  10. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/setup.cfg +0 -0
  11. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/MDit.egg-info/SOURCES.txt +0 -0
  12. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/MDit.egg-info/dependency_links.txt +0 -0
  13. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/MDit.egg-info/not-zip-safe +0 -0
  14. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/MDit.egg-info/top_level.txt +0 -0
  15. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/__init__.py +0 -0
  16. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/__init__.py +0 -0
  17. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/file.py +0 -0
  18. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema/document.yaml +0 -0
  19. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema/element/badge.yaml +0 -0
  20. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema.py +0 -0
  21. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/badge/dynamic.yaml +0 -0
  22. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/create-badges.yaml +0 -0
  23. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/coc_covenant.yaml +0 -0
  24. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/heading.yaml +0 -0
  25. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/highlights.yaml +0 -0
  26. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/line.yaml +0 -0
  27. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/newline.yaml +0 -0
  28. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/paragraph.yaml +0 -0
  29. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/paragraph_style.yaml +0 -0
  30. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/_to_review/spacer.yaml +0 -0
  31. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/badge/params.yaml +0 -0
  32. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/badges.yaml +0 -0
  33. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/element/image.yaml +0 -0
  34. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/html/attr/align.yaml +0 -0
  35. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/html/attr/size.yaml +0 -0
  36. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/html/attrs.yaml +0 -0
  37. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/html-document.yaml +0 -0
  38. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/pepy/badge-params.yaml +0 -0
  39. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/schema_/shields/badge-params.yaml +0 -0
  40. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/data/template/code_of_conduct/contributor_covenant.md +0 -0
  41. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/display.py +0 -0
  42. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/document.py +0 -0
  43. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/parse.py +0 -0
  44. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/protocol.py +0 -0
  45. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/render.py +0 -0
  46. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/renderable.py +0 -0
  47. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/target/__init__.py +0 -0
  48. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/target/md.py +0 -0
  49. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/src/mdit/target/rich.py +0 -0
  50. {mdit-0.0.0.dev52 → mdit-0.0.0.dev54}/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.dev52
3
+ Version: 0.0.0.dev54
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.dev55
27
- Requires-Dist: PyBadger==0.0.0.dev49
26
+ Requires-Dist: PySerials==0.0.0.dev57
27
+ Requires-Dist: PyBadger==0.0.0.dev51
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.dev51
31
+ Requires-Dist: JSONSchemata==0.0.0.dev53
@@ -17,7 +17,7 @@ namespaces = true
17
17
  # ----------------------------------------- Project Metadata -------------------------------------
18
18
  #
19
19
  [project]
20
- version = "0.0.0.dev52"
20
+ version = "0.0.0.dev54"
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.dev55",
46
- "PyBadger == 0.0.0.dev49",
45
+ "PySerials == 0.0.0.dev57",
46
+ "PyBadger == 0.0.0.dev51",
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.dev51",
50
+ "JSONSchemata == 0.0.0.dev53",
51
51
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MDit
3
- Version: 0.0.0.dev52
3
+ Version: 0.0.0.dev54
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.dev55
27
- Requires-Dist: PyBadger==0.0.0.dev49
26
+ Requires-Dist: PySerials==0.0.0.dev57
27
+ Requires-Dist: PyBadger==0.0.0.dev51
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.dev51
31
+ Requires-Dist: JSONSchemata==0.0.0.dev53
@@ -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.dev55
23
- PyBadger==0.0.0.dev49
22
+ PySerials==0.0.0.dev57
23
+ PyBadger==0.0.0.dev51
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.dev51
27
+ JSONSchemata==0.0.0.dev53
@@ -41,7 +41,9 @@ class Container:
41
41
  if not key:
42
42
  key = max((key for key in self._data.keys() if isinstance(key, int)), default=-1) + 1
43
43
  if key in self._data:
44
- raise ValueError(f"Key '{key}' already exists in content.")
44
+ raise ValueError(
45
+ f"Key '{key}' already exists in container; cannot add for content {content}"
46
+ )
45
47
  if not conditions:
46
48
  conditions = []
47
49
  elif isinstance(conditions, str):
@@ -5,6 +5,7 @@ from types import FunctionType as _FunctionType
5
5
  from contextlib import contextmanager as _contextmanager
6
6
  import re as _re
7
7
  import copy as _copy
8
+ import html as _html
8
9
 
9
10
  import htmp as _htmp
10
11
  import pyserials as _ps
@@ -289,7 +290,7 @@ class Attribute(Element):
289
290
  attributor = f"{{{" ".join(attrs)}}}"
290
291
  if self.block:
291
292
  return f"{attributor}\n{content.lstrip()}"
292
- return f"[{content.strip()}]{attributor}"
293
+ return f"{content.strip()}{attributor}"
293
294
 
294
295
  def _source_rich(self, target: RichTargetConfig, filters: str | list[str] | None = None) -> RenderableType:
295
296
  return self.content.source(
@@ -900,7 +901,7 @@ class FieldListItem(Element):
900
901
  indent = " " * (self.indent if target.field_list else 2) # 2 for normal list
901
902
  description_indented = "\n".join(f"{indent}{line}" for line in body.splitlines()).strip()
902
903
  if target.field_list:
903
- return f":{title}: {body}".strip()
904
+ return f":{title}: {description_indented}".strip()
904
905
  return f"- **{title}**{f": {description_indented}" if description_indented else ''}"
905
906
 
906
907
  def _source_rich(self, target: RichTargetConfig, filters: str | list[str] | None = None) -> RenderableType:
@@ -1179,27 +1180,43 @@ class InlineImage(Element):
1179
1180
  return
1180
1181
 
1181
1182
  def _source_md(self, target: MDTargetConfig, filters: str | list[str] | None = None) -> str:
1182
- img_attrs = {
1183
- "src": self.src,
1184
- "title": self.title,
1185
- "alt": self.alt,
1186
- "height": self.height,
1187
- "width": self.width,
1188
- "align": self.align,
1189
- "class": self.classes,
1190
- "id": self.name,
1191
- } | self.attrs_img
1192
- image = _htmp.elementor.picture_color_scheme(
1193
- src_light=self.src,
1194
- src_dark=self.src_dark,
1195
- attrs_img=img_attrs,
1196
- attrs_source_light=self.attrs_source_light,
1197
- attrs_source_dark=self.attrs_source_dark,
1198
- attrs_picture=self.attrs_picture,
1199
- ) if self.src_dark and target.picture_theme else _htmp.element.img(img_attrs)
1200
- if self.link:
1201
- attrs_a = {"href": self.link, "alt": self.alt} | self.attrs_a
1202
- image = _htmp.element.a(image, attrs_a)
1183
+ if target.prefer_md:
1184
+ alt = _html.escape(self.alt or "")
1185
+ image = f"![{alt}]({self.src})"
1186
+ if (self.height or self.width or self.align or self.classes or self.name) and target.attrs_inline:
1187
+ image = attribute(
1188
+ content=image,
1189
+ block=False,
1190
+ classes=self.classes,
1191
+ name=self.name,
1192
+ attrs={"align": self.align, "height": self.height, "width": self.width},
1193
+ target_configs=self.target_configs,
1194
+ target_default=self.target_default,
1195
+ ).source(target=target, filters=filters)
1196
+ if self.link:
1197
+ image=f"[{image}]({self.link})"
1198
+ else:
1199
+ img_attrs = {
1200
+ "src": self.src,
1201
+ "title": self.title,
1202
+ "alt": self.alt,
1203
+ "height": self.height,
1204
+ "width": self.width,
1205
+ "align": self.align,
1206
+ "class": self.classes,
1207
+ "id": self.name,
1208
+ } | self.attrs_img
1209
+ image = _htmp.elementor.picture_color_scheme(
1210
+ src_light=self.src,
1211
+ src_dark=self.src_dark,
1212
+ attrs_img=img_attrs,
1213
+ attrs_source_light=self.attrs_source_light,
1214
+ attrs_source_dark=self.attrs_source_dark,
1215
+ attrs_picture=self.attrs_picture,
1216
+ ) if self.src_dark and target.picture_theme else _htmp.element.img(img_attrs)
1217
+ if self.link:
1218
+ attrs_a = {"href": self.link, "alt": self.alt} | self.attrs_a
1219
+ image = _htmp.element.a(image, attrs_a)
1203
1220
  return self._wrap(content=str(image), container=self.container, attrs_container=self.attrs_container)
1204
1221
 
1205
1222
 
@@ -2112,8 +2129,8 @@ def badge(
2112
2129
  image = inline_image(
2113
2130
  src=bdg.url(light=True),
2114
2131
  src_dark=bdg.url(light=False) if params_dark else None,
2115
- title=title or bdg.attrs_img.get("title"),
2116
- alt=alt or bdg.attrs_img.get("alt"),
2132
+ title=title if title is not None else bdg.attrs_img.get("title"),
2133
+ alt=alt if alt is not None else bdg.attrs_img.get("alt"),
2117
2134
  height=height,
2118
2135
  width=width,
2119
2136
  align=align,
@@ -2835,7 +2852,7 @@ def html(
2835
2852
  target_configs: TargetConfigs = None,
2836
2853
  target_default: str = "sphinx",
2837
2854
  ):
2838
- content = _mdit.container(
2855
+ content = _mdit.to_md_container(
2839
2856
  content,
2840
2857
  content_separator=content_separator,
2841
2858
  target_configs=target_configs,
@@ -62,7 +62,6 @@ class DocumentGenerator:
62
62
  generator = self._get_elem_generator(_mdit.template, template_name, "template")
63
63
  return generator(**config)
64
64
 
65
-
66
65
  def generate_container(self, container: str | list[str | dict | list[str | dict]]):
67
66
  if isinstance(container, str):
68
67
  return container
File without changes
File without changes
File without changes
File without changes