{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":692146,"defaultBranch":"master","name":"markdown","ownerLogin":"Python-Markdown","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-05-29T02:59:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11278576?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1710430637.0","currentOid":""},"activityList":{"items":[{"before":"993b57b8ea577f2120f7d0c81b45ee5ed74a0f57","after":"ec8c305fb14eb081bb874c917d8b91d3c5122334","ref":"refs/heads/master","pushedAt":"2024-04-25T13:46:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Refactor `abbr` Extension\n\nA new `AbbrTreeprocessor` has been introduced, which replaces the now\r\ndeprecated `AbbrInlineProcessor`. Abbreviation processing now happens\r\nafter Attribute Lists, avoiding a conflict between the two extensions.\r\nFixes #1460.\r\n\r\nThe `AbbrPreprocessor` class has been renamed to `AbbrBlockprocessor`, which\r\nbetter reflects what it is. `AbbrPreprocessor` has been deprecated.\r\n\r\nA call to `Markdown.reset()` now clears all previously defined abbreviations.","shortMessageHtmlLink":"Refactor abbr Extension"}},{"before":"e524b8fe938738cb4492411a34cce89051cb9695","after":"993b57b8ea577f2120f7d0c81b45ee5ed74a0f57","ref":"refs/heads/master","pushedAt":"2024-03-18T14:21:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fixed links to source code on GitHub from the documentation\n\nWith the current version, if you open e.g. this page:\nhttps://python-markdown.github.io/reference/markdown/blockprocessors/\n\nThe ‹› links on the right side of the page will point to URLs like\nhttps://github.com/Python-Markdown/markdown/tree/3.6//home/runner/work/markdown/markdown/md/markdown/blockprocessors.py\n\nThis commit fixes them by replacing `filepath` with `relative_filepath`.","shortMessageHtmlLink":"Fixed links to source code on GitHub from the documentation"}},{"before":"3d8afc6f89e169522f44c1bbec15f66dc359eccb","after":"e524b8fe938738cb4492411a34cce89051cb9695","ref":"refs/heads/master","pushedAt":"2024-03-14T15:35:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Bump version to 3.6","shortMessageHtmlLink":"Bump version to 3.6"}},{"before":"9edba85fc14f034b7109534220702bf60178ff15","after":"3d8afc6f89e169522f44c1bbec15f66dc359eccb","ref":"refs/heads/master","pushedAt":"2024-03-12T15:54:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Allow attr_list quoted values to contain curly braces\n\nHow it worked before:\r\n\r\n * Extract the content without allowing any `}` in it, and require that it ends with `}` - for block elements anchored to the end of the line, otherwise not.\r\n * Parse the content in more detail. No edge cases with `}` can arise. If parsing is interrupted by some unrecognized token, discard the rest of the string.\r\n\r\nHow it works now:\r\n\r\n * Extract the content *and allow* `}` in it, and require that it ends with `}` - for block elements it's anchored to the end of the line, otherwise not.\r\n * Parse the content in more detail. Allow `}` only within the quoted parts, otherwise interrupt parsing like for any other unrecognized token.\r\n If parsing is interrupted, there is remaining unrecognized text. Ideally perhaps we would bail out at this point entirely (and not recognize it as an attr_list), but to preserve historic behavior, any extra text before `}` is just discarded.\r\n If there is an extra `}` in the remaining text:\r\n * For block elements: that must mean that the attr_list syntax did not in fact terminate at the end of the line but earlier. So, bail out and do not register any attributes and do not change the original text.\r\n * For inline elements: that must mean that we just overmatched a bit, but that's OK, we just assign attrs as normal and put the extra text back into the string. As mentioned, any extra text *before* `}` is just discarded.","shortMessageHtmlLink":"Allow attr_list quoted values to contain curly braces"}},{"before":"e4ab4a610edc6332ce81a53aa4ae6f97516ce461","after":"9edba85fc14f034b7109534220702bf60178ff15","ref":"refs/heads/master","pushedAt":"2024-03-08T14:44:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Refactor abbr escaping\n\nA alternate fix to #1444. This does not exclude the use of carrots or square \r\nbrackets in abbreviations. It still excludes backslashse, however. I played\r\nwith backslashes and it just doesn't make sense to support them as they \r\nhave special meaning in the Markdown, not because of their use in regular\r\nexpressions.","shortMessageHtmlLink":"Refactor abbr escaping"}},{"before":"a18765c25cccab23f400edeac94d20f4be00492b","after":"e4ab4a610edc6332ce81a53aa4ae6f97516ce461","ref":"refs/heads/master","pushedAt":"2024-03-08T14:05:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Refactor TOC sanitation\n\n* All postprocessors are run on heading content.\r\n* Footnote references are stripped from heading content. Fixes #660.\r\n* A more robust `striptags` is provided to convert headings to plain text.\r\n Unlike, the `markupsafe` implementation, HTML entities are not unescaped.\r\n* The plain text `name`, rich `html` and unescaped raw `data-toc-label` are\r\n saved to `toc_tokens`, allowing users to access the full rich text content of\r\n the headings directly from `toc_tokens`.\r\n* `data-toc-label` is sanitized separate from heading content.\r\n* A `html.unescape` call is made just prior to calling `slugify` so that\r\n `slugify` only operates on Unicode characters. Note that `html.unescape` is\r\n not run on the `name` or `html`.\r\n* The `get_name` and `stashedHTML2text` functions defined in the `toc` extension\r\n are both **deprecated**. Instead, use some combination of `run_postprocessors`,\r\n `render_inner_html` and `striptags`.\r\n\r\nCo-authored-by: Oleh Prypin ","shortMessageHtmlLink":"Refactor TOC sanitation"}},{"before":"421f1e88ff4661b4433b97ec57b040a2a74e5aed","after":"a18765c25cccab23f400edeac94d20f4be00492b","ref":"refs/heads/master","pushedAt":"2024-03-06T20:47:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Explicitly omit carot and backslash from abbr\n\nFixes #1444.","shortMessageHtmlLink":"Explicitly omit carot and backslash from abbr"}},{"before":"c334a3e47e6565469344154f966cf0eb9aca0de3","after":"421f1e88ff4661b4433b97ec57b040a2a74e5aed","ref":"refs/heads/master","pushedAt":"2024-02-05T13:43:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Give smarty tree processor higher priority than toc\n\nAnd add a test for using smarty in ToC headers.\r\n\r\nFixes #1438.","shortMessageHtmlLink":"Give smarty tree processor higher priority than toc"}},{"before":"ea92856855a6314488acb121f21f8fa02860e008","after":"c334a3e47e6565469344154f966cf0eb9aca0de3","ref":"refs/heads/master","pushedAt":"2024-01-29T18:42:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Ensure lines after heading in loose list are properly detabbed\n\nThis is a weird edge case. Normally, detabbing would be handled by\r\nthe `ListIndentProcessor`. However, in this one case, that class's\r\n`get_level` method would need to return a different result than in\r\nany other case. As there is no way to easily determine this specific\r\ncase from that class, we make the adjustment directly in the\r\n`HashHeaderProcessor` class. Fixes #1433.","shortMessageHtmlLink":"Ensure lines after heading in loose list are properly detabbed"}},{"before":"a2effd6d5191808c8b2e347965f6fcf4aa709e78","after":"ea92856855a6314488acb121f21f8fa02860e008","ref":"refs/heads/master","pushedAt":"2024-01-29T18:05:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Update the license template so GitHub can detect it\n\nThe license remains BSD 3-Clause but with a better known text","shortMessageHtmlLink":"Update the license template so GitHub can detect it"}},{"before":"6425ffcbe9d4ae87373cedddbbc36ce0025a9d84","after":"a2effd6d5191808c8b2e347965f6fcf4aa709e78","ref":"refs/heads/master","pushedAt":"2024-01-22T14:44:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Disable mkdocstrings show_symbol_type_toc option to work around searching issue in #1432","shortMessageHtmlLink":"Disable mkdocstrings show_symbol_type_toc option to work around searc…"}},{"before":"08dacae618775831243f6bbab47d9be590d511f2","after":"6425ffcbe9d4ae87373cedddbbc36ce0025a9d84","ref":"refs/heads/master","pushedAt":"2024-01-14T22:33:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"MANIFEST.in: Include scripts/*.py in the generated source tarball\n\nThese scripts are needed for building the documentation.","shortMessageHtmlLink":"MANIFEST.in: Include scripts/*.py in the generated source tarball"}},{"before":"e466f381d09692f484f8ff022273e2ac8cea0b16","after":"08dacae618775831243f6bbab47d9be590d511f2","ref":"refs/heads/master","pushedAt":"2024-01-10T15:17:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Bump version to 3.5.2","shortMessageHtmlLink":"Bump version to 3.5.2"}},{"before":"a2a9c53ea262ea0d39e76aa18430ce071fbe68d5","after":"e466f381d09692f484f8ff022273e2ac8cea0b16","ref":"refs/heads/master","pushedAt":"2024-01-03T18:24:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fix handling of bogus comments.\n\nAs with most implementations, we now pass through bogus comments (as\r\ndefined by the HTML Spec) unaltered except that they are HTML escaped.\r\nThis deviates from the reference implementation which completely ignores\r\nthem. As the reference implementation seems to not have even contemplated\r\ntheir existence, it is not being used as a reference in this instance.\r\nFixes #1425.","shortMessageHtmlLink":"Fix handling of bogus comments."}},{"before":"cef5afeb959d11e1ad5566fefa1f9a71136c1050","after":"a2a9c53ea262ea0d39e76aa18430ce071fbe68d5","ref":"refs/heads/master","pushedAt":"2023-12-05T18:44:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Update change log link in README.md","shortMessageHtmlLink":"Update change log link in README.md"}},{"before":"5d7f2559c31844f788ea41132f40ace7555518e6","after":"cef5afeb959d11e1ad5566fefa1f9a71136c1050","ref":"refs/heads/master","pushedAt":"2023-11-20T18:25:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Update Changelog URL","shortMessageHtmlLink":"Update Changelog URL"}},{"before":"bc14d5917b2943b438af930ae61fe27c31581375","after":"5d7f2559c31844f788ea41132f40ace7555518e6","ref":"refs/heads/master","pushedAt":"2023-11-13T19:42:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fix missing search in docs\n\nFixes #1416.","shortMessageHtmlLink":"Fix missing search in docs"}},{"before":"9b06df2cff3602c98a77601d95d639ceacedb07d","after":"bc14d5917b2943b438af930ae61fe27c31581375","ref":"refs/heads/master","pushedAt":"2023-11-06T16:42:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Split changelog workflows to separate logic on when each gets run.\n\nAlso fix a typo (`path=>paths`).","shortMessageHtmlLink":"Split changelog workflows to separate logic on when each gets run."}},{"before":"dac7977458eb1f2ca27107e65bfa41aad3ac74bb","after":"9b06df2cff3602c98a77601d95d639ceacedb07d","ref":"refs/heads/master","pushedAt":"2023-11-06T03:07:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"ghp-import it not a command module","shortMessageHtmlLink":"ghp-import it not a command module"}},{"before":"dcd69b154b74a7818be433491896391058ea7e04","after":"dac7977458eb1f2ca27107e65bfa41aad3ac74bb","ref":"refs/heads/master","pushedAt":"2023-11-06T02:34:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fix a minor oversight in #1407","shortMessageHtmlLink":"Fix a minor oversight in #1407"}},{"before":"a63e6f3416f2e4fc7c2d5edb2768ceed9218df20","after":"dcd69b154b74a7818be433491896391058ea7e04","ref":"refs/heads/master","pushedAt":"2023-11-06T01:30:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Update docs deploy scripts\n\nThe update in 5cbabe1 didn't provide for a .nojekyll file, which is necessary when publishing to GitHub Pages to avoid Jekyll messing with our statically generated documentation.\r\n\r\nAlso added a user input to the manual deploy script which allows deploying from any past reference (tag or commit).","shortMessageHtmlLink":"Update docs deploy scripts"}},{"before":"f5b151ac899dd0e71bc689ecfce17ac6018789eb","after":"a63e6f3416f2e4fc7c2d5edb2768ceed9218df20","ref":"refs/heads/master","pushedAt":"2023-11-03T14:20:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fix edge-case crash in InlineProcessor\n\nIf an inlineprocessor returns an AtomicString (even though that is pointless, a plain string is atomic in that context), there can be an exception in 2 separate places. The added test case was crashing before this change.","shortMessageHtmlLink":"Fix edge-case crash in InlineProcessor"}},{"before":"87249beb5257e7c8c2b84ccbedb3f126ab6840d2","after":"f5b151ac899dd0e71bc689ecfce17ac6018789eb","ref":"refs/heads/master","pushedAt":"2023-11-03T13:53:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fix edge-case crash in codehilite\n\nIf there is an empty `
` inserted by another extension, there can be an exception. The added test case was crashing before this change.","shortMessageHtmlLink":"Fix edge-case crash in codehilite"}},{"before":"040b617a0dfed0f647582fffee5b0f3f64447184","after":"87249beb5257e7c8c2b84ccbedb3f126ab6840d2","ref":"refs/heads/master","pushedAt":"2023-11-02T17:31:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Fix typo in attribute name\n\nThere are no other references to `content_indention`, and it seems that there were no problems with this only because the other line `self.content_indent = indent` kicks in in all relevant situations.","shortMessageHtmlLink":"Fix typo in attribute name"}},{"before":"85d0c18dc925c8e2758fe72145f0aeefd56a7fdb","after":"040b617a0dfed0f647582fffee5b0f3f64447184","ref":"refs/heads/master","pushedAt":"2023-11-02T17:03:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Remove legacy import needed only in Python 2","shortMessageHtmlLink":"Remove legacy import needed only in Python 2"}},{"before":"5cbabe1cc774d1e743d11ebc05d5c5c126ee8a7a","after":"85d0c18dc925c8e2758fe72145f0aeefd56a7fdb","ref":"refs/heads/master","pushedAt":"2023-11-02T14:44:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Add and improve type annotations","shortMessageHtmlLink":"Add and improve type annotations"}},{"before":"8e517de89015e6469e6829d98b6d7c55bd9fedf8","after":"5cbabe1cc774d1e743d11ebc05d5c5c126ee8a7a","ref":"refs/heads/master","pushedAt":"2023-11-02T14:36:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Update Docs deployment\n\nSwitch to a different action (cpina/github-action-push-to-another-repository) which has worked in testing (see https://github.com/waylan/test-repo-source).\r\n\r\nAlso updated the version of many actions in all workflows to eliminate various warnings we have been getting of late.","shortMessageHtmlLink":"Update Docs deployment"}},{"before":"2932f183921943687ca3d72b3908a937bd495d24","after":"8e517de89015e6469e6829d98b6d7c55bd9fedf8","ref":"refs/heads/master","pushedAt":"2023-11-01T15:18:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Correct the declarations of I/O buffers as bytes-based\n\n* Correctly declare the parameter annotations as `BinaryIO`, because in fact it works only with byte-based buffers.\r\n\r\n* `sys.stdin.read()` is always a string, so remove the Python2-specific check.\r\n * Correct the patch in the test which incorrectly sets `sys.stdin` to a bytes buffer which it never is.\r\n\r\n* `sys.stdout.buffer` always exists, so remove the Python2-specific fallback.\r\n * Correct the patch in the test which incorrectly sets `sys.stdout` to a bytes buffer which it never is. And fix a matching mistake because this necessitated `stdout.read().decode()`.","shortMessageHtmlLink":"Correct the declarations of I/O buffers as bytes-based"}},{"before":"76af499a6771f0a120d5068119bd4af192ad8d79","after":"2932f183921943687ca3d72b3908a937bd495d24","ref":"refs/heads/master","pushedAt":"2023-10-31T19:57:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Bump version to 3.5.1","shortMessageHtmlLink":"Bump version to 3.5.1"}},{"before":"99425b47bc5b5cf5cda570c1ae5f739082370d8d","after":"76af499a6771f0a120d5068119bd4af192ad8d79","ref":"refs/heads/master","pushedAt":"2023-10-31T18:46:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"waylan","name":"Waylan Limberg","path":"/waylan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78846?s=80&v=4"},"commit":{"message":"Update changelog validation (#1388)\n\nEvery edit to the changelog must be validated so that an invalid changelog doesn't block a release.","shortMessageHtmlLink":"Update changelog validation (#1388)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOjiabgA","startCursor":null,"endCursor":null}},"title":"Activity · Python-Markdown/markdown"}