)]}'
{
  "commit": "f74576d007f6c5fbef5f6b226ab761626ddde2ea",
  "tree": "377a832903fa3532fa0621cdf4bc3a8d3934879f",
  "parents": [
    "77be30bcac9ff7caaebd8d76634710b6c5a1f3b3"
  ],
  "author": {
    "name": "Sam Saccone",
    "email": "samccone@google.com",
    "time": "Tue Sep 08 18:36:58 2026 +0000"
  },
  "committer": {
    "name": "Sam Saccone",
    "email": "samccone@google.com",
    "time": "Wed Sep 09 19:31:26 2026 +0000"
  },
  "message": "Support code blocks within markdown tables\n\nMarkdown tables (GFM tables) require rows to be specified on single\nlines, preventing standard fenced or indented code blocks within cells.\nDocumentation generators (such as Bazel Stardoc) generate code blocks\ninside table cells using \u003cpre\u003e\u003ccode\u003e...\u003c/code\u003e\u003c/pre\u003e (or \u003cpre\u003e...)\nwith HTML line breaks or entity-encoded newlines (\u0026#10;).\n\nPreviously, GitilesHtmlExtension ignored \u003cpre\u003e and \u003ccode\u003e inline\ntags, causing MarkdownToHtml to strip them and rendering code blocks as\nplain inline text with collapsed spaces and no code styling.\nAdditionally, when GitilesHtmlExtension unlinked replaced sibling nodes\n(such as closing anchor tags), the visitor traversal prematurely ended,\nskipping subsequent siblings in the same container.\n\nThis change adds:\n1. TableCodeBlock, a CustomNode representing code blocks in inline\n   contexts like table cells.\n2. Handling in GitilesHtmlExtension to scan \u003cpre\u003e / \u003ccode\u003e tags,\n   extract language attributes, preserve newlines and code formatting,\n   and convert them to TableCodeBlock (and FencedCodeBlock for block\n   HTML).\n3. Traversal in GitilesHtmlExtension.visitChildren that safely advances\n   past replaced sibling ranges without skipping siblings.\n4. Support for \u003ca id\u003d\"...\"\u003e anchors in addition to \u003ca name\u003d\"...\"\u003e.\n5. Visitor handling in MarkdownToHtml to render TableCodeBlock via\n   codeInPre(...).\n\nChange-Id: I75c6420f19537d6b9836294f58bcdc6405410192\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a8fc04fdd5139e20b69ad2155db896cbb238a22f",
      "old_mode": 33188,
      "old_path": "java/com/google/gitiles/doc/GitilesHtmlExtension.java",
      "new_id": "fbea8d2efd4a4b03e5a6324e4841fa3ddf63a9e4",
      "new_mode": 33188,
      "new_path": "java/com/google/gitiles/doc/GitilesHtmlExtension.java"
    },
    {
      "type": "modify",
      "old_id": "4afe8b3676a61bbde6d3d3742ef87a9c540f3d77",
      "old_mode": 33188,
      "old_path": "java/com/google/gitiles/doc/MarkdownToHtml.java",
      "new_id": "c040363e635ef5c7153285323c58ac4173cb815d",
      "new_mode": 33188,
      "new_path": "java/com/google/gitiles/doc/MarkdownToHtml.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6af9fb10f0beeeecb22f65a8b3352cda028ad610",
      "new_mode": 33188,
      "new_path": "java/com/google/gitiles/doc/TableCodeBlock.java"
    },
    {
      "type": "modify",
      "old_id": "73430ce6c146d01e12771563b049498c9941b9c8",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gitiles/doc/GitilesMarkdownTest.java",
      "new_id": "72e409b1a4cc0e0c4e09c068b3ee2b8db5bdffec",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gitiles/doc/GitilesMarkdownTest.java"
    }
  ]
}
