diff --git a/Mustache.php b/Mustache.php index 44389f4..e15438a 100644 --- a/Mustache.php +++ b/Mustache.php @@ -144,7 +144,7 @@ class Mustache { protected function _renderSection($template, &$context) { $otag = $this->_prepareRegEx($this->_otag); $ctag = $this->_prepareRegEx($this->_ctag); - $regex = '/' . $otag . '(\\^|\\#)(.+?)' . $ctag . '\\s*([\\s\\S]+?)' . $otag . '\\/\\2' . $ctag . '\\s*/m'; + $regex = '/' . $otag . '(\\^|\\#)\\s*(.+?)\\s*' . $ctag . '\\s*([\\s\\S]+?)' . $otag . '\\/\\s*\\2\\s*' . $ctag . '\\s*/m'; $matches = array(); while (preg_match($regex, $template, $matches, PREG_OFFSET_CAPTURE)) { diff --git a/examples/whitespace/Whitespace.php b/examples/whitespace/Whitespace.php new file mode 100644 index 0000000..3be9689 --- /dev/null +++ b/examples/whitespace/Whitespace.php @@ -0,0 +1,37 @@ + tag }}` and `{{> tag}}` and `{{>tag}}` should all be equivalent. + * + * @extends Mustache + */ +class Whitespace extends Mustache { + public $foo = 'alpha'; + + public $bar = 'beta'; + + public function baz() { + return 'gamma'; + } + + public function qux() { + return array( + array('key with space' => 'A'), + array('key with space' => 'B'), + array('key with space' => 'C'), + array('key with space' => 'D'), + array('key with space' => 'E'), + array('key with space' => 'F'), + array('key with space' => 'G'), + ); + } + + protected $_partials = array( + 'alphabet' => " * {{.}}\n", + ); +} \ No newline at end of file diff --git a/examples/whitespace/whitespace.mustache b/examples/whitespace/whitespace.mustache new file mode 100644 index 0000000..0b3ba00 --- /dev/null +++ b/examples/whitespace/whitespace.mustache @@ -0,0 +1,10 @@ +{{^ inverted section test }} +These are some things: +{{/inverted section test }} +* {{ foo }} +* {{ bar}} +* {{ baz }} +{{# qux }} +* {{ key with space }} +{{/ qux }} +{{#qux}}.{{/qux}} \ No newline at end of file diff --git a/examples/whitespace/whitespace.txt b/examples/whitespace/whitespace.txt new file mode 100644 index 0000000..5226c69 --- /dev/null +++ b/examples/whitespace/whitespace.txt @@ -0,0 +1,12 @@ +These are some things: +* alpha +* beta +* gamma +* A +* B +* C +* D +* E +* F +* G +....... \ No newline at end of file