)]}'
{
  "commit": "63341e11ca916e211635dc9c6637c0ddb66da44a",
  "tree": "4401312d16830a1b0164b8740e43a87de46c05ca",
  "parents": [
    "698db68fad04d9169dce4441ecde128e304fc422"
  ],
  "author": {
    "name": "Marc Kupietz",
    "email": "kupietz@ids-mannheim.de",
    "time": "Fri Jun 12 16:34:30 2026 +0200"
  },
  "committer": {
    "name": "Marc Kupietz",
    "email": "kupietz@ids-mannheim.de",
    "time": "Fri Jun 12 16:34:30 2026 +0200"
  },
  "message": "Derive externalLink for Krill when not explicitly encoded (#47)\n\nIn some KorAP-XML corpora the full-text link is not encoded as a\nref[@type\u003dpage_url]/link element. ExternalLinkResolver now derives it,\nmirroring the predecessor tool (KorAP-XML-Krill, KorAP::XML::Meta::I5):\n\n  - Wikipedia (wpd17/wdd17): the article URL only appears in the\n    reference[type\u003dcomplete] text; extracted with title \"Wikipedia\".\n    This is the bug reported in #47.\n  - DGD/AGD/FOLK: DGD access link built from the transcript title\n    (trailing _DF_\u003cn\u003e stripped), title \"DGD\".\n  - Süddeutsche Zeitung (U\u003cyy\u003e sigles): szarchiv link from the biblNote\n    \"ID:\", title \"Süddeutsche Zeitung\".\n  - Genios newspapers: genios.de link from the corpus sigle (mapped to\n    an orikuerzel via the generated GeniosKuerzelMap) plus the biblNote\n    \"ID:\", title \"GENIOS\". Genios detection requires a well-formed\n    [A-Z]{1,3}[0-9]{2} sigle so arbitrary sigles cannot trigger a link.\n\nThe rules are pure functions applied in priority order; explicitly\nencoded links still take precedence. The link title is carried to the\nKrill renderer via a new, non-emitted externalLinkTitle helper field.\n\nAdds ExternalLinkResolverTest (unit tests for all four rules and\nprecedence) and two KrillJsonGeneratorTest cases: Wikipedia extraction\nfrom wdd17sample.zip and the Genios wiring on a W24 header.\n\nResolves #47\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n\nChange-Id: I181254fc5367773701bb3502e55c8531f52c1258\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5c3eb563081fee02d88830cc0559449a0a8fa107",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "a8020d36fc2fbfcd70a4b7730db337610bcac460",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e89baacc088d173ebf1ab7617f651ac8d18f07ab",
      "new_mode": 33188,
      "new_path": "app/src/main/kotlin/de/ids_mannheim/korapxmltools/ExternalLinkResolver.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "714cacef2c9aa95a8b9dbc613cfa627531bc0547",
      "new_mode": 33188,
      "new_path": "app/src/main/kotlin/de/ids_mannheim/korapxmltools/GeniosKuerzelMap.kt"
    },
    {
      "type": "modify",
      "old_id": "b96ffbdb98524da5d0d03208d9c7a8fc37864e1e",
      "old_mode": 33188,
      "old_path": "app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt",
      "new_id": "f3394408768bc7037c03d164a3e1b9cb6a497815",
      "new_mode": 33188,
      "new_path": "app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt"
    },
    {
      "type": "modify",
      "old_id": "cf22cbe2e1940eff7003bdee3bb6e9c6b00559ac",
      "old_mode": 33188,
      "old_path": "app/src/main/kotlin/de/ids_mannheim/korapxmltools/formatters/KrillJsonGenerator.kt",
      "new_id": "905a8299c867470162f2d7df750a4c68c20c0cf6",
      "new_mode": 33188,
      "new_path": "app/src/main/kotlin/de/ids_mannheim/korapxmltools/formatters/KrillJsonGenerator.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab3380b3169f5c89580a985231bc207de0c76e73",
      "new_mode": 33188,
      "new_path": "app/src/test/kotlin/de/ids_mannheim/korapxmltools/ExternalLinkResolverTest.kt"
    },
    {
      "type": "modify",
      "old_id": "1316c14b9d0cc2820478afafc42a1fbf26cf5e30",
      "old_mode": 33188,
      "old_path": "app/src/test/kotlin/de/ids_mannheim/korapxmltools/KrillJsonGeneratorTest.kt",
      "new_id": "9cbc88b3de26a54aa8e68d301007ea4d527ee39b",
      "new_mode": 33188,
      "new_path": "app/src/test/kotlin/de/ids_mannheim/korapxmltools/KrillJsonGeneratorTest.kt"
    }
  ]
}
