aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/michelf
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/michelf')
-rw-r--r--vendor/michelf/php-markdown/.github/workflows/ci.yml30
-rw-r--r--vendor/michelf/php-markdown/.scrutinizer.yml2
-rw-r--r--vendor/michelf/php-markdown/.travis.yml18
-rw-r--r--vendor/michelf/php-markdown/License.md2
-rw-r--r--vendor/michelf/php-markdown/Michelf/Markdown.php94
-rw-r--r--vendor/michelf/php-markdown/Michelf/MarkdownExtra.php100
-rw-r--r--vendor/michelf/php-markdown/Michelf/MarkdownInterface.php6
-rw-r--r--vendor/michelf/php-markdown/Readme.md25
-rw-r--r--vendor/michelf/php-markdown/composer.json29
-rw-r--r--vendor/michelf/php-markdown/test/helpers/MarkdownTestHelper.php11
-rw-r--r--vendor/michelf/php-markdown/test/phpstan.neon2
11 files changed, 166 insertions, 153 deletions
diff --git a/vendor/michelf/php-markdown/.github/workflows/ci.yml b/vendor/michelf/php-markdown/.github/workflows/ci.yml
new file mode 100644
index 000000000..4103c86da
--- /dev/null
+++ b/vendor/michelf/php-markdown/.github/workflows/ci.yml
@@ -0,0 +1,30 @@
+name: CI
+on:
+ pull_request: null
+ push:
+ branches:
+ - lib
+jobs:
+ tests:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php:
+ - '7.4'
+ - '8.0'
+ - '8.1'
+ - '8.2'
+
+ name: Linting - PHP ${{ matrix.php }}
+ steps:
+ - uses: actions/checkout@v2
+ - uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ coverage: none
+ extensions: intl
+ - run: composer install --no-progress
+# - run: composer codestyle
+ - run: composer phpstan
+ if: matrix.php == '8.1'
+ - run: composer tests
diff --git a/vendor/michelf/php-markdown/.scrutinizer.yml b/vendor/michelf/php-markdown/.scrutinizer.yml
index b4f5dfb9e..7542096df 100644
--- a/vendor/michelf/php-markdown/.scrutinizer.yml
+++ b/vendor/michelf/php-markdown/.scrutinizer.yml
@@ -1,7 +1,7 @@
build:
environment:
php:
- version: '7.0.20'
+ version: '7.4'
nodes:
analysis:
project_setup:
diff --git a/vendor/michelf/php-markdown/.travis.yml b/vendor/michelf/php-markdown/.travis.yml
index 440045be3..5a2a16a4e 100644
--- a/vendor/michelf/php-markdown/.travis.yml
+++ b/vendor/michelf/php-markdown/.travis.yml
@@ -4,24 +4,10 @@ matrix:
include:
- php: hhvm-3.18
dist: trusty
- - php: 5.3
- dist: precise
- - php: 5.4
- dist: trusty
- - php: 5.5
- dist: trusty
- - php: 5.6
- dist: xenial
- - php: 7.0
- dist: xenial
- - php: 7.1
- dist: bionic
- - php: 7.2
- dist: bionic
- - php: 7.3
- dist: bionic
- php: 7.4
dist: bionic
+ - php: 8.0
+ dist: bionic
install:
- composer install --prefer-dist
diff --git a/vendor/michelf/php-markdown/License.md b/vendor/michelf/php-markdown/License.md
index 25d1e16b6..4a5bddd55 100644
--- a/vendor/michelf/php-markdown/License.md
+++ b/vendor/michelf/php-markdown/License.md
@@ -1,5 +1,5 @@
PHP Markdown Lib
-Copyright (c) 2004-2021 Michel Fortin
+Copyright (c) 2004-2022 Michel Fortin
<https://michelf.ca/>
All rights reserved.
diff --git a/vendor/michelf/php-markdown/Michelf/Markdown.php b/vendor/michelf/php-markdown/Michelf/Markdown.php
index f644080c7..746a2d048 100644
--- a/vendor/michelf/php-markdown/Michelf/Markdown.php
+++ b/vendor/michelf/php-markdown/Michelf/Markdown.php
@@ -4,7 +4,7 @@
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
- * @copyright 2004-2021 Michel Fortin <https://michelf.com/projects/php-markdown/>
+ * @copyright 2004-2022 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
@@ -18,7 +18,7 @@ class Markdown implements MarkdownInterface {
* Define the package version
* @var string
*/
- const MARKDOWNLIB_VERSION = "1.9.1";
+ const MARKDOWNLIB_VERSION = "2.0.0";
/**
* Simple function interface - Initialize the parser and return the result
@@ -29,9 +29,9 @@ class Markdown implements MarkdownInterface {
* @param string $text
* @return string
*/
- public static function defaultTransform($text) {
+ public static function defaultTransform(string $text): string {
// Take parser class on which this function was called.
- $parser_class = \get_called_class();
+ $parser_class = static::class;
// Try to take parser from the static parser list
static $parser_list;
@@ -49,39 +49,34 @@ class Markdown implements MarkdownInterface {
/**
* Configuration variables
*/
-
/**
* Change to ">" for HTML output.
- * @var string
*/
- public $empty_element_suffix = " />";
+ public string $empty_element_suffix = " />";
/**
* The width of indentation of the output markup
- * @var int
*/
- public $tab_width = 4;
+ public int $tab_width = 4;
/**
* Change to `true` to disallow markup or entities.
- * @var boolean
*/
- public $no_markup = false;
- public $no_entities = false;
+ public bool $no_markup = false;
+ public bool $no_entities = false;
/**
* Change to `true` to enable line breaks on \n without two trailling spaces
* @var boolean
*/
- public $hard_wrap = false;
+ public bool $hard_wrap = false;
/**
* Predefined URLs and titles for reference links and images.
- * @var array
*/
- public $predef_urls = array();
- public $predef_titles = array();
+ public array $predef_urls = array();
+ public array $predef_titles = array();
/**
* Optional filter function for URLs
@@ -121,32 +116,27 @@ class Markdown implements MarkdownInterface {
* <li>List item two</li>
* <li>List item three</li>
* </ol>
- *
- * @var bool
*/
- public $enhanced_ordered_list = false;
+ public bool $enhanced_ordered_list = false;
/**
* Parser implementation
*/
-
/**
* Regex to match balanced [brackets].
* Needed to insert a maximum bracked depth while converting to PHP.
- * @var int
*/
- protected $nested_brackets_depth = 6;
- protected $nested_brackets_re;
+ protected int $nested_brackets_depth = 6;
+ protected string $nested_brackets_re;
- protected $nested_url_parenthesis_depth = 4;
- protected $nested_url_parenthesis_re;
+ protected int $nested_url_parenthesis_depth = 4;
+ protected string $nested_url_parenthesis_re;
/**
* Table of hash values for escaped characters:
- * @var string
*/
- protected $escape_chars = '\`*_{}[]()>#+-.!';
- protected $escape_chars_re;
+ protected string $escape_chars = '\`*_{}[]()>#+-.!';
+ protected string $escape_chars_re;
/**
* Constructor function. Initialize appropriate member variables.
@@ -175,23 +165,20 @@ class Markdown implements MarkdownInterface {
/**
* Internal hashes used during transformation.
- * @var array
*/
- protected $urls = array();
- protected $titles = array();
- protected $html_hashes = array();
+ protected array $urls = array();
+ protected array $titles = array();
+ protected array $html_hashes = array();
/**
* Status flag to avoid invalid nesting.
- * @var boolean
*/
- protected $in_anchor = false;
+ protected bool $in_anchor = false;
/**
* Status flag to avoid invalid nesting.
- * @var boolean
*/
- protected $in_emphasis_processing = false;
+ protected bool $in_emphasis_processing = false;
/**
* Called before the transformation process starts to setup parser states.
@@ -226,7 +213,7 @@ class Markdown implements MarkdownInterface {
* @param string $text
* @return string
*/
- public function transform($text) {
+ public function transform(string $text): string {
$this->setup();
# Remove UTF-8 BOM and marker character in input, if present.
@@ -263,9 +250,8 @@ class Markdown implements MarkdownInterface {
/**
* Define the document gamut
- * @var array
*/
- protected $document_gamut = array(
+ protected array $document_gamut = array(
// Strip link definitions, store in hashes.
"stripLinkDefinitions" => 20,
"runBasicBlockGamut" => 30,
@@ -525,9 +511,8 @@ class Markdown implements MarkdownInterface {
/**
* Define the block gamut - these are all the transformations that form
* block-level tags like paragraphs, headers, and list items.
- * @var array
*/
- protected $block_gamut = array(
+ protected array $block_gamut = array(
"doHeaders" => 10,
"doHorizontalRules" => 20,
"doLists" => 40,
@@ -597,9 +582,8 @@ class Markdown implements MarkdownInterface {
/**
* These are all the transformations that occur *within* block-level
* tags like paragraphs, headers, and list items.
- * @var array
*/
- protected $span_gamut = array(
+ protected array $span_gamut = array(
// Process character escapes, code spans, and inline HTML
// in one shot.
"parseSpan" => -30,
@@ -724,7 +708,7 @@ class Markdown implements MarkdownInterface {
/**
* Callback method to parse referenced anchors
- * @param string $matches
+ * @param array $matches
* @return string
*/
protected function _doAnchors_reference_callback($matches) {
@@ -763,7 +747,7 @@ class Markdown implements MarkdownInterface {
/**
* Callback method to parse inline anchors
- * @param string $matches
+ * @param array $matches
* @return string
*/
protected function _doAnchors_inline_callback($matches) {
@@ -781,7 +765,7 @@ class Markdown implements MarkdownInterface {
$url = $this->encodeURLAttribute($url);
$result = "<a href=\"$url\"";
- if (isset($title)) {
+ if ($title) {
$title = $this->encodeAttribute($title);
$result .= " title=\"$title\"";
}
@@ -1105,9 +1089,8 @@ class Markdown implements MarkdownInterface {
/**
* Nesting tracker for list levels
- * @var integer
*/
- protected $list_level = 0;
+ protected int $list_level = 0;
/**
* Process the contents of a single ordered or unordered list, splitting it
@@ -1248,7 +1231,7 @@ class Markdown implements MarkdownInterface {
* Define the emphasis operators with their regex matches
* @var array
*/
- protected $em_relist = array(
+ protected array $em_relist = array(
'' => '(?:(?<!\*)\*(?!\*)|(?<!_)_(?!_))(?![\.,:;]?\s)',
'*' => '(?<![\s*])\*(?!\*)',
'_' => '(?<![\s_])_(?!_)',
@@ -1258,7 +1241,7 @@ class Markdown implements MarkdownInterface {
* Define the strong operators with their regex matches
* @var array
*/
- protected $strong_relist = array(
+ protected array $strong_relist = array(
'' => '(?:(?<!\*)\*\*(?!\*)|(?<!_)__(?!_))(?![\.,:;]?\s)',
'**' => '(?<![\s*])\*\*(?!\*)',
'__' => '(?<![\s_])__(?!_)',
@@ -1268,7 +1251,7 @@ class Markdown implements MarkdownInterface {
* Define the emphasis + strong operators with their regex matches
* @var array
*/
- protected $em_strong_relist = array(
+ protected array $em_strong_relist = array(
'' => '(?:(?<!\*)\*\*\*(?!\*)|(?<!_)___(?!_))(?![\.,:;]?\s)',
'***' => '(?<![\s*])\*\*\*(?!\*)',
'___' => '(?<![\s_])___(?!_)',
@@ -1276,9 +1259,8 @@ class Markdown implements MarkdownInterface {
/**
* Container for prepared regular expressions
- * @var array
*/
- protected $em_strong_prepared_relist;
+ protected ?array $em_strong_prepared_relist = null;
/**
* Prepare regular expressions for searching emphasis tokens in any
@@ -1826,7 +1808,7 @@ class Markdown implements MarkdownInterface {
/**
* String length function for detab. `_initDetab` will create a function to
* handle UTF-8 if the default function does not exist.
- * @var string
+ * can be a string or function
*/
protected $utf8_strlen = 'mb_strlen';
@@ -1883,9 +1865,7 @@ class Markdown implements MarkdownInterface {
return;
}
- $this->utf8_strlen = function($text) {
- return preg_match_all('/[\x00-\xBF]|[\xC0-\xFF][\x80-\xBF]*/', $text, $m);
- };
+ $this->utf8_strlen = fn($text) => preg_match_all('/[\x00-\xBF]|[\xC0-\xFF][\x80-\xBF]*/', $text, $m);
}
/**
diff --git a/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php b/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
index 888f5f28d..e620f9e99 100644
--- a/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
+++ b/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
@@ -4,7 +4,7 @@
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
- * @copyright 2004-2021 Michel Fortin <https://michelf.com/projects/php-markdown/>
+ * @copyright 2004-2022 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
@@ -17,25 +17,21 @@ class MarkdownExtra extends \Michelf\Markdown {
/**
* Configuration variables
*/
-
/**
* Prefix for footnote ids.
- * @var string
*/
- public $fn_id_prefix = "";
+ public string $fn_id_prefix = "";
/**
* Optional title attribute for footnote links.
- * @var string
*/
- public $fn_link_title = "";
+ public string $fn_link_title = "";
/**
* Optional class attribute for footnote links and backlinks.
- * @var string
*/
- public $fn_link_class = "footnote-ref";
- public $fn_backlink_class = "footnote-backref";
+ public string $fn_link_class = "footnote-ref";
+ public string $fn_backlink_class = "footnote-backref";
/**
* Content to be displayed within footnote backlinks. The default is '↩';
@@ -43,59 +39,51 @@ class MarkdownExtra extends \Michelf\Markdown {
* from displaying the arrow character as an emoji.
* Optionally use '^^' and '%%' to refer to the footnote number and
* reference number respectively. {@see parseFootnotePlaceholders()}
- * @var string
*/
- public $fn_backlink_html = '&#8617;&#xFE0E;';
+ public string $fn_backlink_html = '&#8617;&#xFE0E;';
/**
* Optional title and aria-label attributes for footnote backlinks for
* added accessibility (to ensure backlink uniqueness).
* Use '^^' and '%%' to refer to the footnote number and reference number
* respectively. {@see parseFootnotePlaceholders()}
- * @var string
*/
- public $fn_backlink_title = "";
- public $fn_backlink_label = "";
+ public string $fn_backlink_title = "";
+ public string $fn_backlink_label = "";
/**
* Class name for table cell alignment (%% replaced left/center/right)
* For instance: 'go-%%' becomes 'go-left' or 'go-right' or 'go-center'
* If empty, the align attribute is used instead of a class name.
- * @var string
*/
- public $table_align_class_tmpl = '';
+ public string $table_align_class_tmpl = '';
/**
* Optional class prefix for fenced code block.
- * @var string
*/
- public $code_class_prefix = "";
+ public string $code_class_prefix = "";
/**
* Class attribute for code blocks goes on the `code` tag;
* setting this to true will put attributes on the `pre` tag instead.
- * @var boolean
*/
- public $code_attr_on_pre = false;
+ public bool $code_attr_on_pre = false;
/**
* Predefined abbreviations.
- * @var array
*/
- public $predef_abbr = array();
+ public array $predef_abbr = array();
/**
* Only convert atx-style headers if there's a space between the header and #
- * @var boolean
*/
- public $hashtag_protection = false;
+ public bool $hashtag_protection = false;
/**
* Determines whether footnotes should be appended to the end of the document.
* If true, footnote html can be retrieved from $this->footnotes_assembled.
- * @var boolean
*/
- public $omit_footnotes = false;
+ public bool $omit_footnotes = false;
/**
@@ -107,9 +95,8 @@ class MarkdownExtra extends \Michelf\Markdown {
* `section` that will enclose the list of footnotes so they are
* reachable to accessibility tools the same way they would be with the
* default HTML output.
- * @var null|string
*/
- public $footnotes_assembled = null;
+ public ?string $footnotes_assembled = null;
/**
* Parser implementation
@@ -149,27 +136,23 @@ class MarkdownExtra extends \Michelf\Markdown {
/**
* Extra variables used during extra transformations.
- * @var array
*/
- protected $footnotes = array();
- protected $footnotes_ordered = array();
- protected $footnotes_ref_count = array();
- protected $footnotes_numbers = array();
- protected $abbr_desciptions = array();
- /** @var string */
- protected $abbr_word_re = '';
+ protected array $footnotes = array();
+ protected array $footnotes_ordered = array();
+ protected array $footnotes_ref_count = array();
+ protected array $footnotes_numbers = array();
+ protected array $abbr_desciptions = array();
+ protected string $abbr_word_re = '';
/**
* Give the current footnote number.
- * @var integer
*/
- protected $footnote_counter = 1;
+ protected int $footnote_counter = 1;
/**
- * Ref attribute for links
- * @var array
- */
- protected $ref_attr = array();
+ * Ref attribute for links
+ */
+ protected array $ref_attr = array();
/**
* Setting up Extra-specific variables.
@@ -215,18 +198,15 @@ class MarkdownExtra extends \Michelf\Markdown {
/**
* Extra attribute parser
*/
-
/**
* Expression to use to catch attributes (includes the braces)
- * @var string
*/
- protected $id_class_attr_catch_re = '\{((?>[ ]*[#.a-z][-_:a-zA-Z0-9=]+){1,})[ ]*\}';
+ protected string $id_class_attr_catch_re = '\{((?>[ ]*[#.a-z][-_:a-zA-Z0-9=]+){1,})[ ]*\}';
/**
* Expression to use when parsing in a context when no capture is desired
- * @var string
*/
- protected $id_class_attr_nocatch_re = '\{(?>[ ]*[#.a-z][-_:a-zA-Z0-9=]+){1,}[ ]*\}';
+ protected string $id_class_attr_nocatch_re = '\{(?>[ ]*[#.a-z][-_:a-zA-Z0-9=]+){1,}[ ]*\}';
/**
* Parse attributes caught by the $this->id_class_attr_catch_re expression
@@ -340,37 +320,31 @@ class MarkdownExtra extends \Michelf\Markdown {
/**
* HTML block parser
*/
-
/**
* Tags that are always treated as block tags
- * @var string
*/
- protected $block_tags_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|form|fieldset|iframe|hr|legend|article|section|nav|aside|hgroup|header|footer|figcaption|figure|details|summary';
+ protected string $block_tags_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|form|fieldset|iframe|hr|legend|article|section|nav|aside|hgroup|header|footer|figcaption|figure|details|summary';
/**
* Tags treated as block tags only if the opening tag is alone on its line
- * @var string
*/
- protected $context_block_tags_re = 'script|noscript|style|ins|del|iframe|object|source|track|param|math|svg|canvas|audio|video';
+ protected string $context_block_tags_re = 'script|noscript|style|ins|del|iframe|object|source|track|param|math|svg|canvas|audio|video';
/**
* Tags where markdown="1" default to span mode:
- * @var string
*/
- protected $contain_span_tags_re = 'p|h[1-6]|li|dd|dt|td|th|legend|address';
+ protected string $contain_span_tags_re = 'p|h[1-6]|li|dd|dt|td|th|legend|address';
/**
* Tags which must not have their contents modified, no matter where
* they appear
- * @var string
*/
- protected $clean_tags_re = 'script|style|math|svg';
+ protected string $clean_tags_re = 'script|style|math|svg';
/**
* Tags that do not need to be closed.
- * @var string
*/
- protected $auto_close_tags_re = 'hr|img|param|source|track';
+ protected string $auto_close_tags_re = 'hr|img|param|source|track';
/**
* Hashify HTML Blocks and "clean tags".
@@ -627,6 +601,7 @@ class MarkdownExtra extends \Michelf\Markdown {
else {
$parsed .= $tag;
}
+ // @phpstan-ignore-next-line
} while ($depth >= 0);
return array($parsed, $text);
@@ -708,7 +683,7 @@ class MarkdownExtra extends \Michelf\Markdown {
// by the pattern.
$parts = preg_split($tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
- if (count($parts) < 3) {
+ if ($parts === false || count($parts) < 3) {
// End of $text reached with unbalenced tag(s).
// In that case, we return original text unchanged and pass the
// first character as filtered to prevent an infinite loop in the
@@ -1248,6 +1223,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$head = $matches[1];
$underline = $matches[2];
$content = $matches[3];
+ $attr = [];
// Remove any tailing pipes for each line.
$head = preg_replace('/[|] *$/m', '', $head);
@@ -1549,17 +1525,17 @@ class MarkdownExtra extends \Michelf\Markdown {
* work in the middle of a word.
* @var array
*/
- protected $em_relist = array(
+ protected array $em_relist = array(
'' => '(?:(?<!\*)\*(?!\*)|(?<![a-zA-Z0-9_])_(?!_))(?![\.,:;]?\s)',
'*' => '(?<![\s*])\*(?!\*)',
'_' => '(?<![\s_])_(?![a-zA-Z0-9_])',
);
- protected $strong_relist = array(
+ protected array $strong_relist = array(
'' => '(?:(?<!\*)\*\*(?!\*)|(?<![a-zA-Z0-9_])__(?!_))(?![\.,:;]?\s)',
'**' => '(?<![\s*])\*\*(?!\*)',
'__' => '(?<![\s_])__(?![a-zA-Z0-9_])',
);
- protected $em_strong_relist = array(
+ protected array $em_strong_relist = array(
'' => '(?:(?<!\*)\*\*\*(?!\*)|(?<![a-zA-Z0-9_])___(?!_))(?![\.,:;]?\s)',
'***' => '(?<![\s*])\*\*\*(?!\*)',
'___' => '(?<![\s_])___(?![a-zA-Z0-9_])',
diff --git a/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php b/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php
index 32069dff2..84e654590 100644
--- a/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php
+++ b/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php
@@ -4,7 +4,7 @@
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
- * @copyright 2004-2021 Michel Fortin <https://michelf.com/projects/php-markdown/>
+ * @copyright 2004-2022 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
@@ -23,7 +23,7 @@ interface MarkdownInterface {
* @param string $text
* @return string
*/
- public static function defaultTransform($text);
+ public static function defaultTransform(string $text): string;
/**
* Main function. Performs some preprocessing on the input text
@@ -34,5 +34,5 @@ interface MarkdownInterface {
* @param string $text
* @return string
*/
- public function transform($text);
+ public function transform(string $text): string;
}
diff --git a/vendor/michelf/php-markdown/Readme.md b/vendor/michelf/php-markdown/Readme.md
index 1a0ee06eb..b9f273ac6 100644
--- a/vendor/michelf/php-markdown/Readme.md
+++ b/vendor/michelf/php-markdown/Readme.md
@@ -1,7 +1,7 @@
PHP Markdown
============
-PHP Markdown Lib 1.9.1 - 23 Nov 2021
+![ci.yml](https://github.com/michelf/php-markdown/actions/workflows/ci.yml/badge.svg)
by Michel Fortin
<https://michelf.ca/>
@@ -34,15 +34,14 @@ program by John Gruber.
Requirement
-----------
-This library package requires PHP 5.3 or later.
+This library package requires PHP 7.4 or later.
Note: The older plugin/library hybrid package for PHP Markdown and
PHP Markdown Extra is no longer maintained but will work with PHP 4.0.5 and
later.
-Before PHP 5.3.7, pcre.backtrack_limit defaults to 100 000, which is too small
-in many situations. You might need to set it to higher values. Later PHP
-releases defaults to 1 000 000, which is usually fine.
+You might need to set pcre.backtrack_limit higher than 1 000 000
+(the default), though the default is usually fine.
Usage
@@ -183,6 +182,20 @@ PHP Markdown, please visit [michelf.ca/donate].
Version History
---------------
+PHP Markdown Lib 2.0.0 (26 Sep 2022)
+
+* Now requiring PHP version 7.4 or later.
+
+* Added type annotations to configuration properties of the parser.
+ (Thanks to Tac Tacelosky.)
+
+* Fixing a TypeError in PHP 8 caused by invalid counter variable.
+ (Thanks to Alexey Kopytko.)
+
+* Composer package now excludes development files.
+ (Thanks to Cédric Anne.)
+
+
PHP Markdown Lib 1.9.1 (23 Nov 2021)
* Now treating `<details>` and `<summary>` as block level so they don't
@@ -410,7 +423,7 @@ Copyright and License
---------------------
PHP Markdown Lib
-Copyright (c) 2004-2021 Michel Fortin
+Copyright (c) 2004-2022 Michel Fortin
<https://michelf.ca/>
All rights reserved.
diff --git a/vendor/michelf/php-markdown/composer.json b/vendor/michelf/php-markdown/composer.json
index 093507554..7cb59cf85 100644
--- a/vendor/michelf/php-markdown/composer.json
+++ b/vendor/michelf/php-markdown/composer.json
@@ -18,12 +18,37 @@
}
],
"require": {
- "php": ">=5.3.0"
+ "php": ">=7.4"
},
"autoload": {
"psr-4": { "Michelf\\": "Michelf/" }
},
"require-dev": {
- "phpunit/phpunit": ">=4.3 <5.8"
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "phpunit/phpunit": "^9.5",
+ "phpstan/phpstan": ">=1.0",
+ "phpstan/phpstan-phpunit": ">=1.0"
+ },
+
+ "scripts": {
+ "tests": "vendor/bin/phpunit test/",
+ "phpstan": [
+ "vendor/bin/phpstan analyse Michelf/ --level=5",
+ "vendor/bin/phpstan analyse -c test/phpstan.neon test/ --level=5"
+ ],
+ "codestyle": "vendor/bin/php-cs-fixer fix Michelf --dry-run --verbose --show-progress=none",
+ "codestyle-fix": "vendor/bin/php-cs-fixer fix Michelf"
+ },
+
+ "archive": {
+ "exclude": [
+ "/.github/",
+ "/test/",
+ "/.editorconfig",
+ "/.gitignore",
+ "/.scrutinizer.yml",
+ "/.travis.yml",
+ "/phpunit.xml.dist"
+ ]
}
}
diff --git a/vendor/michelf/php-markdown/test/helpers/MarkdownTestHelper.php b/vendor/michelf/php-markdown/test/helpers/MarkdownTestHelper.php
index ffca0c969..fc746366c 100644
--- a/vendor/michelf/php-markdown/test/helpers/MarkdownTestHelper.php
+++ b/vendor/michelf/php-markdown/test/helpers/MarkdownTestHelper.php
@@ -22,7 +22,6 @@ class MarkdownTestHelper
$dataValues = array();
- /** @var SplFileInfo $inputFile */
foreach ($regexIterator as $inputFiles) {
foreach ($inputFiles as $inputMarkdownPath) {
$xhtml = true;
@@ -163,6 +162,7 @@ class MarkdownTestHelper
foreach ($node_list as $node) {
switch ($node->nodeType) {
case XML_ELEMENT_NODE:
+ /** @var DOMElement $node */
static::normalizeElementContent($node, $whitespace_preserve);
static::normalizeElementAttributes($node);
@@ -207,6 +207,7 @@ class MarkdownTestHelper
break;
case XML_TEXT_NODE:
+ /** @var DOMText $node */
if (!$whitespace_preserve) {
if (trim($node->data) === "") {
$node->data = $whitespace;
@@ -222,8 +223,8 @@ class MarkdownTestHelper
($whitespace === "\n\n" || $whitespace === "\n")) {
if ($element->firstChild) {
if ($element->firstChild->nodeType == XML_TEXT_NODE) {
- $element->firstChild->data =
- preg_replace('{^\s+}', "\n", $element->firstChild->data);
+ $element->firstChild->data = // @phpstan-ignore-line
+ preg_replace('{^\s+}', "\n", $element->firstChild->data ?? '');
}
else {
$element->insertBefore(new DOMText("\n"), $element->firstChild);
@@ -231,8 +232,8 @@ class MarkdownTestHelper
}
if ($element->lastChild) {
if ($element->lastChild->nodeType == XML_TEXT_NODE) {
- $element->lastChild->data =
- preg_replace('{\s+$}', "\n", $element->lastChild->data);
+ $element->lastChild->data = // @phpstan-ignore-line
+ preg_replace('{\s+$}', "\n", $element->lastChild->data ?? '');
}
else {
$element->insertBefore(new DOMText("\n"), null);
diff --git a/vendor/michelf/php-markdown/test/phpstan.neon b/vendor/michelf/php-markdown/test/phpstan.neon
new file mode 100644
index 000000000..e385cc80d
--- /dev/null
+++ b/vendor/michelf/php-markdown/test/phpstan.neon
@@ -0,0 +1,2 @@
+includes:
+ - ../vendor/phpstan/phpstan-phpunit/extension.neon