mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-05 17:37:50 +00:00
Update docdown to avoid escaping characters in code snippets. [ci skip]
This commit is contained in:
68
vendor/docdown/src/DocDown/MarkdownGenerator.php
vendored
68
vendor/docdown/src/DocDown/MarkdownGenerator.php
vendored
@@ -27,7 +27,6 @@ class MarkdownGenerator {
|
||||
/**
|
||||
* The HTML for the open tag.
|
||||
*
|
||||
* @static
|
||||
* @memberOf MarkdownGenerator
|
||||
* @type string
|
||||
*/
|
||||
@@ -49,6 +48,15 @@ class MarkdownGenerator {
|
||||
*/
|
||||
public $source = '';
|
||||
|
||||
/**
|
||||
* The array of code snippets that are tokenized by `escape`.
|
||||
*
|
||||
* @private
|
||||
* @memberOf MarkdownGenerator
|
||||
* @type Array
|
||||
*/
|
||||
private $snippets = array();
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
@@ -132,21 +140,6 @@ class MarkdownGenerator {
|
||||
return trim($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Escapes special Markdown characters.
|
||||
*
|
||||
* @private
|
||||
* @memberOf Entry
|
||||
* @param {string} $string The string to escape.
|
||||
* @returns {string} Returns the escaped string.
|
||||
*/
|
||||
private function escape( $string ) {
|
||||
$string = preg_replace('/(?<!\\\)\*/', '*', $string);
|
||||
$string = preg_replace('/(?<!\\\)\[/', '[', $string);
|
||||
$string = preg_replace('/(?<!\\\)\]/', ']', $string);
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify a string by replacing named tokens with matching assoc. array values.
|
||||
*
|
||||
@@ -252,6 +245,23 @@ class MarkdownGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Escapes special Markdown characters.
|
||||
*
|
||||
* @private
|
||||
* @memberOf Entry
|
||||
* @param {string} $string The string to escape.
|
||||
* @returns {string} Returns the escaped string.
|
||||
*/
|
||||
private function escape( $string ) {
|
||||
$string = preg_replace_callback('/`.*?\`/', array($this, 'swapSnippetsToTokens'), $string);
|
||||
$string = preg_replace('/(?<!\\\)\*/', '*', $string);
|
||||
$string = preg_replace('/(?<!\\\)\[/', '[', $string);
|
||||
$string = preg_replace('/(?<!\\\)\]/', ']', $string);
|
||||
$string = preg_replace_callback('/@@token@@/', array($this, 'swapTokensToSnippets'), $string);
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves the entry's hash used to navigate the documentation.
|
||||
*
|
||||
@@ -298,6 +308,32 @@ class MarkdownGenerator {
|
||||
return $entry->isPlugin() ? '.prototype.' : '.';
|
||||
}
|
||||
|
||||
/**
|
||||
* Swaps code snippets with tokens as a `preg_replace_callback` callback
|
||||
* used by `escape`.
|
||||
*
|
||||
* @private
|
||||
* @memberOf Entry
|
||||
* @param {Array} $matches The array of regexp matches.
|
||||
* @returns {string} Returns the token.
|
||||
*/
|
||||
private function swapSnippetsToTokens( $matches ) {
|
||||
$this->snippets[] = $matches[0];
|
||||
return '@@token@@';
|
||||
}
|
||||
|
||||
/**
|
||||
* Swaps tokens with code snippets as a `preg_replace_callback` callback
|
||||
* used by `escape`.
|
||||
*
|
||||
* @private
|
||||
* @memberOf Entry
|
||||
* @returns {string} Returns the code snippet.
|
||||
*/
|
||||
private function swapTokensToSnippets() {
|
||||
return array_shift($this->snippets);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user