Skip to content

Commit

Permalink
[Markdown] Refactor Syntax (#3167)
Browse files Browse the repository at this point in the history
[Markdown] Refactor Syntax

Fixes #1930
Fixes #2542
Fixes #2857
Fixes #2942
Fixes #3073
Addresses #3154 (in ST3 compatible way)
Fixes #3157
Fixes #3170
Addresses #3228

This commit refactors Markdown syntax to 

1. improve compliance with CommonMark specification:
   https://spec.commonmark.org/0.30

   Many tests are added to proof compliance:
   https://spec.commonmark.org/0.30/spec.json

   Latest GFM syntax is based on CommonMark at the time writing,
   so those rules are included as well:
   https://github.github.com/gfm/

2. convert most anonymous to named contexts for better support
   of inheritance.

3. reorganize syntax into logical sections for better readability
   and maintainability.

4. address most Markdown related issues of sublimehq/Packages repo.
   
Main changes are:

- fix CommonMark compatibility of backslash escapes
- fix CommonMark compatibility of block quotes
- fix CommonMark compatibility of html entities
- fix CommonMark compatibility of fenced code blocks
- fix CommonMark compatibility of indented code blocks
  (mixed tabs/spaces)
- fix CommonMark compatibility of reference definitions
- fix CommonMark compatibility of thematic breaks
- update strike-through markup to use 2 tildes only
- reorganizing contexts in logical sections

Benchmarks:

This commit has no impact on parsing performance.

Notes: 

1. Some remaining CommonMark incompatibilities need further work
   using ST4's "branching" feature.
2. Main refactoring work was done in MarkdownEditing package and
   released with version 3.1.1. This commit contains the result
   of that work, except some features which rely on 3rd-party
   (syntax) packages.

   Removed features are:
   - coffee script support in front-matter
   - numerous code-block syntaxes (E.g.: Ada, Coffee Script, ...)
   - LaTex blocks
   - custom `<kbd>` tag highlighting as it doesn't meet 
     quality expectations
  • Loading branch information
deathaxe authored May 7, 2022
1 parent faa4b2c commit b31d078
Show file tree
Hide file tree
Showing 7 changed files with 10,095 additions and 4,468 deletions.
Loading

0 comments on commit b31d078

Please sign in to comment.