-
First Check
Commit to Help
Example Codescript -q -c "python data_stream_measurement/main.py --help" test.out
cat test.out | ./ansi2html.sh test.htmlDescriptionWithin the typer documentation, termynal is used to interactively show the typer features etc. They are also all styled like the typical terminal output. It would be awesome, if I could replicate this for my typer app documentation. I tried to capture the terminal styling with several approaches:
Is there a way, to get the typer output saved into a file, with the html styling? So I could copy that to my markdown? Operating SystemLinux Operating System DetailsUbuntu 20.04 Typer Version0.7.0 Python Version3.8.10 Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
|
This should work script -q -c "python /tmp/asd.py --help" | ansi2html > asd.htmlThat being said i guess it would be nice to have something like ls -la --color=always | ansi2html > asd.html |
Beta Was this translation helpful? Give feedback.
-
Colors appear just fine here, after |
Beta Was this translation helpful? Give feedback.
-
|
Another approach is to use the rich export functions: If you're using sphinx-doc with reStructuredText, I wrote a directive extension to do this for you. Unfortunately typer has no official way to access the console object, so a monkey patch is involved. |
Beta Was this translation helpful? Give feedback.
-
Nice work! Pity, I am trying out Material MkDocs :-/ |
Beta Was this translation helpful? Give feedback.
-
|
In case anyone wants to integrate this kind of thing directly into their application, here's an example of a command I created for our Typer application to get the full help output as HTML: import typer
from typer.cli import docs, state
help = typer.Typer()
@help.command()
def view(ctx: typer.Context):
"""View HTML help for this tool."""
state.module = HELP_DOCS_TARGET # e.g. "myapp.main"
help_docs_gen_dir = Path(tempfile.mkdtemp())
markdown = help_docs_gen_dir / "help.md"
html = help_docs_gen_dir / "help.html"
docs(ctx, name=COMMAND_NAME, title=MAIN_TITLE, output=markdown)
# Convert Markdown containing Rich console syntax to HTML
markdown_content = markdown.read_text()
rich_text = Text.from_markup(markdown_content)
formatted_markdown_content = Markdown(str(rich_text))
console = Console(record=True, file=open(os.devnull, "w"))
console.print(formatted_markdown_content)
console.save_html(str(html))
print(f"Docs saved to: {html}")
typer.launch(f"file://{html}")It's possible this will be greatly simplified and improved with #819 |
Beta Was this translation helpful? Give feedback.
This should work
That being said i guess it would be nice to have something like
--color-alwaysoption like with thels-command: