Skip to content

Commit

Permalink
Merge pull request #10260 from hugovk/colour-env-vars
Browse files Browse the repository at this point in the history
Enable FORCE_COLOR and NO_COLOR for terminal colouring
  • Loading branch information
tk0miya committed Mar 16, 2022
2 parents b12b39d + b172dc1 commit 4e9c101
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 0 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -73,6 +73,7 @@ Other contributors, listed alphabetically, are:
* Pauli Virtanen -- autodoc improvements, autosummary extension
* Eric N. Vander Weele -- autodoc improvements
* Stefan van der Walt -- autosummary extension
* Hugo van Kemenade -- support FORCE_COLOR and NO_COLOR
* Thomas Waldmann -- apidoc module fixes
* John Waltman -- Texinfo builder
* Barry Warsaw -- setup command improvements
Expand Down
1 change: 1 addition & 0 deletions CHANGES
Expand Up @@ -15,6 +15,7 @@ Deprecated
Features added
--------------

* #10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring
* #10234: autosummary: Add "autosummary" CSS class to summary tables
* #10125: extlinks: Improve suggestion message for a reference having title
* #9494, #9456: html search: Add a config variable
Expand Down
16 changes: 16 additions & 0 deletions doc/man/sphinx-build.rst
Expand Up @@ -304,6 +304,22 @@ variables to customize behavior:
Additional options for :program:`sphinx-build`. These options can
also be set via the shortcut variable **O** (capital 'o').

.. describe:: NO_COLOR

When set (regardless of value), :program:`sphinx-build` will not use color
in terminal output. ``NO_COLOR`` takes precedence over ``FORCE_COLOR``. See
`no-color.org <https://no-color.org/>`__ for other libraries supporting this
community standard.

.. versionadded:: 4.5.0

.. describe:: FORCE_COLOR

When set (regardless of value), :program:`sphinx-build` will use color in
terminal output. ``NO_COLOR`` takes precedence over ``FORCE_COLOR``.

.. versionadded:: 4.5.0

.. _when-deprecation-warnings-are-displayed:

Deprecation Warnings
Expand Down
4 changes: 4 additions & 0 deletions sphinx/util/console.py
Expand Up @@ -49,9 +49,13 @@ def term_width_line(text: str) -> str:


def color_terminal() -> bool:
if 'NO_COLOR' in os.environ:
return False
if sys.platform == 'win32' and colorama is not None:
colorama.init()
return True
if 'FORCE_COLOR' in os.environ:
return True
if not hasattr(sys.stdout, 'isatty'):
return False
if not sys.stdout.isatty():
Expand Down

0 comments on commit 4e9c101

Please sign in to comment.