Skip to content

Commit 8cfd626

Browse files
committed
feat: Add parameter to prevent formatting Markdown with mdformat
Issue-18: #18
1 parent df3a421 commit 8cfd626

1 file changed

Lines changed: 16 additions & 5 deletions

File tree

src/griffe2md/_internal/main.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,13 @@ def prepare_env(env: Environment | None = None) -> Environment:
116116
return env
117117

118118

119-
def render_object_docs(obj: Object, config: ConfigDict | None = None) -> str:
119+
def render_object_docs(obj: Object, config: ConfigDict | None = None, *, format_md: bool = True) -> str:
120120
"""Render docs for a given object.
121121
122122
Parameters:
123123
obj: The Griffe object to render docs for.
124124
config: The rendering configuration.
125+
format_md: Whether to format the resulting Markdown.
125126
126127
Warning:
127128
When using this function programmatically,
@@ -135,15 +136,22 @@ def render_object_docs(obj: Object, config: ConfigDict | None = None) -> str:
135136
env = prepare_env()
136137
context = prepare_context(obj, config)
137138
rendered = env.get_template(f"{obj.kind.value}.md.jinja").render(**context)
138-
return mdformat.text(rendered)
139+
if format_md:
140+
rendered = mdformat.text(
141+
rendered,
142+
options={"number": "yes", "wrap": "no"},
143+
extensions=("tables",),
144+
)
145+
return rendered
139146

140147

141-
def render_package_docs(package: str, config: ConfigDict | None = None) -> str:
148+
def render_package_docs(package: str, config: ConfigDict | None = None, *, format_md: bool = True) -> str:
142149
"""Render docs for a given package.
143150
144151
Parameters:
145152
package: The package (name) to render docs for.
146153
config: The rendering configuration.
154+
format_md: Whether to format the resulting Markdown.
147155
148156
Returns:
149157
Markdown.
@@ -162,19 +170,22 @@ def render_package_docs(package: str, config: ConfigDict | None = None) -> str:
162170
)
163171
module = loader.load(package)
164172
loader.resolve_aliases(external=True)
165-
return render_object_docs(module, config) # type: ignore[arg-type]
173+
return render_object_docs(module, config, format_md=format_md) # type: ignore[arg-type]
166174

167175

168176
def write_package_docs(
169177
package: str,
170178
config: ConfigDict | None = None,
171179
output: IO | str | None = None,
180+
*,
181+
format_md: bool = True,
172182
) -> None:
173183
"""Write docs for a given package to a file or stdout.
174184
175185
Parameters:
176186
package: The package to render docs for.
177187
config: The rendering configuration.
178188
output: The file to write to.
189+
format_md: Whether to format the resulting Markdown.
179190
"""
180-
_output(render_package_docs(package, config), to=output)
191+
_output(render_package_docs(package, config, format_md=format_md), to=output)

0 commit comments

Comments
 (0)