renamed the raw tag to verbatim to avoid confusion with the raw filter
authorFabien Potencier <fabien.potencier@gmail.com>
Sat, 5 Jan 2013 07:55:59 +0000 (08:55 +0100)
committerFabien Potencier <fabien.potencier@gmail.com>
Sat, 5 Jan 2013 07:57:34 +0000 (08:57 +0100)
CHANGELOG
doc/api.rst
doc/tags/index.rst
doc/tags/raw.rst [deleted file]
doc/tags/verbatim.rst [new file with mode: 0644]
doc/templates.rst
lib/Twig/Lexer.php
test/Twig/Tests/Fixtures/tags/verbatim/basic.test [new file with mode: 0644]
test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test [new file with mode: 0644]

index a152b91..2fcd732 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
 * 1.12.0 (2012-XX-XX)
 
+ * renamed the raw tag to verbatim to avoid confusion with the raw filter (the raw tag still works though)
  * fixed registration of tests and functions as anonymous functions
  * fixed global management
 
index 73470c4..9160c3f 100644 (file)
@@ -351,7 +351,7 @@ The ``core`` extension defines all the core features of Twig:
   * ``do``
   * ``embed``
   * ``flush``
-  * ``raw``
+  * ``verbatim``
   * ``sandbox``
   * ``use``
 
index fe0a00f..6dbc550 100644 (file)
@@ -17,7 +17,7 @@ Tags
     use
     spaceless
     autoescape
-    raw
+    verbatim
     flush
     do
     sandbox
diff --git a/doc/tags/raw.rst b/doc/tags/raw.rst
deleted file mode 100644 (file)
index 4136c70..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-``raw``
-=======
-
-The ``raw`` tag marks sections as being raw text that should not be parsed.
-For example to put Twig syntax as example into a template you can use this
-snippet:
-
-.. code-block:: jinja
-
-    {% raw %}
-        <ul>
-        {% for item in seq %}
-            <li>{{ item }}</li>
-        {% endfor %}
-        </ul>
-    {% endraw %}
diff --git a/doc/tags/verbatim.rst b/doc/tags/verbatim.rst
new file mode 100644 (file)
index 0000000..fe61ca1
--- /dev/null
@@ -0,0 +1,24 @@
+``verbatim``
+============
+
+.. versionadded:: 1.12
+    The ``verbatim`` tag was added in Twig 1.12 (it was named ``raw`` before).
+
+The ``verbatim`` tag marks sections as being raw text that should not be
+parsed. For example to put Twig syntax as example into a template you can use
+this snippet:
+
+.. code-block:: jinja
+
+    {% verbatim %}
+        <ul>
+        {% for item in seq %}
+            <li>{{ item }}</li>
+        {% endfor %}
+        </ul>
+    {% endverbatim %}
+
+.. note::
+
+    The ``verbatim`` tag works in the exact same way as the old ``raw`` tag,
+    but was renamed to avoid confusion with the ``raw`` filter.
\ No newline at end of file
index 93f3108..a23fcb6 100644 (file)
@@ -489,7 +489,8 @@ expression:
 
     {{ '{{' }}
 
-For bigger sections it makes sense to mark a block :doc:`raw<tags/raw>`.
+For bigger sections it makes sense to mark a block
+:doc:`verbatim<tags/verbatim>`.
 
 Macros
 ------
index d77071d..86d9639 100644 (file)
@@ -61,10 +61,10 @@ class Twig_Lexer implements Twig_LexerInterface
         $this->regexes = array(
             'lex_var'             => '/\s*'.preg_quote($this->options['whitespace_trim'].$this->options['tag_variable'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_variable'][1], '/').'/A',
             'lex_block'           => '/\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')\n?/A',
-            'lex_raw_data'        => '/('.preg_quote($this->options['tag_block'][0].$this->options['whitespace_trim'], '/').'|'.preg_quote($this->options['tag_block'][0], '/').')\s*endraw\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/s',
+            'lex_raw_data'        => '/('.preg_quote($this->options['tag_block'][0].$this->options['whitespace_trim'], '/').'|'.preg_quote($this->options['tag_block'][0], '/').')\s*(?:endraw|endverbatim)\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/s',
             'operator'            => $this->getOperatorRegex(),
             'lex_comment'         => '/(?:'.preg_quote($this->options['whitespace_trim'], '/').preg_quote($this->options['tag_comment'][1], '/').'\s*|'.preg_quote($this->options['tag_comment'][1], '/').')\n?/s',
-            'lex_block_raw'       => '/\s*raw\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/As',
+            'lex_block_raw'       => '/\s*(?:raw|verbatim)\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/As',
             'lex_block_line'      => '/\s*line\s+(\d+)\s*'.preg_quote($this->options['tag_block'][1], '/').'/As',
             'lex_tokens_start'    => '/('.preg_quote($this->options['tag_variable'][0], '/').'|'.preg_quote($this->options['tag_block'][0], '/').'|'.preg_quote($this->options['tag_comment'][0], '/').')('.preg_quote($this->options['whitespace_trim'], '/').')?/s',
             'interpolation_start' => '/'.preg_quote($this->options['interpolation'][0], '/').'\s*/A',
diff --git a/test/Twig/Tests/Fixtures/tags/verbatim/basic.test b/test/Twig/Tests/Fixtures/tags/verbatim/basic.test
new file mode 100644 (file)
index 0000000..a95be55
--- /dev/null
@@ -0,0 +1,10 @@
+--TEST--
+"verbatim" tag
+--TEMPLATE--
+{% verbatim %}
+{{ foo }}
+{% endverbatim %}
+--DATA--
+return array()
+--EXPECT--
+{{ foo }}
diff --git a/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test b/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test
new file mode 100644 (file)
index 0000000..eb61044
--- /dev/null
@@ -0,0 +1,56 @@
+--TEST--
+"verbatim" tag
+--TEMPLATE--
+1***
+
+{%- verbatim %}
+    {{ 'bla' }}
+{% endverbatim %}
+
+1***
+2***
+
+{%- verbatim -%}
+    {{ 'bla' }}
+{% endverbatim %}
+
+2***
+3***
+
+{%- verbatim -%}
+    {{ 'bla' }}
+{% endverbatim -%}
+
+3***
+4***
+
+{%- verbatim -%}
+    {{ 'bla' }}
+{%- endverbatim %}
+
+4***
+5***
+
+{%- verbatim -%}
+    {{ 'bla' }}
+{%- endverbatim -%}
+
+5***
+--DATA--
+return array()
+--EXPECT--
+1***
+    {{ 'bla' }}
+
+
+1***
+2***{{ 'bla' }}
+
+
+2***
+3***{{ 'bla' }}
+3***
+4***{{ 'bla' }}
+
+4***
+5***{{ 'bla' }}5***