From 23f3fbab8ed4ef543a17cd596f9a4562b13496c8 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 16 Jun 2015 22:26:39 -0700 Subject: Preliminary spec changes for new tab handling. Instead of having a preprocessing step where tabs are converted to spaces, we now handle tabs directly in the parser. This allows tabs to be retained in code blocks and code spans. This commit adds some general language to the effect that, for purposes of determining block structure, tabs are to be treated just like equivalent spaces. Much more work is needed on the spec regarding spaces and tabs, but this change (and corresponding changes to the implementations) is a start. --- spec.txt | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/spec.txt b/spec.txt index f6ea793..0c42aae 100644 --- a/spec.txt +++ b/spec.txt @@ -249,15 +249,24 @@ A [punctuation character](@punctuation-character) is an [ASCII punctuation character] or anything in the unicode classes `Pc`, `Pd`, `Pe`, `Pf`, `Pi`, `Po`, or `Ps`. -## Preprocessing +## Tabs -Tabs in lines are immediately expanded to [spaces][space], with a tab -stop of 4 characters: +Tabs in lines are not expanded to [spaces][space]. However, +in contexts where indentation is significant for the +document's structure, tabs behave as if they were replaced +by spaces with a tab stop of 4 characters. . →foo→baz→→bim . -
foo baz     bim
+
foo→baz→→bim
+
+. + +. + →foo→baz→→bim +. +
foo→baz→→bim
 
. @@ -265,11 +274,33 @@ stop of 4 characters: a→a ὐ→a . -
a   a
-ὐ   a
+
a→a
+ὐ→a
 
. +. + - foo + +→bar +. +
    +
  • +

    foo

    +

    bar

    +
  • +
+. + +. +>→foo→bar +. +
+

foo→bar

+
+. + + ## Insecure characters For security reasons, the Unicode character `U+0000` must be replaced @@ -4251,7 +4282,7 @@ backslashes: . \→\A\a\ \3\φ\« . -

\ \A\a\ \3\φ\«

+

\→\A\a\ \3\φ\«

. Escaped characters are treated as regular characters and do -- cgit v1.2.3