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/ (click "Figuring out target_cpu")
Test: I also tested this by comparing against
Change-Id: I561be6f0742d11ac5188e5680573ce112b8883fc
Reviewed-by: Dirk Pranke <>
Commit-Queue: Nate Fischer <>
Cr-Original-Commit-Position: refs/heads/master@{#670287}
Cr-Mirrored-Commit: 04d1322f71067436427a297722eb663ae4d1f715
1 file changed
tree: e37285a1e916b14e4674bc5a176b6528ed3d5e6c
  1. .gitignore
  5. base.css
  6. doc.css
  7. footer.html
  11. header.html
  13. prettify.css


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, 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/

  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.