readthedocs / readthedocs/ext-theme

Build: support terminal escape/control codes and color codes

Open
#71 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature Improvement
Dominant language
HTML
Stars
12
Forks
6
Avg merge
13h 25m
Merged PRs (30d)
1

Description

ext-theme is fancy and can handle ANSI codes in build command output if we would like. To support this, we need to TTY handling of build output and need to remove the NO_COLOR env variable.


  • Support tty output and control characters at the build level
  • Restructure the build command output to first load ansiup and sanitize-html libraries. Currently, the build detail JS expects data rather immediately, so async import loading actually breaks a number of features -- linking to a command line, expanding a command line, etc.
  • The BuildCommand handling of output_lines could be restructured a little bit to load the observables nicely
  • The HTML template should use the html binding when sanitize-html is in place.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing BuildCommand handling of output_lines into the build detail JS, then inspect the HTML template and the existing ansiup and sanitize-html loading. Done means build output preserves terminal control and color codes, asynchronous loading does not break command links or expansion, observables load correctly, and the template uses the html binding.

Written by the indexing model from the issue text.

Assessment

Tech stack
html, javascript
Domain
build-system, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.