Plugin Directory

Changeset 1331352


Ignore:
Timestamp:
01/19/2016 02:47:42 PM (10 years ago)
Author:
cadeyrn
Message:

releasing v0.5

Location:
wp-parsedown
Files:
14 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wp-parsedown/tags/0.5/lib/parsedown-extra/ParsedownExtra.php

    r1153658 r1331352  
    504504
    505505        # because we don't want for markup to get encoded
    506         $DOMDocument->documentElement->nodeValue = 'placeholder';
     506        $DOMDocument->documentElement->nodeValue = 'placeholder\x1A';
    507507
    508508        $markup = $DOMDocument->saveHTML($DOMDocument->documentElement);
    509         $markup = str_replace('placeholder', $elementText, $markup);
     509        $markup = str_replace('placeholder\x1A', $elementText, $markup);
    510510
    511511        return $markup;
  • wp-parsedown/tags/0.5/lib/parsedown-extra/README.md

    r1153658 r1331352  
     1> You might also like [Caret](http://caret.io?ref=parsedown) - our Markdown editor for the Desktop.
     2
    13## Parsedown Extra
    24
  • wp-parsedown/tags/0.5/lib/parsedown/Parsedown.php

    r1153658 r1331352  
    1818    # ~
    1919
    20     const version = '1.5.3';
     20    const version = '1.6.0';
    2121
    2222    # ~
     
    108108    # ~
    109109
    110     protected $DefinitionTypes = array(
    111         '[' => array('Reference'),
    112     );
    113 
    114     # ~
    115 
    116110    protected $unmarkedBlockTypes = array(
    117111        'Code',
     
    170164            # ~
    171165
    172             if (isset($CurrentBlock['incomplete']))
     166            if (isset($CurrentBlock['continuable']))
    173167            {
    174168                $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock);
     
    186180                        $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock);
    187181                    }
    188 
    189                     unset($CurrentBlock['incomplete']);
    190182                }
    191183            }
     
    227219                    if (method_exists($this, 'block'.$blockType.'Continue'))
    228220                    {
    229                         $Block['incomplete'] = true;
     221                        $Block['continuable'] = true;
    230222                    }
    231223
     
    254246        # ~
    255247
    256         if (isset($CurrentBlock['incomplete']) and method_exists($this, 'block'.$CurrentBlock['type'].'Complete'))
     248        if (isset($CurrentBlock['continuable']) and method_exists($this, 'block'.$CurrentBlock['type'].'Complete'))
    257249        {
    258250            $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock);
     
    395387    protected function blockFencedCode($Line)
    396388    {
    397         if (preg_match('/^(['.$Line['text'][0].']{3,})[ ]*([\w-]+)?[ ]*$/', $Line['text'], $matches))
     389        if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([\w-]+)?[ ]*$/', $Line['text'], $matches))
    398390        {
    399391            $Element = array(
     
    402394            );
    403395
    404             if (isset($matches[2]))
    405             {
    406                 $class = 'language-'.$matches[2];
     396            if (isset($matches[1]))
     397            {
     398                $class = 'language-'.$matches[1];
    407399
    408400                $Element['attributes'] = array(
     
    674666        if (preg_match('/^<(\w*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches))
    675667        {
    676             if (in_array($matches[1], $this->textLevelElements))
     668            $element = strtolower($matches[1]);
     669
     670            if (in_array($element, $this->textLevelElements))
    677671            {
    678672                return;
     
    988982        $markup = '';
    989983
    990         $unexaminedText = $text;
    991 
    992         $markerPosition = 0;
    993 
    994         while ($excerpt = strpbrk($unexaminedText, $this->inlineMarkerList))
     984        # $excerpt is based on the first occurrence of a marker
     985
     986        while ($excerpt = strpbrk($text, $this->inlineMarkerList))
    995987        {
    996988            $marker = $excerpt[0];
    997989
    998             $markerPosition += strpos($unexaminedText, $marker);
     990            $markerPosition = strpos($text, $marker);
    999991
    1000992            $Excerpt = array('text' => $excerpt, 'context' => $text);
     
    10091001                }
    10101002
    1011                 if (isset($Inline['position']) and $Inline['position'] > $markerPosition) # position is ahead of marker
     1003                # makes sure that the inline belongs to "our" marker
     1004
     1005                if (isset($Inline['position']) and $Inline['position'] > $markerPosition)
    10121006                {
    10131007                    continue;
    10141008                }
    10151009
     1010                # sets a default inline position
     1011
    10161012                if ( ! isset($Inline['position']))
    10171013                {
     
    10191015                }
    10201016
     1017                # the text that comes before the inline
    10211018                $unmarkedText = substr($text, 0, $Inline['position']);
    10221019
     1020                # compile the unmarked text
    10231021                $markup .= $this->unmarkedText($unmarkedText);
    10241022
     1023                # compile the inline
    10251024                $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']);
    10261025
     1026                # remove the examined text
    10271027                $text = substr($text, $Inline['position'] + $Inline['extent']);
    10281028
    1029                 $unexaminedText = $text;
    1030 
    1031                 $markerPosition = 0;
    1032 
    10331029                continue 2;
    10341030            }
    10351031
    1036             $unexaminedText = substr($excerpt, 1);
    1037 
    1038             $markerPosition ++;
     1032            # the marker does not belong to an inline
     1033
     1034            $unmarkedText = substr($text, 0, $markerPosition + 1);
     1035
     1036            $markup .= $this->unmarkedText($unmarkedText);
     1037
     1038            $text = substr($text, $markerPosition + 1);
    10391039        }
    10401040
     
    14771477        }
    14781478
    1479         $instance = new self();
     1479        $instance = new static();
    14801480
    14811481        self::$instances[$name] = $instance;
  • wp-parsedown/tags/0.5/lib/parsedown/README.md

    r1153658 r1331352  
    66Better Markdown Parser in PHP
    77
    8 [See Demo](http://parsedown.org/demo)
     8[Demo](http://parsedown.org/demo) |
     9[Benchmarks](http://parsedown.org/speed) |
     10[Tests](http://parsedown.org/tests/) |
     11[Documentation](https://github.com/erusev/parsedown/wiki/)
    912
    1013### Features
    1114
    12 * [Fast](http://parsedown.org/speed)
    13 * [Consistent](http://parsedown.org/consistency)
     15* Super Fast
    1416* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown)
    15 * [Tested](http://parsedown.org/tests/) in PHP 5.3, 5.4, 5.5, 5.6 and [HHVM](http://www.hhvm.com/)
    16 * [Extensible](https://github.com/erusev/parsedown/wiki/Writing-Extensions)
     17* Extensible
     18* Tested in 5.3 to 5.6
    1719* [Markdown Extra extension](https://github.com/erusev/parsedown-extra)
    1820
     
    2931```
    3032
    31 More examples in [the wiki](https://github.com/erusev/parsedown/wiki/Usage) and in [this video tutorial](http://youtu.be/wYZBY8DEikI).
     33More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI).
    3234
    3335### Questions
     
    4951**How can I help?**
    5052
    51 Use it, star it, share it and if you feel generous, [donate some money](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2).
     53Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2).
     54
     55---
     56
     57You might also like [Caret](http://caret.io) - our Markdown editor for the desktop.
  • wp-parsedown/tags/0.5/lib/parsedown/test/ParsedownTest.php

    r1153662 r1331352  
    137137        $this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
    138138    }
     139
     140    public function testLateStaticBinding()
     141    {
     142        include 'test/TestParsedown.php';
     143
     144        $parsedown = Parsedown::instance();
     145        $this->assertInstanceOf('Parsedown', $parsedown);
     146
     147        // After instance is already called on Parsedown
     148        // subsequent calls with the same arguments return the same instance
     149        $sameParsedown = TestParsedown::instance();
     150        $this->assertInstanceOf('Parsedown', $sameParsedown);
     151        $this->assertSame($parsedown, $sameParsedown);
     152
     153        $testParsedown = TestParsedown::instance('test late static binding');
     154        $this->assertInstanceOf('TestParsedown', $testParsedown);
     155
     156        $sameInstanceAgain = TestParsedown::instance('test late static binding');
     157        $this->assertSame($testParsedown, $sameInstanceAgain);
     158    }
    139159}
  • wp-parsedown/tags/0.5/readme.txt

    r1153662 r1331352  
    44Tags: markdown, editor, parsedown
    55Requires at least: 3.0
    6 Tested up to: 4.2.1
    7 Stable tag: 0.4
     6Tested up to: 4.4.1
     7Stable tag: 0.5
    88License: GPLv3
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    2222
    2323== Changelog ==
     24
     25= 0.4 =
     26*2016-01-19*
     27
     28* updated Pardedown to 1.6.0 and Extra to 0.7.1
     29
    2430
    2531= 0.3 =
  • wp-parsedown/tags/0.5/wp-parsedown.php

    r1153662 r1331352  
    44Plugin URI: https://github.com/petermolnar/wp-parsedown
    55Description: [Parsedown Extra](www.parsedown.org/demo?extra=1) on-the-fly
    6 Version: 0.4
     6Version: 0.5
    77Author: Peter Molnar <[email protected]>
    88Author URI: https://petermolnar.eu/
  • wp-parsedown/trunk/lib/parsedown-extra/ParsedownExtra.php

    r1153658 r1331352  
    504504
    505505        # because we don't want for markup to get encoded
    506         $DOMDocument->documentElement->nodeValue = 'placeholder';
     506        $DOMDocument->documentElement->nodeValue = 'placeholder\x1A';
    507507
    508508        $markup = $DOMDocument->saveHTML($DOMDocument->documentElement);
    509         $markup = str_replace('placeholder', $elementText, $markup);
     509        $markup = str_replace('placeholder\x1A', $elementText, $markup);
    510510
    511511        return $markup;
  • wp-parsedown/trunk/lib/parsedown-extra/README.md

    r1153658 r1331352  
     1> You might also like [Caret](http://caret.io?ref=parsedown) - our Markdown editor for the Desktop.
     2
    13## Parsedown Extra
    24
  • wp-parsedown/trunk/lib/parsedown/Parsedown.php

    r1153658 r1331352  
    1818    # ~
    1919
    20     const version = '1.5.3';
     20    const version = '1.6.0';
    2121
    2222    # ~
     
    108108    # ~
    109109
    110     protected $DefinitionTypes = array(
    111         '[' => array('Reference'),
    112     );
    113 
    114     # ~
    115 
    116110    protected $unmarkedBlockTypes = array(
    117111        'Code',
     
    170164            # ~
    171165
    172             if (isset($CurrentBlock['incomplete']))
     166            if (isset($CurrentBlock['continuable']))
    173167            {
    174168                $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock);
     
    186180                        $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock);
    187181                    }
    188 
    189                     unset($CurrentBlock['incomplete']);
    190182                }
    191183            }
     
    227219                    if (method_exists($this, 'block'.$blockType.'Continue'))
    228220                    {
    229                         $Block['incomplete'] = true;
     221                        $Block['continuable'] = true;
    230222                    }
    231223
     
    254246        # ~
    255247
    256         if (isset($CurrentBlock['incomplete']) and method_exists($this, 'block'.$CurrentBlock['type'].'Complete'))
     248        if (isset($CurrentBlock['continuable']) and method_exists($this, 'block'.$CurrentBlock['type'].'Complete'))
    257249        {
    258250            $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock);
     
    395387    protected function blockFencedCode($Line)
    396388    {
    397         if (preg_match('/^(['.$Line['text'][0].']{3,})[ ]*([\w-]+)?[ ]*$/', $Line['text'], $matches))
     389        if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([\w-]+)?[ ]*$/', $Line['text'], $matches))
    398390        {
    399391            $Element = array(
     
    402394            );
    403395
    404             if (isset($matches[2]))
    405             {
    406                 $class = 'language-'.$matches[2];
     396            if (isset($matches[1]))
     397            {
     398                $class = 'language-'.$matches[1];
    407399
    408400                $Element['attributes'] = array(
     
    674666        if (preg_match('/^<(\w*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches))
    675667        {
    676             if (in_array($matches[1], $this->textLevelElements))
     668            $element = strtolower($matches[1]);
     669
     670            if (in_array($element, $this->textLevelElements))
    677671            {
    678672                return;
     
    988982        $markup = '';
    989983
    990         $unexaminedText = $text;
    991 
    992         $markerPosition = 0;
    993 
    994         while ($excerpt = strpbrk($unexaminedText, $this->inlineMarkerList))
     984        # $excerpt is based on the first occurrence of a marker
     985
     986        while ($excerpt = strpbrk($text, $this->inlineMarkerList))
    995987        {
    996988            $marker = $excerpt[0];
    997989
    998             $markerPosition += strpos($unexaminedText, $marker);
     990            $markerPosition = strpos($text, $marker);
    999991
    1000992            $Excerpt = array('text' => $excerpt, 'context' => $text);
     
    10091001                }
    10101002
    1011                 if (isset($Inline['position']) and $Inline['position'] > $markerPosition) # position is ahead of marker
     1003                # makes sure that the inline belongs to "our" marker
     1004
     1005                if (isset($Inline['position']) and $Inline['position'] > $markerPosition)
    10121006                {
    10131007                    continue;
    10141008                }
    10151009
     1010                # sets a default inline position
     1011
    10161012                if ( ! isset($Inline['position']))
    10171013                {
     
    10191015                }
    10201016
     1017                # the text that comes before the inline
    10211018                $unmarkedText = substr($text, 0, $Inline['position']);
    10221019
     1020                # compile the unmarked text
    10231021                $markup .= $this->unmarkedText($unmarkedText);
    10241022
     1023                # compile the inline
    10251024                $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']);
    10261025
     1026                # remove the examined text
    10271027                $text = substr($text, $Inline['position'] + $Inline['extent']);
    10281028
    1029                 $unexaminedText = $text;
    1030 
    1031                 $markerPosition = 0;
    1032 
    10331029                continue 2;
    10341030            }
    10351031
    1036             $unexaminedText = substr($excerpt, 1);
    1037 
    1038             $markerPosition ++;
     1032            # the marker does not belong to an inline
     1033
     1034            $unmarkedText = substr($text, 0, $markerPosition + 1);
     1035
     1036            $markup .= $this->unmarkedText($unmarkedText);
     1037
     1038            $text = substr($text, $markerPosition + 1);
    10391039        }
    10401040
     
    14771477        }
    14781478
    1479         $instance = new self();
     1479        $instance = new static();
    14801480
    14811481        self::$instances[$name] = $instance;
  • wp-parsedown/trunk/lib/parsedown/README.md

    r1153658 r1331352  
    66Better Markdown Parser in PHP
    77
    8 [See Demo](http://parsedown.org/demo)
     8[Demo](http://parsedown.org/demo) |
     9[Benchmarks](http://parsedown.org/speed) |
     10[Tests](http://parsedown.org/tests/) |
     11[Documentation](https://github.com/erusev/parsedown/wiki/)
    912
    1013### Features
    1114
    12 * [Fast](http://parsedown.org/speed)
    13 * [Consistent](http://parsedown.org/consistency)
     15* Super Fast
    1416* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown)
    15 * [Tested](http://parsedown.org/tests/) in PHP 5.3, 5.4, 5.5, 5.6 and [HHVM](http://www.hhvm.com/)
    16 * [Extensible](https://github.com/erusev/parsedown/wiki/Writing-Extensions)
     17* Extensible
     18* Tested in 5.3 to 5.6
    1719* [Markdown Extra extension](https://github.com/erusev/parsedown-extra)
    1820
     
    2931```
    3032
    31 More examples in [the wiki](https://github.com/erusev/parsedown/wiki/Usage) and in [this video tutorial](http://youtu.be/wYZBY8DEikI).
     33More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI).
    3234
    3335### Questions
     
    4951**How can I help?**
    5052
    51 Use it, star it, share it and if you feel generous, [donate some money](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2).
     53Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2).
     54
     55---
     56
     57You might also like [Caret](http://caret.io) - our Markdown editor for the desktop.
  • wp-parsedown/trunk/lib/parsedown/test/ParsedownTest.php

    r1153662 r1331352  
    137137        $this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
    138138    }
     139
     140    public function testLateStaticBinding()
     141    {
     142        include 'test/TestParsedown.php';
     143
     144        $parsedown = Parsedown::instance();
     145        $this->assertInstanceOf('Parsedown', $parsedown);
     146
     147        // After instance is already called on Parsedown
     148        // subsequent calls with the same arguments return the same instance
     149        $sameParsedown = TestParsedown::instance();
     150        $this->assertInstanceOf('Parsedown', $sameParsedown);
     151        $this->assertSame($parsedown, $sameParsedown);
     152
     153        $testParsedown = TestParsedown::instance('test late static binding');
     154        $this->assertInstanceOf('TestParsedown', $testParsedown);
     155
     156        $sameInstanceAgain = TestParsedown::instance('test late static binding');
     157        $this->assertSame($testParsedown, $sameInstanceAgain);
     158    }
    139159}
  • wp-parsedown/trunk/readme.txt

    r1153662 r1331352  
    44Tags: markdown, editor, parsedown
    55Requires at least: 3.0
    6 Tested up to: 4.2.1
    7 Stable tag: 0.4
     6Tested up to: 4.4.1
     7Stable tag: 0.5
    88License: GPLv3
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    2222
    2323== Changelog ==
     24
     25= 0.4 =
     26*2016-01-19*
     27
     28* updated Pardedown to 1.6.0 and Extra to 0.7.1
     29
    2430
    2531= 0.3 =
  • wp-parsedown/trunk/wp-parsedown.php

    r1153662 r1331352  
    44Plugin URI: https://github.com/petermolnar/wp-parsedown
    55Description: [Parsedown Extra](www.parsedown.org/demo?extra=1) on-the-fly
    6 Version: 0.4
     6Version: 0.5
    77Author: Peter Molnar <[email protected]>
    88Author URI: https://petermolnar.eu/
Note: See TracChangeset for help on using the changeset viewer.