Docs: correctly slugify escaped chars

md_browser wasn't correctly slugifying escaped characters in header names.
Gitiles shows the literal character (ex. "\_" shows as "_"), but md_browser
previously slugified to "_95_" as an artifact of the python library
encoding escaped chars as "\x02 (ASCII code for escaped char) \x03", where
\x02 & \x03 are "start of text" and "end of text" respectively.

This adds a step to decode decimal codes in-between \x02 & \x03.

Bug: 974025
Test: tools/md_browser/md_browser.py android_build_instructions.md (click "Figuring out target_cpu")
Test: I also tested this by comparing against https://crrev.com/c/1665854
Change-Id: I561be6f0742d11ac5188e5680573ce112b8883fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1658676
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Nate Fischer <ntfschr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#670287}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 04d1322f71067436427a297722eb663ae4d1f715
1 file changed
tree: e37285a1e916b14e4674bc5a176b6528ed3d5e6c
  1. .gitignore
  2. OWNERS
  3. README.md
  4. __init__.py
  5. base.css
  6. doc.css
  7. footer.html
  8. gitiles_autolink.py
  9. gitiles_ext_blocks.py
  10. gitiles_smart_quotes.py
  11. header.html
  12. md_browser.py
  13. prettify.css
  14. update-css.sh
README.md

md_browser

This is a simple tool to render the markdown docs in a chromium checkout locally. It is written in Python and uses the Python ‘markdown’ package, which is checked into src/third_party.

md_browser attempts to emulate the flavor of Markdown implemented by Gitiles.

Gitiles is the source browser running on https://chromium.googlesource.com, and can be run locally, but to do so requires a Java install and a Buck install, which can be slightly annoying to set up on Mac or Windows.

This is a lighterweight solution, which also allows you to preview uncommitted changes (i.e., it just serves files out of the filesystem, and is not a full Git repo browser like Gitiles is).

To run md_browser:

  1. cd to the top of your chromium checkout

  2. run python tools/md_browser/md_browser.py

  3. There is no step three.

This will run a local web server on port 8080 that points to the top of the repo. You can specify a different port with the -p flag.