You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi!
My OpenAPI spec gets properly translated into markdown and looks superb in mkdocs. However, since the file is pretty large it's a user-experience nightmare to have it all in one page. I was hoping to split the file (using redoclys openapi split command). This generates a root openapi.yaml file. Including this in an index.md using [OAD(<path-to-openapi.yaml>)] throws the following error:
Error reading page 'index.md': maximum recursion depth exceeded while calling a Python object
Here's the top of the stack trace (the last three lines then keep repeating for a while)
Traceback (most recent call last):
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\Scripts\mkdocs.exe\__main__.py", line 7, in <module>
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 1055, in main
rv = self.invoke(ctx)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\click\core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\mkdocs\__main__.py", line 286, in build_command
build.build(cfg, dirty=not clean)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\mkdocs\commands\build.py", line 322, in build
_populate_page(file.page, config, files, dirty)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\mkdocs\commands\build.py", line 171, in _populate_page
page.markdown = config.plugins.on_page_markdown(
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\mkdocs\plugins.py", line 575, in on_page_markdown
return self.run_event('page_markdown', markdown, page=page, config=config, files=files)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\mkdocs\plugins.py", line 507, in run_event
result = method(item, **kwargs)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\neoteroi\mkdocs\oad\__init__.py", line 44, in on_page_markdown
return self.rx.sub(self._replacer, markdown)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\neoteroi\mkdocs\oad\__init__.py", line 31, in _replacer
handler = OpenAPIV3DocumentationHandler(
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\openapidocs\mk\v3\__init__.py", line 104, in __init__
self.doc = self.normalize_data(copy.deepcopy(doc))
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\openapidocs\mk\v3\__init__.py", line 127, in normalize_data
return self._transform_data(
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\openapidocs\mk\v3\__init__.py", line 144, in _transform_data
clone[key] = self._handle_obj_ref(value, source_path)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\openapidocs\mk\v3\__init__.py", line 170, in _handle_obj_ref
return self._transform_data(obj, source_path)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\openapidocs\mk\v3\__init__.py", line 144, in _transform_data
clone[key] = self._handle_obj_ref(value, source_path)
File "C:\Users\idontthinkso\AppData\Local\Programs\Python\Python310\lib\site-packages\openapidocs\mk\v3\__init__.py", line 167, in _handle_obj_ref
return self._transform_data(sub_fragment, referred_file.parent)
So:
Should there even be support for this?
If not, would you be interested in adding it (i may consider contributing, but my python is rusty so dont hold your breath :)
If supported: What am I dong wrong?
Also if supported: Would that generate .md files for each part or still put it all in a single file?
I wouldnt mind skipping the redocly part altogether if there was an option to instruct your plugin to output the result from a single spec into multiple .md files (i.e. by tag, path, etc .. similarly to what openapi split does.)
I havent yet looked into the source and before i do that, i just would like to ask:
would that be very difficult to do?
would you be willing to consider a PR that adds such a feature?
Best Regards!
The text was updated successfully, but these errors were encountered:
Hi!
My OpenAPI spec gets properly translated into markdown and looks superb in mkdocs. However, since the file is pretty large it's a user-experience nightmare to have it all in one page. I was hoping to split the file (using redoclys
openapi split
command). This generates a rootopenapi.yaml
file. Including this in anindex.md
using[OAD(<path-to-openapi.yaml>)]
throws the following error:Error reading page 'index.md': maximum recursion depth exceeded while calling a Python object
Here's the top of the stack trace (the last three lines then keep repeating for a while)
So:
.md
files for each part or still put it all in a single file?I wouldnt mind skipping the redocly part altogether if there was an option to instruct your plugin to output the result from a single spec into multiple
.md
files (i.e. by tag, path, etc .. similarly to whatopenapi split
does.)I havent yet looked into the source and before i do that, i just would like to ask:
Best Regards!
The text was updated successfully, but these errors were encountered: