readthedocs / readthedocs/ext-theme
Build: support terminal escape/control codes and color codes
Nobody has claimed this yet.
- 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.
- Previous attempt: https://github.com/readthedocs/readthedocs.org/issues/8733
- Also see: https://github.com/readthedocs/readthedocs.org/issues/6883
- 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
BuildCommandhandling ofoutput_linescould be restructured a little bit to load the observables nicely - The HTML template should use the
htmlbinding when sanitize-html is in place.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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