securemark 0.247.2 → 0.249.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/design.md +7 -4
  3. package/dist/index.js +111 -246
  4. package/markdown.d.ts +10 -11
  5. package/package.json +6 -6
  6. package/src/combinator/control/manipulation/indent.ts +1 -2
  7. package/src/parser/inline/annotation.test.ts +2 -2
  8. package/src/parser/inline/annotation.ts +4 -5
  9. package/src/parser/inline/comment.ts +1 -1
  10. package/src/parser/inline/deletion.ts +3 -3
  11. package/src/parser/inline/emphasis.test.ts +5 -4
  12. package/src/parser/inline/emphasis.ts +8 -3
  13. package/src/parser/inline/emstrong.ts +14 -6
  14. package/src/parser/inline/extension/index.ts +1 -2
  15. package/src/parser/inline/extension/label.ts +1 -2
  16. package/src/parser/inline/html.test.ts +8 -5
  17. package/src/parser/inline/html.ts +17 -86
  18. package/src/parser/inline/insertion.ts +3 -3
  19. package/src/parser/inline/link.test.ts +2 -2
  20. package/src/parser/inline/link.ts +3 -4
  21. package/src/parser/inline/mark.test.ts +5 -4
  22. package/src/parser/inline/mark.ts +3 -3
  23. package/src/parser/inline/media.ts +3 -3
  24. package/src/parser/inline/reference.test.ts +5 -5
  25. package/src/parser/inline/reference.ts +8 -10
  26. package/src/parser/inline/ruby.ts +4 -4
  27. package/src/parser/inline/strong.test.ts +5 -4
  28. package/src/parser/inline/strong.ts +7 -3
  29. package/src/parser/inline.test.ts +1 -0
  30. package/src/parser/processor/figure.ts +18 -19
  31. package/src/parser/source/escapable.test.ts +4 -3
  32. package/src/parser/source/escapable.ts +3 -3
  33. package/src/parser/source/text.test.ts +4 -4
  34. package/src/parser/source/text.ts +3 -3
  35. package/src/parser/source/unescapable.test.ts +4 -3
  36. package/src/parser/source/unescapable.ts +3 -3
  37. package/src/parser/util.ts +26 -13
  38. package/src/renderer/render/media/image.ts +3 -3
  39. package/src/renderer/render/media/video.ts +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.249.0
4
+
5
+ - Change some parsers to trim leading blanks except linebreaks.
6
+
7
+ ## 0.248.1
8
+
9
+ - Fix html parser.
10
+
11
+ ## 0.248.0
12
+
13
+ - Change html parser not to limit nesting patterns of HTML tags.
14
+
3
15
  ## 0.247.2
4
16
 
5
17
  - Fix math parser.
package/design.md CHANGED
@@ -278,8 +278,11 @@ CodeMirrorが素では速いがVimModeでは数万文字程度でも耐え難く
278
278
 
279
279
  ### バックトラック
280
280
 
281
- SecuremarkのAnnotation構文に典型的であるように文脈を変える構文が存在する場合文脈の相違から解析結果を再利用不能な(`αA'β | αAB`)バックトラックが再帰的に生じ、このような言語を線形時間で解析することは基本的に不可能であると思われる。
282
- このため線形時間で解析可能な文法に制約されるCommonMarkがこの制約を破らずこのような文脈不確定文法を導入することは(リンク構文のような特殊な解決方法を取れる場合を除き)基本的に不可能であるという拡張性の限界が存在する。
281
+ SecuremarkのAnnotation構文に典型的であるように文脈を変更する構文とその文脈に依存し変更される他の構文が存在する場合文脈の相違から解析結果を再利用不能な(`αA'β | αAB`)バックトラックが生じる。ここで解析中に文脈依存構文に遭遇した時、現在の文脈での解析を継続する場合はバックトラックが再帰的に生じ線形時間で解析できず、現在の文脈での解析を中止し直前の文脈を継続または新たな文脈を開始する場合は線形時間で解析できる。
282
+ CommonMarkはLink構文から明らかなように後者の解析方法により線形時間で解析できる言語であるがこれは同時に文脈依存構文の正当な入れ子表現すら解析できず文脈依存構文の存在する数に応じて指数関数的に構文の壊れやすさの増す脆く拡張性の低い言語であることを意味する。
283
+ 従って線形時間で解析可能な文法に制約されるCommonMarkには文脈依存構文を入れ子表現の広範な制限ならびに構文の可読性および開始記号の信頼性の指数関数的な低下と引き換えにしか追加できないという拡張性の限界が存在する。
284
+ 対してSecuremarkは線形時間で解析不能な前者の解析方法を採用し解析時間と解析範囲の局限により線形時間で解析不能な入力の影響を局限することでこの制限を回避している。
285
+ ただし実際には文脈依存構文の入れ子表現はほとんどがリンクの入れ子不可制約として正当に制限されており開始記号の文字列(終端記号)としての正当な使用も稀と思われるため実用上差異が生じることはほとんどないと思われる。
283
286
 
284
287
  ### 標準化
285
288
 
@@ -296,5 +299,5 @@ MarkdownはGFMのように最初から高機能で完成度の高い拡張不要
296
299
 
297
300
  ### Data URI
298
301
 
299
- Data URIは保存および転送容量削減ならびに集約的管理のためサポートしない。
300
- 特に規制および公開レベルの媒体別の設定のためテキストとメディアの分離が必須となる。
302
+ Data URIは保存および転送容量削減ならびにユーザーおよび管理者双方の集約的管理のためサポートしない。
303
+ 特に規制および公開レベルの媒体別設定の実現のためテキストとメディアの分離が必須となる。