tldr-pages / tldr-python-client

:snake: Python command-line client for tldr pages 📚
https://pypi.org/project/tldr/
MIT License
599 stars 95 forks source link

Display formatting not correct when used on PowerShell #178

Open Liampor opened 2 years ago

Liampor commented 2 years ago

Hello,

Problem

When I use TLDR on PowerShell, the output formatting is not correct, it looks like image

Environment

PowerShell version 7.2.0 TLDR is installed via conda install tldr

$ tldr -v
>>> tldr 2.0.0 (Client Specification 1.4)

$ pip install tldr
>>> Requirement already satisfied: tldr in d:\tsusersoftware\miniconda3\lib\site-packages (2.0.0)
>>> Requirement already satisfied: argcomplete in d:\tsusersoftware\miniconda3\lib\site-packages (from tldr) (1.12.3)
>>> Requirement already satisfied: termcolor in d:\tsusersoftware\miniconda3\lib\site-packages (from tldr) (1.1.0)
>>> Requirement already satisfied: colorama in d:\tsusersoftware\miniconda3\lib\site-packages (from tldr) (0.4.4)

Others

TLDR works well on git-bash with the same installation and system

image

How could I fix it? Thank you all

MasterOdin commented 2 years ago

Are you able to change the following line:

https://github.com/tldr-pages/tldr-python-client/blob/d8722698284e5adde7fc561ea1c0b6ab114df528/tldr.py#L490

to be:

    colorama.init(strip=options.color, convert=True)

and see if that fixes the problem?

MasterOdin commented 2 years ago

Alternatively, we may need to adjust it so that we do a from sys import stdout after calling colorama.init() to get it to work on Windows. I'm not totally sure, hopefully the convert thing above works as that's easier to manage.

Liampor commented 2 years ago

Thanks, but I tried to modify the init-function and delete the local cache, but same issue again. 😂

Are you able to change the following line:

https://github.com/tldr-pages/tldr-python-client/blob/d8722698284e5adde7fc561ea1c0b6ab114df528/tldr.py#L490

to be:

    colorama.init(strip=options.color, convert=True)

and see if that fixes the problem?

Liampor commented 2 years ago

Update: I have installed Fluent Terminal now and still use PowerShell 7.0 as Shell, then the tldr could work as expected.

image

God-damnit-all commented 2 years ago

Until this is fixed, I came up with a little workaround that'll work on all consoles.

filter tldr {[String]::Join([Environment]::NewLine,( python -m tldr $Args ))}

You can also pipe to Write-Output for the same effect, but I felt it best to not involve a pipeline.

Question though, does tldr --help print out formatted text on Linux, like the npm version does? Or is this just something that was done for the Python client in general?