2024-08-22 01:21:38 +00:00
|
|
|
|
|
|
|
<lexer>
|
|
|
|
<config>
|
|
|
|
<name>Markdown</name>
|
|
|
|
<alias>markdown</alias>
|
|
|
|
<alias>md</alias>
|
|
|
|
<filename>*.md</filename>
|
|
|
|
<filename>*.markdown</filename>
|
|
|
|
<mime_type>text/x-markdown</mime_type>
|
|
|
|
</config>
|
|
|
|
<rules>
|
|
|
|
<state name="root">
|
|
|
|
<rule pattern="(^#[^#].+)(\n)"><bygroups><token type="GenericHeading"/><token type="Text"/></bygroups></rule>
|
|
|
|
<rule pattern="(^#{2,6}[^#].+)(\n)"><bygroups><token type="GenericSubheading"/><token type="Text"/></bygroups></rule>
|
|
|
|
<rule pattern="^(.+)(\n)(=+)(\n)"><bygroups><token type="GenericHeading"/><token type="Text"/><token type="GenericHeading"/><token type="Text"/></bygroups></rule>
|
|
|
|
<rule pattern="^(.+)(\n)(-+)(\n)"><bygroups><token type="GenericSubheading"/><token type="Text"/><token type="GenericSubheading"/><token type="Text"/></bygroups></rule>
|
|
|
|
<rule pattern="^(\s*)([*-] )(\[[ xX]\])( .+\n)"><bygroups><token type="TextWhitespace"/><token type="Keyword"/><token type="Keyword"/><usingself state="inline"/></bygroups></rule>
|
|
|
|
<rule pattern="^(\s*)([*-])(\s)(.+\n)"><bygroups><token type="TextWhitespace"/><token type="Keyword"/><token type="TextWhitespace"/><usingself state="inline"/></bygroups></rule>
|
|
|
|
<rule pattern="^(\s*)([0-9]+\.)( .+\n)"><bygroups><token type="TextWhitespace"/><token type="Keyword"/><usingself state="inline"/></bygroups></rule>
|
|
|
|
<rule pattern="^(\s*>\s)(.+\n)"><bygroups><token type="Keyword"/><token type="GenericEmph"/></bygroups></rule>
|
2024-08-23 13:20:03 +00:00
|
|
|
<rule pattern="^(```\n)([\w\W]*?)(^```$)">
|
|
|
|
<bygroups>
|
|
|
|
<token type="LiteralStringBacktick"/>
|
|
|
|
<token type="Text"/>
|
|
|
|
<token type="LiteralStringBacktick"/>
|
|
|
|
</bygroups>
|
|
|
|
</rule>
|
|
|
|
<rule pattern="^(```)(\w+)(\n)([\w\W]*?)(^```$)">
|
|
|
|
<bygroups>
|
|
|
|
<token type="LiteralStringBacktick"/>
|
2024-08-26 23:18:28 +00:00
|
|
|
<token type="NameLabel"/>
|
2024-08-23 13:20:03 +00:00
|
|
|
<token type="TextWhitespace"/>
|
2024-08-26 23:18:28 +00:00
|
|
|
<UsingByGroup lexer="2" content="4"/>
|
2024-08-23 13:20:03 +00:00
|
|
|
<token type="LiteralStringBacktick"/>
|
|
|
|
</bygroups>
|
2024-08-22 01:21:38 +00:00
|
|
|
</rule>
|
|
|
|
<rule><include state="inline"/></rule>
|
|
|
|
</state>
|
|
|
|
<state name="inline">
|
|
|
|
<rule pattern="\\."><token type="Text"/></rule>
|
|
|
|
<rule pattern="([^`]?)(`[^`\n]+`)"><bygroups><token type="Text"/><token type="LiteralStringBacktick"/></bygroups></rule>
|
|
|
|
<rule pattern="([^\*]?)(\*\*[^* \n][^*\n]*\*\*)"><bygroups><token type="Text"/><token type="GenericStrong"/></bygroups></rule>
|
|
|
|
<rule pattern="([^_]?)(__[^_ \n][^_\n]*__)"><bygroups><token type="Text"/><token type="GenericStrong"/></bygroups></rule>
|
|
|
|
<rule pattern="([^\*]?)(\*[^* \n][^*\n]*\*)"><bygroups><token type="Text"/><token type="GenericEmph"/></bygroups></rule>
|
|
|
|
<rule pattern="([^_]?)(_[^_ \n][^_\n]*_)"><bygroups><token type="Text"/><token type="GenericEmph"/></bygroups></rule>
|
|
|
|
<rule pattern="([^~]?)(~~[^~ \n][^~\n]*~~)"><bygroups><token type="Text"/><token type="GenericDeleted"/></bygroups></rule>
|
|
|
|
<rule pattern="[@#][\w/:]+"><token type="NameEntity"/></rule>
|
|
|
|
<rule pattern="(!?\[)([^]]+)(\])(\()([^)]+)(\))"><bygroups><token type="Text"/><token type="NameTag"/><token type="Text"/><token type="Text"/><token type="NameAttribute"/><token type="Text"/></bygroups></rule>
|
|
|
|
<rule pattern="(\[)([^]]+)(\])(\[)([^]]*)(\])"><bygroups><token type="Text"/><token type="NameTag"/><token type="Text"/><token type="Text"/><token type="NameLabel"/><token type="Text"/></bygroups></rule>
|
|
|
|
<rule pattern="^(\s*\[)([^]]*)(\]:\s*)(.+)"><bygroups><token type="Text"/><token type="NameLabel"/><token type="Text"/><token type="NameAttribute"/></bygroups></rule>
|
|
|
|
<rule pattern="[^\\\s]+"><token type="Text"/></rule>
|
|
|
|
<rule pattern="."><token type="Text"/></rule>
|
|
|
|
</state>
|
|
|
|
</rules>
|
|
|
|
</lexer>
|