Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generalized the Codebraid support to MkDocs
In microsoft#57 support for Codebraid syntax was added, which essentially is just Pandoc attribute syntax, but with a specific class attribute added. The support was added as an extra `identifier` in the list of languages, for which Codebraid has support, such as for python: `\\{\\.python.+?\\}`. The below example would give the following scope: "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown" to the entire line: ```{.python .cb.nb jupyter_kernel=python3} ``` However the "language scope" should only be given to the "python" part, and the current support doesn't allow spaces between the curly braces, and it lacks support for all languages. MkDocs allows a few ways to annotate fenced code blocks, but if additional classes, id or key/value pairs are used, then the curly braces must be used and the language must be prefixed with a dot. In simple cases where only the language is specified, then the curly braces and the dot may be omitted. The following are quick examples: ``` { .python #id .class title="My Title"} ``` or ``` python ``` This change removes the Codebraid support from the specific languages as an `identifier` attribute, and moved into the RegEx by defining it as two alternative cases: surrounded by curly braces or allowing them after the language: 1. The case where the entire line after the code fence is wrapped in curly braces. In this case the curly braces is not part of the language and attribute scope. 2. The case where the attributes follows the language specification in all sorts of ways (I'm specifically thinking of you Gatsby microsoft#62). In this case the curly braces are included in the attribute scope as it is not trivial to handle all the various ways it may be used, and since this is the current behavior. @microsoft-github-policy-service agree Closes microsoft#153 Refs: https://github.com/Python-Markdown/markdown/blob/master/docs/extensions/fenced_code_blocks.md
- Loading branch information