mirror of
https://github.com/WordPress/wordpress.org.git
synced 2025-08-17 14:51:19 +08:00
Pinking shears, 10000
git-svn-id: https://meta.svn.wordpress.org/sites/trunk@10000 74240141-8908-4e6f-9713-ba540dce6ec7
This commit is contained in:
parent
3ebe01bb16
commit
b998dc0004
52 changed files with 194 additions and 194 deletions
|
@ -279,7 +279,7 @@ function browsehappy_parse_user_agent( $user_agent ) {
|
|||
'7.0' => '11.0',
|
||||
);
|
||||
$ver = $tokens['Trident'];
|
||||
$data['version'] = $trident_ie_mapping[ $ver ] ?? $ver;
|
||||
$data['version'] = $trident_ie_mapping[ $ver ] ?? $ver;
|
||||
}
|
||||
// Internet Explorer (pre v8.0)
|
||||
elseif ( ! empty( $tokens['MSIE'] ) ) {
|
||||
|
|
|
@ -27,7 +27,7 @@ class Trac {
|
|||
|
||||
/**
|
||||
* Update a Trac ticket to add a comment, or alter ticket properties.
|
||||
*
|
||||
*
|
||||
* To set the Author or Time of a comment, the Trac API user must have TICKET_ADMIN priv.
|
||||
*/
|
||||
function update( $id, $comment, $attr = [], $notify = false, $author = false, $when = false ) {
|
||||
|
@ -95,7 +95,7 @@ class Trac {
|
|||
'max_redirects' => 0,
|
||||
'timeout' => 5,
|
||||
'ignore_errors' => true,
|
||||
'header' =>
|
||||
'header' =>
|
||||
[
|
||||
'Content-Type: application/json',
|
||||
'Authorization: Basic ' . base64_encode( $this->credentials[0] . ':' . $this->credentials[1] ),
|
||||
|
@ -128,7 +128,7 @@ class Trac {
|
|||
|
||||
/**
|
||||
* Call the Back-channel WordPress Trac API.
|
||||
*
|
||||
*
|
||||
* For valid $methods to call, see: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/trac-notifications/trac-notifications-db.php
|
||||
*/
|
||||
public function wpapi( $method, $args = null ) {
|
||||
|
|
|
@ -190,7 +190,7 @@ function get_jwt_app_token() {
|
|||
|
||||
/**
|
||||
* Fetch an App Authorization token for accessing Github Resources.
|
||||
*
|
||||
*
|
||||
* This assumes that the Github App will only ever be installed on the @WordPress organization.
|
||||
*/
|
||||
function get_app_install_token() {
|
||||
|
@ -229,7 +229,7 @@ function get_app_install_token() {
|
|||
|
||||
/**
|
||||
* Use some rough heuristics to find the Trac ticket for a given PR.
|
||||
*
|
||||
*
|
||||
* TODO: This should probably support multiple Trac Tickets, but once you start to use the final few regexes it can start to match Gutenberg references.
|
||||
*/
|
||||
function determine_trac_ticket( $pr ) {
|
||||
|
@ -289,9 +289,9 @@ function get_trac_instance( $trac ) {
|
|||
|
||||
/**
|
||||
* Formats a PR description for usage on Trac.
|
||||
*
|
||||
*
|
||||
* This strips out HTML comments and standard boilerplate text.
|
||||
*
|
||||
*
|
||||
* @param object $pr_data PR Data.
|
||||
* @return string Stripped down PR Description
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php defined( 'ABSPATH' ) or die(); ?>
|
||||
<!DOCTYPE html>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<!--[if lt IE 7 ]> <html <?php language_attributes(); ?> class="no-js ie6"> <![endif]-->
|
||||
<!--[if IE 7 ]> <html <?php language_attributes(); ?> class="no-js ie7"> <![endif]-->
|
||||
|
|
|
@ -22,9 +22,9 @@ get_header(); ?>
|
|||
|
||||
<?php while ( have_posts() ) : the_post(); ?>
|
||||
|
||||
<?php if ( get_the_content() ) :
|
||||
<?php if ( get_the_content() ) :
|
||||
get_template_part( 'content', 'page' );
|
||||
|
||||
|
||||
else: ?>
|
||||
<h2><?php esc_html_e( 'Under construction', 'bporg-developer' ); ?></h2>
|
||||
<?php endif; ?>
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
echo '<div class="inner">';
|
||||
echo '<h5>' . esc_html( $userdata->display_name ) . '</h5>';
|
||||
echo '<p>' . esc_html( $count ) . ' document';
|
||||
if ( $count > 1 )
|
||||
if ( $count > 1 )
|
||||
echo 's';
|
||||
echo '</p>';
|
||||
echo '</div>';
|
||||
|
|
|
@ -415,7 +415,7 @@ if ( class_exists( 'WPOrg_SSO' ) && ! class_exists( 'WP_WPOrg_SSO' ) ) {
|
|||
$valid_remote_hash = false;
|
||||
$user = get_user_by( 'id', $user_id );
|
||||
if ( $user ) {
|
||||
$valid_remote_hash = hash_equals(
|
||||
$valid_remote_hash = hash_equals(
|
||||
$this->_generate_remote_login_hash( $user, $valid_until, $remember_me ),
|
||||
$sso_hash
|
||||
);
|
||||
|
|
|
@ -113,7 +113,7 @@ class Jobs_Dot_WP_Captcha {
|
|||
|
||||
$verify = array(
|
||||
'secret' => self::get_secret_key(),
|
||||
'remoteip' => $_SERVER['REMOTE_ADDR'],
|
||||
'remoteip' => $_SERVER['REMOTE_ADDR'],
|
||||
'response' => $_POST['g-recaptcha-response'],
|
||||
);
|
||||
|
||||
|
@ -136,7 +136,7 @@ class Jobs_Dot_WP_Captcha {
|
|||
/**
|
||||
* Amends notice on job verfication page to point out the captcha.
|
||||
*
|
||||
* @param string $type The type of notice being displayed.
|
||||
* @param string $type The type of notice being displayed.
|
||||
*/
|
||||
public static function add_notice( $type ) {
|
||||
if ( 'verify' == $type ) {
|
||||
|
|
|
@ -13,7 +13,7 @@ Licensed under GPL and MIT
|
|||
/* =============================================================================
|
||||
Base 966px Grid
|
||||
========================================================================== */
|
||||
|
||||
|
||||
body {min-width: 996px;}
|
||||
|
||||
/* Container */
|
||||
|
@ -233,7 +233,7 @@ Licensed under GPL and MIT
|
|||
/* =============================================================================
|
||||
Less than 768px
|
||||
========================================================================== */
|
||||
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
|
||||
body{min-width:0;}
|
||||
|
@ -286,9 +286,9 @@ Licensed under GPL and MIT
|
|||
}
|
||||
|
||||
.container .push_1, .container .push_2,
|
||||
.container .push_3, .container .push_4,
|
||||
.container .push_3, .container .push_4,
|
||||
.container .push_5, .container .push_6,
|
||||
.container .push_7, .container .push_8,
|
||||
.container .push_7, .container .push_8,
|
||||
.container .push_9, .container .push_10,
|
||||
.container .push_11 {
|
||||
left: 0;
|
||||
|
|
|
@ -373,54 +373,54 @@ src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADLoAA4AA
|
|||
content:'\f237';
|
||||
}
|
||||
|
||||
.dashicons-share1:before {
|
||||
.dashicons-share1:before {
|
||||
content:'\f237';
|
||||
}
|
||||
|
||||
.dashicons-share2:before {
|
||||
.dashicons-share2:before {
|
||||
content:'\f240';
|
||||
}
|
||||
|
||||
.dashicons-share3:before {
|
||||
.dashicons-share3:before {
|
||||
content:'\f242';
|
||||
}
|
||||
|
||||
.dashicons-twitter1:before {
|
||||
.dashicons-twitter1:before {
|
||||
content:'\f301';
|
||||
}
|
||||
|
||||
.dashicons-twitter2:before {
|
||||
.dashicons-twitter2:before {
|
||||
content:'\f302';
|
||||
}
|
||||
|
||||
.dashicons-rss:before {
|
||||
.dashicons-rss:before {
|
||||
content:'\f303';
|
||||
}
|
||||
|
||||
.dashicons-facebook1:before {
|
||||
.dashicons-facebook1:before {
|
||||
content:'\f304';
|
||||
}
|
||||
|
||||
.dashicons-facebook2:before {
|
||||
.dashicons-facebook2:before {
|
||||
content:'\f305';
|
||||
}
|
||||
|
||||
|
||||
/* Jobs Icons */
|
||||
|
||||
.dashicons-jobs-developers:before {
|
||||
.dashicons-jobs-developers:before {
|
||||
content:'\f308';
|
||||
}
|
||||
|
||||
.dashicons-jobs-designers:before {
|
||||
.dashicons-jobs-designers:before {
|
||||
content:'\f309';
|
||||
}
|
||||
|
||||
.dashicons-jobs-migration:before {
|
||||
.dashicons-jobs-migration:before {
|
||||
content:'\f310';
|
||||
}
|
||||
|
||||
.dashicons-jobs-performance:before {
|
||||
.dashicons-jobs-performance:before {
|
||||
content:'\f311';
|
||||
}
|
||||
|
||||
|
@ -487,7 +487,7 @@ src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADLoAA4AA
|
|||
content:'\f231';
|
||||
}
|
||||
|
||||
.dashicons-camera2:before {
|
||||
.dashicons-camera2:before {
|
||||
content:'\f306';
|
||||
}
|
||||
|
||||
|
@ -547,11 +547,11 @@ src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADLoAA4AA
|
|||
content:'\f185';
|
||||
}
|
||||
|
||||
.dashicons-bargraph2:before {
|
||||
.dashicons-bargraph2:before {
|
||||
content:'\f238';
|
||||
}
|
||||
|
||||
.dashicons-bargraph3:before {
|
||||
.dashicons-bargraph3:before {
|
||||
content:'\f239';
|
||||
}
|
||||
|
||||
|
@ -559,34 +559,34 @@ src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADLoAA4AA
|
|||
content:'\f226';
|
||||
}
|
||||
|
||||
.dashicons-groups:before {
|
||||
.dashicons-groups:before {
|
||||
content:'\f307';
|
||||
}
|
||||
|
||||
.dashicons-products:before {
|
||||
.dashicons-products:before {
|
||||
content:'\f312';
|
||||
}
|
||||
|
||||
.dashicons-awards:before {
|
||||
.dashicons-awards:before {
|
||||
content:'\f313';
|
||||
}
|
||||
|
||||
.dashicons-forms:before {
|
||||
.dashicons-forms:before {
|
||||
content:'\f314';
|
||||
}
|
||||
|
||||
.dashicons-lock:before {
|
||||
.dashicons-lock:before {
|
||||
content:'\f315';
|
||||
}
|
||||
|
||||
.dashicons-arrow-down:before {
|
||||
.dashicons-arrow-down:before {
|
||||
content:'\f316';
|
||||
}
|
||||
|
||||
.dashicons-arrow-up:before {
|
||||
.dashicons-arrow-up:before {
|
||||
content:'\f317';
|
||||
}
|
||||
|
||||
.dashicons-directory:before {
|
||||
.dashicons-directory:before {
|
||||
content:'\f318';
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ add_action( 'wp_enqueue_scripts', 'jobswp_scripts' );
|
|||
|
||||
/**
|
||||
* Outputs `noindex,follow` robots tag for appropriate pages.
|
||||
*
|
||||
*
|
||||
* Currently output for:
|
||||
* - empty job category archives
|
||||
* - search results
|
||||
|
|
|
@ -13,7 +13,7 @@ html * {
|
|||
color: #333;
|
||||
}
|
||||
#bodyContent h2, #bodyContent h3, #bodyContent h4, #bodyContent h5, #bodyContent h6 {
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
border-bottom: 1px solid #dadada;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
@ -190,7 +190,7 @@ td.diff-ntitle { background:#ffffff; }
|
|||
td.diff-addedline,
|
||||
td.diff-deletedline,
|
||||
td.diff-context {
|
||||
white-space: pre-wrap;
|
||||
white-space: pre-wrap;
|
||||
font-size: smaller;
|
||||
}
|
||||
td.diff-addedline { background:#ccffcc; }
|
||||
|
@ -210,13 +210,13 @@ border-top: 1px solid #ddd;
|
|||
}
|
||||
|
||||
#bodyContent #Copyedit {
|
||||
border: solid 1px transparent;
|
||||
border: solid 1px transparent;
|
||||
-moz-border-radius: 3px;
|
||||
-khtml-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
background-color: #eef;
|
||||
text-align: center;
|
||||
padding: 1em 1em 1px 1em;
|
||||
background-color: #eef;
|
||||
text-align: center;
|
||||
padding: 1em 1em 1px 1em;
|
||||
margin: 1em 0;
|
||||
|
||||
}
|
||||
|
|
|
@ -271,7 +271,7 @@ label[for=comment] { float: right }
|
|||
|
||||
#propertyform {
|
||||
clear: both;
|
||||
margin-bottom: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
#propertyform table.trac-properties {
|
||||
border-spacing: 0;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Grunt needs to be run after changes are made to compile wp4-rtl.css */
|
||||
/* Grunt needs to be run after changes are made to compile wp4-rtl.css */
|
||||
|
||||
/* The Reset ---------------------------------- */
|
||||
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Grunt needs to be run after changes are made to compile wp4-rtl.css */
|
||||
/* Grunt needs to be run after changes are made to compile wp4-rtl.css */
|
||||
|
||||
/* The Reset ---------------------------------- */
|
||||
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,
|
||||
|
|
|
@ -33,7 +33,7 @@ add_action( 'login_init', function() {
|
|||
/**
|
||||
* Detect invalid query parameters being passed in Core query fields.
|
||||
* Generally causes WP_Query to throw a PHP Warning.
|
||||
*
|
||||
*
|
||||
* @see https://core.trac.wordpress.org/ticket/17737
|
||||
*/
|
||||
add_action( 'send_headers', function( $wp ) {
|
||||
|
@ -50,7 +50,7 @@ add_action( 'send_headers', function( $wp ) {
|
|||
|
||||
/**
|
||||
* Detect invalid parameters being passed to the Jetpack Subscription widget.
|
||||
*
|
||||
*
|
||||
* @see https://github.com/Automattic/jetpack/pull/15638
|
||||
*/
|
||||
add_action( 'template_redirect', function() {
|
||||
|
@ -98,7 +98,7 @@ add_action( 'xmlrpc_call', function() {
|
|||
|
||||
/**
|
||||
* Die with a 400 Bad Request.
|
||||
*
|
||||
*
|
||||
* @param string $reference A unique identifying string to make it easier to read logs.
|
||||
*/
|
||||
function die_bad_request( $reference = '' ) {
|
||||
|
|
|
@ -84,7 +84,7 @@ function wporg_is_handbook( $handbook = '' ) {
|
|||
*/
|
||||
function wporg_is_handbook_landing_page() {
|
||||
return $GLOBALS['wp_query']->is_handbook_root;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the current (or specified) post_type a handbook post type?
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
/*
|
||||
* An official WordPress event
|
||||
*
|
||||
*
|
||||
* This doesn't have any real functionality, but it exists to provide a standard data structure
|
||||
* for events across various event types. It mostly matches the schema for the `wporg_events`
|
||||
* database table.
|
||||
|
|
|
@ -1398,7 +1398,7 @@ class Plugin_Directory {
|
|||
|
||||
/**
|
||||
* Skip outdated plugins in Jetpack Sitemaps.
|
||||
*
|
||||
*
|
||||
* @param bool $skip If this post should be excluded from Sitemaps.
|
||||
* @param object $plugin_db_row A row from the wp_posts table.
|
||||
* @return bool
|
||||
|
|
|
@ -595,7 +595,7 @@ class Tools {
|
|||
|
||||
/**
|
||||
* Add an Audit Internal Note for a plugin.
|
||||
*
|
||||
*
|
||||
* @param int|string|WP_Post $plugin A Post ID, Plugin Slug or, WP_Post object.
|
||||
* @param string $note The note to audit log entry to add.
|
||||
* @param WP_User $user The user which performed the action. Optional.
|
||||
|
|
|
@ -266,7 +266,7 @@ class Block_Plugin_Checker {
|
|||
$this->results[] = (object) array(
|
||||
'check_name' => $check_name,
|
||||
'type' => $type,
|
||||
'message' => $message,
|
||||
'message' => $message,
|
||||
'data' => $data );
|
||||
}
|
||||
|
||||
|
@ -330,9 +330,9 @@ class Block_Plugin_Checker {
|
|||
if ( $this->slug && $this->slug === $post->post_name )
|
||||
continue; // It's this very same plugin
|
||||
|
||||
$this->record_result( __FUNCTION__,
|
||||
'info',
|
||||
sprintf( __( 'Block name already exists in plugin %s', 'wporg-plugins' ), $query->posts[0]->post_name ),
|
||||
$this->record_result( __FUNCTION__,
|
||||
'info',
|
||||
sprintf( __( 'Block name already exists in plugin %s', 'wporg-plugins' ), $query->posts[0]->post_name ),
|
||||
[ 'block_name' => $block->name, 'slug' => $post->post_name ]
|
||||
);
|
||||
}
|
||||
|
@ -471,7 +471,7 @@ class Block_Plugin_Checker {
|
|||
*/
|
||||
function check_block_json_is_valid() {
|
||||
foreach ( $this->block_json_validation as $block_json_file => $result ) {
|
||||
if ( true === $result ) {
|
||||
if ( true === $result ) {
|
||||
$this->record_result( __FUNCTION__,
|
||||
'info',
|
||||
sprintf( __( '%s is valid.', 'wporg-plugins' ), $this->relative_filename( $block_json_file ) ),
|
||||
|
@ -489,7 +489,7 @@ class Block_Plugin_Checker {
|
|||
$this->record_result( __FUNCTION__,
|
||||
( 'error' === $code ? 'warning' : $code ), // TODO: be smarter about mapping these
|
||||
$message,
|
||||
array(
|
||||
array(
|
||||
$this->relative_filename( $block_json_file ),
|
||||
$result->get_error_data( $code )
|
||||
)
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# Markdown - A text-to-HTML conversion tool for web writers
|
||||
#
|
||||
# PHP Markdown
|
||||
# Copyright (c) 2004-2015 Michel Fortin
|
||||
# PHP Markdown
|
||||
# Copyright (c) 2004-2015 Michel Fortin
|
||||
# <https://michelf.ca/projects/php-markdown/>
|
||||
#
|
||||
# Original Markdown
|
||||
# Copyright (c) 2004-2006 John Gruber
|
||||
# Original Markdown
|
||||
# Copyright (c) 2004-2006 John Gruber
|
||||
# <https://daringfireball.net/projects/markdown/>
|
||||
#
|
||||
namespace Michelf;
|
||||
|
@ -73,7 +73,7 @@ class Markdown implements MarkdownInterface {
|
|||
# number that is defined first. For example:
|
||||
# 2. List item two
|
||||
# 3. List item three
|
||||
#
|
||||
#
|
||||
# becomes
|
||||
# <ol start="2">
|
||||
# <li>List item two</li>
|
||||
|
@ -103,11 +103,11 @@ class Markdown implements MarkdownInterface {
|
|||
$this->_initDetab();
|
||||
$this->prepareItalicsAndBold();
|
||||
|
||||
$this->nested_brackets_re =
|
||||
$this->nested_brackets_re =
|
||||
str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth).
|
||||
str_repeat('\])*', $this->nested_brackets_depth);
|
||||
|
||||
$this->nested_url_parenthesis_re =
|
||||
$this->nested_url_parenthesis_re =
|
||||
str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth).
|
||||
str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth);
|
||||
|
||||
|
@ -131,7 +131,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function setup() {
|
||||
#
|
||||
# Called before the transformation process starts to setup parser
|
||||
# Called before the transformation process starts to setup parser
|
||||
# states.
|
||||
#
|
||||
# Clear global hashes.
|
||||
|
@ -144,7 +144,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function teardown() {
|
||||
#
|
||||
# Called after the transformation process to clear any variable
|
||||
# Called after the transformation process to clear any variable
|
||||
# which may be taking up memory unnecessarly.
|
||||
#
|
||||
$this->urls = array();
|
||||
|
@ -256,8 +256,8 @@ class Markdown implements MarkdownInterface {
|
|||
# hard-coded:
|
||||
#
|
||||
# * List "a" is made of tags which can be both inline or block-level.
|
||||
# These will be treated block-level when the start tag is alone on
|
||||
# its line, otherwise they're not matched here and will be taken as
|
||||
# These will be treated block-level when the start tag is alone on
|
||||
# its line, otherwise they're not matched here and will be taken as
|
||||
# inline later.
|
||||
# * List "b" is made of tags which are always block-level;
|
||||
#
|
||||
|
@ -324,7 +324,7 @@ class Markdown implements MarkdownInterface {
|
|||
)
|
||||
( # save in $1
|
||||
|
||||
# Match from `\n<tag>` to `</tag>\n`, handling nested tags
|
||||
# Match from `\n<tag>` to `</tag>\n`, handling nested tags
|
||||
# in between.
|
||||
|
||||
[ ]{0,'.$less_than_tab.'}
|
||||
|
@ -345,7 +345,7 @@ class Markdown implements MarkdownInterface {
|
|||
[ ]* # trailing spaces/tabs
|
||||
(?=\n+|\Z) # followed by a newline or end of document
|
||||
|
||||
| # Special case just for <hr />. It was easier to make a special
|
||||
| # Special case just for <hr />. It was easier to make a special
|
||||
# case than to make the other regex more complicated.
|
||||
|
||||
[ ]{0,'.$less_than_tab.'}
|
||||
|
@ -391,7 +391,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function hashPart($text, $boundary = 'X') {
|
||||
#
|
||||
# Called whenever a tag must be hashed when a function insert an atomic
|
||||
# Called whenever a tag must be hashed when a function insert an atomic
|
||||
# element in the text stream. Passing $text to through this function gives
|
||||
# a unique text-token which will be reverted back when calling unhash.
|
||||
#
|
||||
|
@ -437,10 +437,10 @@ class Markdown implements MarkdownInterface {
|
|||
#
|
||||
# Run block gamut tranformations.
|
||||
#
|
||||
# We need to escape raw HTML in Markdown source before doing anything
|
||||
# else. This need to be done for each block, and not only at the
|
||||
# We need to escape raw HTML in Markdown source before doing anything
|
||||
# else. This need to be done for each block, and not only at the
|
||||
# begining in the Markdown function since hashed blocks can be part of
|
||||
# list items and could have been indented. Indented blocks would have
|
||||
# list items and could have been indented. Indented blocks would have
|
||||
# been seen as a code block in a previous pass of hashHTMLBlocks.
|
||||
$text = $this->hashHTMLBlocks($text);
|
||||
|
||||
|
@ -449,7 +449,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function runBasicBlockGamut($text) {
|
||||
#
|
||||
# Run block gamut tranformations, without hashing HTML blocks. This is
|
||||
# Run block gamut tranformations, without hashing HTML blocks. This is
|
||||
# useful when HTML blocks are known to be already hashed, like in the first
|
||||
# whole-document pass.
|
||||
#
|
||||
|
@ -477,7 +477,7 @@ class Markdown implements MarkdownInterface {
|
|||
[ ]* # Tailing spaces
|
||||
$ # End of line.
|
||||
}mx',
|
||||
"\n".$this->hashBlock("<hr$this->empty_element_suffix")."\n",
|
||||
"\n".$this->hashBlock("<hr$this->empty_element_suffix")."\n",
|
||||
$text);
|
||||
}
|
||||
|
||||
|
@ -520,7 +520,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function doHardBreaks($text) {
|
||||
# Do hard breaks:
|
||||
return preg_replace_callback('/ {2,}\n/',
|
||||
return preg_replace_callback('/ {2,}\n/',
|
||||
array($this, '_doHardBreaks_callback'), $text);
|
||||
}
|
||||
protected function _doHardBreaks_callback($matches) {
|
||||
|
@ -680,7 +680,7 @@ class Markdown implements MarkdownInterface {
|
|||
\]
|
||||
|
||||
)
|
||||
}xs',
|
||||
}xs',
|
||||
array($this, '_doImages_reference_callback'), $text);
|
||||
|
||||
#
|
||||
|
@ -765,7 +765,7 @@ class Markdown implements MarkdownInterface {
|
|||
# Setext-style headers:
|
||||
# Header 1
|
||||
# ========
|
||||
#
|
||||
#
|
||||
# Header 2
|
||||
# --------
|
||||
#
|
||||
|
@ -987,7 +987,7 @@ class Markdown implements MarkdownInterface {
|
|||
$marker_space = $matches[3];
|
||||
$tailing_blank_line =& $matches[5];
|
||||
|
||||
if ($leading_line || $tailing_blank_line ||
|
||||
if ($leading_line || $tailing_blank_line ||
|
||||
preg_match('/\n{2,}/', $item))
|
||||
{
|
||||
# Replace marker with the appropriate whitespace indentation
|
||||
|
@ -1104,7 +1104,7 @@ class Markdown implements MarkdownInterface {
|
|||
$token_re = $this->em_strong_prepared_relist["$em$strong"];
|
||||
|
||||
#
|
||||
# Each loop iteration search for the next emphasis token.
|
||||
# Each loop iteration search for the next emphasis token.
|
||||
# Each token is then passed to handleSpanToken.
|
||||
#
|
||||
$parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
@ -1160,7 +1160,7 @@ class Markdown implements MarkdownInterface {
|
|||
$$tag = ''; # $$tag stands for $em or $strong
|
||||
}
|
||||
} else {
|
||||
# Reached opening three-char emphasis marker. Push on token
|
||||
# Reached opening three-char emphasis marker. Push on token
|
||||
# stack; will be handled by the special condition above.
|
||||
$em = $token{0};
|
||||
$strong = "$em$em";
|
||||
|
@ -1234,9 +1234,9 @@ class Markdown implements MarkdownInterface {
|
|||
$bq = $this->runBlockGamut($bq); # recurse
|
||||
|
||||
$bq = preg_replace('/^/m', " ", $bq);
|
||||
# These leading spaces cause problem with <pre> content,
|
||||
# These leading spaces cause problem with <pre> content,
|
||||
# so we need to fix that:
|
||||
$bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx',
|
||||
$bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx',
|
||||
array($this, '_doBlockQuotes_callback2'), $bq);
|
||||
|
||||
return "\n". $this->hashBlock("<blockquote>\n$bq\n</blockquote>")."\n\n";
|
||||
|
@ -1358,7 +1358,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function encodeAmpsAndAngles($text) {
|
||||
#
|
||||
# Smart processing for ampersands and angle brackets that need to
|
||||
# Smart processing for ampersands and angle brackets that need to
|
||||
# be encoded. Valid character entities are left alone unless the
|
||||
# no-entities mode is set.
|
||||
#
|
||||
|
@ -1367,7 +1367,7 @@ class Markdown implements MarkdownInterface {
|
|||
} else {
|
||||
# Ampersand-encoding based entirely on Nat Irons's Amputator
|
||||
# MT plugin: <http://bumppo.net/projects/amputator/>
|
||||
$text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/',
|
||||
$text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/',
|
||||
'&', $text);
|
||||
}
|
||||
# Encode remaining <'s
|
||||
|
@ -1497,8 +1497,8 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
while (1) {
|
||||
#
|
||||
# Each loop iteration seach for either the next tag, the next
|
||||
# openning code span marker, or the next escaped character.
|
||||
# Each loop iteration seach for either the next tag, the next
|
||||
# openning code span marker, or the next escaped character.
|
||||
# Each token is then passed to handleSpanToken.
|
||||
#
|
||||
$parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
@ -1524,7 +1524,7 @@ class Markdown implements MarkdownInterface {
|
|||
|
||||
protected function handleSpanToken($token, &$str) {
|
||||
#
|
||||
# Handle $token provided by parseSpan by determining its nature and
|
||||
# Handle $token provided by parseSpan by determining its nature and
|
||||
# returning the corresponding value that should replace it.
|
||||
#
|
||||
switch ($token{0}) {
|
||||
|
@ -1532,7 +1532,7 @@ class Markdown implements MarkdownInterface {
|
|||
return $this->hashPart("&#". ord($token{1}). ";");
|
||||
case "`":
|
||||
# Search for end marker in remaining text.
|
||||
if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm',
|
||||
if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm',
|
||||
$str, $matches))
|
||||
{
|
||||
$str = $matches[2];
|
||||
|
@ -1554,7 +1554,7 @@ class Markdown implements MarkdownInterface {
|
|||
}
|
||||
|
||||
|
||||
# String length function for detab. `_initDetab` will create a function to
|
||||
# String length function for detab. `_initDetab` will create a function to
|
||||
# hanlde UTF-8 if the default function does not exist.
|
||||
protected $utf8_strlen = 'mb_strlen';
|
||||
|
||||
|
@ -1563,7 +1563,7 @@ class Markdown implements MarkdownInterface {
|
|||
# Replace tabs with the appropriate amount of space.
|
||||
#
|
||||
# For each line we separate the line in blocks delemited by
|
||||
# tab characters. Then we reconstruct every line by adding the
|
||||
# tab characters. Then we reconstruct every line by adding the
|
||||
# appropriate number of space between each blocks.
|
||||
|
||||
$text = preg_replace_callback('/^.*\t.*$/m',
|
||||
|
@ -1582,7 +1582,7 @@ class Markdown implements MarkdownInterface {
|
|||
unset($blocks[0]); # Do not add first block twice.
|
||||
foreach ($blocks as $block) {
|
||||
# Calculate amount of space, insert spaces, insert block.
|
||||
$amount = $this->tab_width -
|
||||
$amount = $this->tab_width -
|
||||
$strlen($line, 'UTF-8') % $this->tab_width;
|
||||
$line .= str_repeat(" ", $amount) . $block;
|
||||
}
|
||||
|
@ -1591,13 +1591,13 @@ class Markdown implements MarkdownInterface {
|
|||
protected function _initDetab() {
|
||||
#
|
||||
# Check for the availability of the function in the `utf8_strlen` property
|
||||
# (initially `mb_strlen`). If the function is not available, create a
|
||||
# (initially `mb_strlen`). If the function is not available, create a
|
||||
# function that will loosely count the number of UTF-8 characters with a
|
||||
# regular expression.
|
||||
#
|
||||
if (function_exists($this->utf8_strlen)) return;
|
||||
$this->utf8_strlen = create_function('$text', 'return preg_match_all(
|
||||
"/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/",
|
||||
"/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/",
|
||||
$text, $m);');
|
||||
}
|
||||
|
||||
|
@ -1606,7 +1606,7 @@ class Markdown implements MarkdownInterface {
|
|||
#
|
||||
# Swap back in all the tags hashed by _HashHTMLBlocks.
|
||||
#
|
||||
return preg_replace_callback('/(.)\x1A[0-9]+\1/',
|
||||
return preg_replace_callback('/(.)\x1A[0-9]+\1/',
|
||||
array($this, '_unhash_callback'), $text);
|
||||
}
|
||||
protected function _unhash_callback($matches) {
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
# Markdown Extra - A text-to-HTML conversion tool for web writers
|
||||
#
|
||||
# PHP Markdown Extra
|
||||
# Copyright (c) 2004-2015 Michel Fortin
|
||||
# Copyright (c) 2004-2015 Michel Fortin
|
||||
# <https://michelf.ca/projects/php-markdown/>
|
||||
#
|
||||
# Original Markdown
|
||||
# Copyright (c) 2004-2006 John Gruber
|
||||
# Copyright (c) 2004-2006 John Gruber
|
||||
# <https://daringfireball.net/projects/markdown/>
|
||||
#
|
||||
namespace Michelf;
|
||||
|
@ -57,11 +57,11 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# Constructor function. Initialize the parser object.
|
||||
#
|
||||
# Add extra escapable characters before parent constructor
|
||||
# Add extra escapable characters before parent constructor
|
||||
# initialize the table.
|
||||
$this->escape_chars .= ':|';
|
||||
|
||||
# Insert extra document, block, and span transformations.
|
||||
# Insert extra document, block, and span transformations.
|
||||
# Parent constructor will do the sorting.
|
||||
$this->document_gamut += array(
|
||||
"doFencedCodeBlocks" => 5,
|
||||
|
@ -236,14 +236,14 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
|
||||
# Tags that are always treated as block tags:
|
||||
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';
|
||||
|
||||
|
||||
# Tags treated as block tags only if the opening tag is alone on its line:
|
||||
protected $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:
|
||||
protected $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
|
||||
# Tags which must not have their contents modified, no matter where
|
||||
# they appear:
|
||||
protected $clean_tags_re = 'script|style|math|svg';
|
||||
|
||||
|
@ -262,7 +262,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
# hard-coded.
|
||||
#
|
||||
# This works by calling _HashHTMLBlocks_InMarkdown, which then calls
|
||||
# _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1"
|
||||
# _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1"
|
||||
# attribute is found within a tag, _HashHTMLBlocks_InHTML calls back
|
||||
# _HashHTMLBlocks_InMarkdown to handle the Markdown syntax within the tag.
|
||||
# These two functions are calling each other. It's recursive!
|
||||
|
@ -282,8 +282,8 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# Parse markdown text, calling _HashHTMLBlocks_InHTML for block tags.
|
||||
#
|
||||
# * $indent is the number of space to be ignored when checking for code
|
||||
# blocks. This is important because if we don't take the indent into
|
||||
# * $indent is the number of space to be ignored when checking for code
|
||||
# blocks. This is important because if we don't take the indent into
|
||||
# account, something like this (which looks right) won't work as expected:
|
||||
#
|
||||
# <div>
|
||||
|
@ -295,11 +295,11 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
# If you don't like this, just don't indent the tag on which
|
||||
# you apply the markdown="1" attribute.
|
||||
#
|
||||
# * If $enclosing_tag_re is not empty, stops at the first unmatched closing
|
||||
# * If $enclosing_tag_re is not empty, stops at the first unmatched closing
|
||||
# tag with that name. Nested tags supported.
|
||||
#
|
||||
# * If $span is true, text inside must treated as span. So any double
|
||||
# newline will be replaced by a single newline so that it does not create
|
||||
# * If $span is true, text inside must treated as span. So any double
|
||||
# newline will be replaced by a single newline so that it does not create
|
||||
# paragraphs.
|
||||
#
|
||||
# Returns an array of that form: ( processed text , remaining text )
|
||||
|
@ -308,7 +308,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
|
||||
# Regex to check for the presense of newlines around a block tag.
|
||||
$newline_before_re = '/(?:^\n?|\n\n)*$/';
|
||||
$newline_after_re =
|
||||
$newline_after_re =
|
||||
'{
|
||||
^ # Start of text following the tag.
|
||||
(?>[ ]*<!--.*?-->)? # Optional comment.
|
||||
|
@ -381,13 +381,13 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# Split the text using the first $tag_match pattern found.
|
||||
# Text before pattern will be first in the array, text after
|
||||
# pattern will be at the end, and between will be any catches made
|
||||
# pattern will be at the end, and between will be any catches made
|
||||
# by the pattern.
|
||||
#
|
||||
$parts = preg_split($block_tag_re, $text, 2,
|
||||
$parts = preg_split($block_tag_re, $text, 2,
|
||||
PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
# If in Markdown span mode, add a empty-string span-level hash
|
||||
# If in Markdown span mode, add a empty-string span-level hash
|
||||
# after each newline to prevent triggering any block element.
|
||||
if ($span) {
|
||||
$void = $this->hashPart("", ':');
|
||||
|
@ -417,7 +417,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
$fence_indent = strlen($capture[1]); # use captured indent in re
|
||||
$fence_re = $capture[2]; # use captured fence in re
|
||||
if (preg_match('{^(?>.*\n)*?[ ]{'.($fence_indent).'}'.$fence_re.'[ ]*(?:\n|$)}', $text,
|
||||
$matches))
|
||||
$matches))
|
||||
{
|
||||
# End marker found: pass text unchanged until marker.
|
||||
$parsed .= $tag . $matches[0];
|
||||
|
@ -432,7 +432,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
# Check for: Indented code block.
|
||||
#
|
||||
else if ($tag{0} == "\n" || $tag{0} == " ") {
|
||||
# Indented code block: pass it unchanged, will be handled
|
||||
# Indented code block: pass it unchanged, will be handled
|
||||
# later.
|
||||
$parsed .= $tag;
|
||||
}
|
||||
|
@ -457,7 +457,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
}
|
||||
#
|
||||
# Check for: Opening Block level tag or
|
||||
# Opening Context Block tag (like ins and del)
|
||||
# Opening Context Block tag (like ins and del)
|
||||
# used as a block tag (tag is alone on it's line).
|
||||
#
|
||||
else if (preg_match('{^<(?:'.$this->block_tags_re.')\b}', $tag) ||
|
||||
|
@ -467,7 +467,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
)
|
||||
{
|
||||
# Need to parse tag and following text using the HTML parser.
|
||||
list($block_text, $text) =
|
||||
list($block_text, $text) =
|
||||
$this->_hashHTMLBlocks_inHTML($tag . $text, "hashBlock", true);
|
||||
|
||||
# Make sure it stays outside of any paragraph by adding newlines.
|
||||
|
@ -482,7 +482,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
{
|
||||
# Need to parse tag and following text using the HTML parser.
|
||||
# (don't check for markdown attribute)
|
||||
list($block_text, $text) =
|
||||
list($block_text, $text) =
|
||||
$this->_hashHTMLBlocks_inHTML($tag . $text, "hashClean", false);
|
||||
|
||||
$parsed .= $block_text;
|
||||
|
@ -590,7 +590,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# Split the text using the first $tag_match pattern found.
|
||||
# Text before pattern will be first in the array, text after
|
||||
# pattern will be at the end, and between will be any catches made
|
||||
# pattern will be at the end, and between will be any catches made
|
||||
# by the pattern.
|
||||
#
|
||||
$parts = preg_split($tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
@ -599,7 +599,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# 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
|
||||
# first character as filtered to prevent an infinite loop in the
|
||||
# parent function.
|
||||
#
|
||||
return array($original_text{0}, substr($original_text, 1));
|
||||
|
@ -632,7 +632,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# Check for `markdown="1"` attribute and handle it.
|
||||
#
|
||||
if ($md_attr &&
|
||||
if ($md_attr &&
|
||||
preg_match($markdown_attr_re, $tag, $attr_m) &&
|
||||
preg_match('/^1|block|span$/', $attr_m[2] . $attr_m[3]))
|
||||
{
|
||||
|
@ -663,12 +663,12 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
|
||||
# Parse the content using the HTML-in-Markdown parser.
|
||||
list ($block_text, $text)
|
||||
= $this->_hashHTMLBlocks_inMarkdown($text, $indent,
|
||||
= $this->_hashHTMLBlocks_inMarkdown($text, $indent,
|
||||
$tag_name_re, $span_mode);
|
||||
|
||||
# Outdent markdown text.
|
||||
if ($indent > 0) {
|
||||
$block_text = preg_replace("/^[ ]{1,$indent}/m", "",
|
||||
$block_text = preg_replace("/^[ ]{1,$indent}/m", "",
|
||||
$block_text);
|
||||
}
|
||||
|
||||
|
@ -696,7 +696,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
protected function hashClean($text) {
|
||||
#
|
||||
# Called whenever a tag must be hashed when a function inserts a "clean" tag
|
||||
# in $text, it passes through this function and is automaticaly escaped,
|
||||
# in $text, it passes through this function and is automaticaly escaped,
|
||||
# blocking invalid nested overlap.
|
||||
#
|
||||
return $this->hashPart($text, 'C');
|
||||
|
@ -860,7 +860,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
\]
|
||||
|
||||
)
|
||||
}xs',
|
||||
}xs',
|
||||
array($this, '_doImages_reference_callback'), $text);
|
||||
|
||||
#
|
||||
|
@ -953,7 +953,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
# Setext-style headers:
|
||||
# Header 1 {#header1}
|
||||
# ========
|
||||
#
|
||||
#
|
||||
# Header 2 {#header2 .class1 .class2}
|
||||
# --------
|
||||
#
|
||||
|
@ -1110,7 +1110,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
$attr[$n] = '';
|
||||
}
|
||||
|
||||
# Parsing span elements, including code spans, character escapes,
|
||||
# Parsing span elements, including code spans, character escapes,
|
||||
# and inline HTML tags, so that pipes inside those gets ignored.
|
||||
$head = $this->parseSpan($head);
|
||||
$headers = preg_split('/ *[|] */', $head);
|
||||
|
@ -1131,7 +1131,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
|
||||
$text .= "<tbody>\n";
|
||||
foreach ($rows as $row) {
|
||||
# Parsing span elements, including code spans, character escapes,
|
||||
# Parsing span elements, including code spans, character escapes,
|
||||
# and inline HTML tags, so that pipes inside those gets ignored.
|
||||
$row = $this->parseSpan($row);
|
||||
|
||||
|
@ -1224,7 +1224,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
# mark (colon) or more whitespace.
|
||||
(?> \S.* \n)+? # actual term (not whitespace).
|
||||
)
|
||||
(?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed
|
||||
(?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed
|
||||
# with a definition mark.
|
||||
}xm',
|
||||
array($this, '_processDefListItems_callback_dt'), $list_str);
|
||||
|
@ -1346,7 +1346,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
return "\n\n".$this->hashBlock($codeblock)."\n\n";
|
||||
}
|
||||
protected function _doFencedCodeBlocks_newlines($matches) {
|
||||
return str_repeat("<br$this->empty_element_suffix",
|
||||
return str_repeat("<br$this->empty_element_suffix",
|
||||
strlen($matches[0]));
|
||||
}
|
||||
|
||||
|
@ -1398,7 +1398,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
$grafs[$key] = $value;
|
||||
}
|
||||
|
||||
# Join grafs in one text, then unhash HTML tags.
|
||||
# Join grafs in one text, then unhash HTML tags.
|
||||
$text = implode("\n\n", $grafs);
|
||||
|
||||
# Finish by removing any tag hashes still present in $text.
|
||||
|
@ -1426,9 +1426,9 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
(?:
|
||||
.+ # actual text
|
||||
|
|
||||
\n # newlines but
|
||||
\n # newlines but
|
||||
(?!\[.+?\][ ]?:\s)# negative lookahead for footnote or link definition marker.
|
||||
(?!\n+[ ]{0,3}\S)# ensure line is not blank and followed
|
||||
(?!\n+[ ]{0,3}\S)# ensure line is not blank and followed
|
||||
# by non-indented content
|
||||
)*
|
||||
)
|
||||
|
@ -1446,7 +1446,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
|
||||
protected function doFootnotes($text) {
|
||||
#
|
||||
# Replace footnote references in $text [^id] with a special text-token
|
||||
# Replace footnote references in $text [^id] with a special text-token
|
||||
# which will be replaced by the actual footnote marker in appendFootnotes.
|
||||
#
|
||||
if (!$this->in_anchor) {
|
||||
|
@ -1460,7 +1460,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
#
|
||||
# Append footnote list to text.
|
||||
#
|
||||
$text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
|
||||
$text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
|
||||
array($this, '_appendFootnotes_callback'), $text);
|
||||
|
||||
if (!empty($this->footnotes_ordered)) {
|
||||
|
@ -1493,7 +1493,7 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
|
||||
$footnote .= "\n"; # Need to append newline before parsing.
|
||||
$footnote = $this->runBlockGamut("$footnote\n");
|
||||
$footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
|
||||
$footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
|
||||
array($this, '_appendFootnotes_callback'), $footnote);
|
||||
|
||||
$attr = str_replace("%%", ++$num, $attr);
|
||||
|
@ -1597,13 +1597,13 @@ class MarkdownExtra extends \Michelf\Markdown {
|
|||
# Find defined abbreviations in text and wrap them in <abbr> elements.
|
||||
#
|
||||
if ($this->abbr_word_re) {
|
||||
// cannot use the /x modifier because abbr_word_re may
|
||||
// cannot use the /x modifier because abbr_word_re may
|
||||
// contain significant spaces:
|
||||
$text = preg_replace_callback('{'.
|
||||
'(?<![\w\x1A])'.
|
||||
'(?:'.$this->abbr_word_re.')'.
|
||||
'(?![\w\x1A])'.
|
||||
'}',
|
||||
'}',
|
||||
array($this, '_doAbbreviations_callback'), $text);
|
||||
}
|
||||
return $text;
|
||||
|
|
|
@ -21,7 +21,7 @@ class Reviews {
|
|||
|
||||
if ( empty( $reviews ) ) {
|
||||
return sprintf(
|
||||
'<div class="notice notice-warning notice-alt"><p>%s</p></div>',
|
||||
'<div class="notice notice-warning notice-alt"><p>%s</p></div>',
|
||||
__( 'There are no reviews for this plugin.', 'wporg-plugins' )
|
||||
);
|
||||
}
|
||||
|
|
|
@ -272,7 +272,7 @@ class Hooks {
|
|||
if ( is_404() && 'topic' === get_query_var( 'post_type' ) && get_query_var( 'name' ) ) {
|
||||
$hidden_topic = get_post( $post_id );
|
||||
|
||||
if ( $hidden_topic &&
|
||||
if ( $hidden_topic &&
|
||||
in_array( $hidden_topic->post_status, array( 'spam', 'pending', 'archived' ) ) &&
|
||||
! current_user_can( 'read_topic', $hidden_topic->ID )
|
||||
) {
|
||||
|
@ -1144,9 +1144,9 @@ class Hooks {
|
|||
|
||||
/**
|
||||
* Add support for Slack and Trac style code formatting.
|
||||
*
|
||||
*
|
||||
* Upon edit, the blocks will be unwrapped to bbPress style blocks.
|
||||
*
|
||||
*
|
||||
* See `bbp_code_trick()` for the regex below.
|
||||
*/
|
||||
function support_slack_trac_code_trick( $content ) {
|
||||
|
|
|
@ -192,7 +192,7 @@ class Ratings_Compat {
|
|||
add_filter( 'bbp_get_topic_title', array( $this, 'get_topic_title' ), 10, 2 );
|
||||
|
||||
// Undo the above filter, for titles of replies to reviews. See #meta4254
|
||||
add_filter( 'bbp_get_topic_last_topic_title', array( $this, 'undo_topic_title' ), 10, 1 );
|
||||
add_filter( 'bbp_get_topic_last_topic_title', array( $this, 'undo_topic_title' ), 10, 1 );
|
||||
?>
|
||||
<div class="review-ratings">
|
||||
<div class="col-3">
|
||||
|
@ -326,12 +326,12 @@ class Ratings_Compat {
|
|||
}
|
||||
|
||||
// set the rating
|
||||
\WPORG_Ratings::set_rating(
|
||||
$topic_id,
|
||||
$this->compat,
|
||||
$this->slug,
|
||||
bbp_get_topic_author_id( $topic_id ),
|
||||
$rating
|
||||
\WPORG_Ratings::set_rating(
|
||||
$topic_id,
|
||||
$this->compat,
|
||||
$this->slug,
|
||||
bbp_get_topic_author_id( $topic_id ),
|
||||
$rating
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -445,7 +445,7 @@ class WPORG_Themes_Upload {
|
|||
|
||||
/**
|
||||
* Sanitize/strip a field back to it's bare-basics version-like string.
|
||||
*
|
||||
*
|
||||
* @param string $value The field value.
|
||||
* @param string $field The name of the field being processed.
|
||||
* @return bool|string The version-like field or false on failure.
|
||||
|
|
|
@ -209,7 +209,7 @@ add_action( 'parse_request', 'wporg_themes_parse_request' );
|
|||
|
||||
/**
|
||||
* Remove support for any query vars the Theme Directory doesn't support/need.
|
||||
*
|
||||
*
|
||||
* This should only apply to Rewrite rules, so WP_Query can use anything it needs.
|
||||
*/
|
||||
function wporg_themes_remove_query_vars( $qv ) {
|
||||
|
|
|
@ -236,7 +236,7 @@ add_filter( 'jetpack_active_modules', 'wporg_themes_disable_sitemap_for_rosetta'
|
|||
|
||||
/**
|
||||
* Skip outdated themes in Jetpack Sitemaps.
|
||||
*
|
||||
*
|
||||
* @param bool $skip If this post should be excluded from Sitemaps.
|
||||
* @param object $plugin_db_row A row from the wp_posts table.
|
||||
* @return bool
|
||||
|
|
|
@ -86,7 +86,7 @@ class WPorg_GP_Project_Stats {
|
|||
|
||||
/**
|
||||
* Cron task to cache the string counts for the wp-themes and wp-plugins parent categories.
|
||||
*
|
||||
*
|
||||
* These don't have any translation sets, but we need to be able to query the waiting strings for them.
|
||||
*/
|
||||
public function cache_wp_themes_wp_plugins_strings() {
|
||||
|
|
|
@ -126,7 +126,7 @@ class WPorg_GP_User_Stats {
|
|||
list( $user_id, $project_id, $locale, $locale_slug ) = explode( ',', $key );
|
||||
|
||||
// Step 1 - Does this user already have the project listed? Just Bump the date.
|
||||
if ( $id = $wpdb->get_var( $wpdb->prepare(
|
||||
if ( $id = $wpdb->get_var( $wpdb->prepare(
|
||||
"SELECT id FROM {$wpdb->user_projects}
|
||||
WHERE user_id = %d AND project_id = %d AND locale = %s AND locale_slug = %s",
|
||||
$user_id, $project_id, $locale, $locale_slug
|
||||
|
|
|
@ -90,8 +90,8 @@ pre[class*="language-"] > code {
|
|||
.token.keyword,
|
||||
.token.attr-value,
|
||||
.language-autohotkey .token.selector,
|
||||
.language-json .token.boolean,
|
||||
.language-json .token.number,
|
||||
.language-json .token.boolean,
|
||||
.language-json .token.number,
|
||||
code[class*="language-css"]{
|
||||
color: #0000ff;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* @package wporg-developer
|
||||
*/
|
||||
|
||||
get_header();
|
||||
get_header();
|
||||
|
||||
$comment_id = get_query_var( 'edit_user_note' );
|
||||
$comment = get_comment( $comment_id );
|
||||
|
@ -17,7 +17,7 @@ $post_id = get_queried_object_id();
|
|||
$can_user_edit = \DevHub\can_user_edit_note( $comment_id );
|
||||
|
||||
if ( ! ( $comment && $post && $post_id && $can_user_edit ) ) {
|
||||
// Bail if the current user can't edit this note, or if
|
||||
// Bail if the current user can't edit this note, or if
|
||||
// the comment or global post data is not found.
|
||||
include get_404_template();
|
||||
return;
|
||||
|
|
|
@ -32,7 +32,7 @@ if ( post_password_required() ) {
|
|||
<?php endif; // check for comment navigation ?>
|
||||
|
||||
<ol class="comment-list">
|
||||
<?php
|
||||
<?php
|
||||
$feedback_editor = false;
|
||||
|
||||
/* Loop through and list the comments. Use wporg_developer_list_notes() to format the comments.
|
||||
|
@ -45,7 +45,7 @@ if ( post_password_required() ) {
|
|||
} else {
|
||||
$ordered_comments = wporg_developer_get_ordered_notes();
|
||||
if ( $ordered_comments ) {
|
||||
wporg_developer_list_notes( $ordered_comments, array( 'avatar_size' => 32 ) );
|
||||
wporg_developer_list_notes( $ordered_comments, array( 'avatar_size' => 32 ) );
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -63,7 +63,7 @@ if ( post_password_required() ) {
|
|||
|
||||
<?php if ( \DevHub\is_parsed_post_type() && DevHub\can_user_post_note( true, get_the_ID() ) ) : ?>
|
||||
|
||||
<?php
|
||||
<?php
|
||||
if ( class_exists( 'DevHub_User_Submitted_Content' ) ) {
|
||||
$args = \DevHub_User_Submitted_Content::comment_form_args();
|
||||
comment_form( $args );
|
||||
|
|
|
@ -146,7 +146,7 @@ namespace {
|
|||
$comments[ $key ]->child_notes = array_reverse( $children[ $comment->comment_ID ] );
|
||||
}
|
||||
|
||||
if ( ! $show_editor && ( $reply_id && ( $reply_id === (int) $comment->comment_ID ) ) ) {
|
||||
if ( ! $show_editor && ( $reply_id && ( $reply_id === (int) $comment->comment_ID ) ) ) {
|
||||
/* The query var 'replytocom' is used and the value is the same as the current comment ID.
|
||||
* We show the editor for the current comment because we assume Javascript is disabled.
|
||||
* If Javascript is not disabled the editor is hidden (as normal) by the class 'hide-if-js'.
|
||||
|
@ -1446,7 +1446,7 @@ namespace DevHub {
|
|||
*
|
||||
* A user can only edit their own notes if it's in moderation and
|
||||
* if it's a note for a parsed post type.
|
||||
*
|
||||
*
|
||||
* Users with the 'edit_comment' capability can edit
|
||||
* all notes from a parsed post type (regardless if it's in moderation).
|
||||
*
|
||||
|
|
|
@ -288,7 +288,7 @@ class DevHub_User_Submitted_Content {
|
|||
|
||||
$args['comment_field'] = self::wp_editor_comments( $label, $comment );
|
||||
|
||||
// Args for adding hidden links after the comment form submit field.
|
||||
// Args for adding hidden links after the comment form submit field.
|
||||
$args['context'] = $context;
|
||||
$args['comment_edit'] = $comment;
|
||||
|
||||
|
@ -392,7 +392,7 @@ class DevHub_User_Submitted_Content {
|
|||
/* translators: 1: note, 2: note author name */
|
||||
$note_link = sprintf( __( '%1$s by %2$s', 'wporg' ), "<a href='{$post_url}'>{$parent_note}</a>", $parent_author );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$allowed_tags = '';
|
||||
foreach ( array( '<strong>', '<em>', '<code>', '<a>' ) as $tag ) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
These styles are inserted inline in the comment editor.
|
||||
*/
|
||||
|
||||
|
@ -14,7 +14,7 @@ These styles are inserted inline in the comment editor.
|
|||
.js .quicktags-toolbar {
|
||||
padding: 8px 5px 5px 0;
|
||||
}
|
||||
/*
|
||||
/*
|
||||
These styles are inserted inline in the comment editor.
|
||||
*/
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ get_header();
|
|||
|
||||
<header>
|
||||
<div class="wrap">
|
||||
<?php
|
||||
<?php
|
||||
$fronthead = new WP_Query('page_id=29');
|
||||
$fronthead->the_post();
|
||||
the_content();
|
||||
|
@ -24,7 +24,7 @@ get_header();
|
|||
|
||||
<section class="learn-main">
|
||||
<article>
|
||||
<?php
|
||||
<?php
|
||||
$fronthead = new WP_Query( array( 'posts_per_page' => 1 ) );
|
||||
$fronthead->the_post();
|
||||
?>
|
||||
|
|
|
@ -169,7 +169,7 @@ function wporg_update_pending_user( $pending_user ) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Create a user record from a pending record.
|
||||
* Create a user record from a pending record.
|
||||
*/
|
||||
function wporg_login_create_user_from_pending( $pending_user, $password = false ) {
|
||||
global $wpdb;
|
||||
|
|
|
@ -134,7 +134,7 @@ the_post();
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
<p><?php
|
||||
<p><?php
|
||||
printf(
|
||||
/* translators: %s: Link to Make WordPress Core blog post */
|
||||
wp_kses_post( __( 'For more information on the planned release schedule, please read the Make WordPress Core post about the <a href="%s">tentative release calendar for 2020-2021</a>.', 'wporg' ) ),
|
||||
|
@ -157,10 +157,10 @@ the_post();
|
|||
|
||||
<h2><?php esc_html_e( 'Long term roadmap', 'wporg' ); ?></h2>
|
||||
|
||||
<p><?php
|
||||
printf(
|
||||
<p><?php
|
||||
printf(
|
||||
/* translators: %s: link to wordpress.tv State of the Word 2019 */
|
||||
wp_kses_post( __( 'While Phase 2 of Gutenberg is expected to continue at least through 2020, there are already plans for Phase 3 and 4. During the <a href="%s">State of the Word from WordCamp US 2019</a>, Matt shared the following vision for phases in Gutenberg:', 'wporg' ) ),
|
||||
wp_kses_post( __( 'While Phase 2 of Gutenberg is expected to continue at least through 2020, there are already plans for Phase 3 and 4. During the <a href="%s">State of the Word from WordCamp US 2019</a>, Matt shared the following vision for phases in Gutenberg:', 'wporg' ) ),
|
||||
'https://wordpress.tv/2019/11/03/2019-state-of-the-word/' );
|
||||
?>
|
||||
</p>
|
||||
|
|
|
@ -78,7 +78,7 @@ twttr.ready( function( twttr ) {
|
|||
align: 'left',
|
||||
conversation: 'none',
|
||||
cards: 'hidden',
|
||||
margin: 0,
|
||||
margin: 0,
|
||||
width: 372
|
||||
}
|
||||
).then( function() {
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
);
|
||||
}
|
||||
?></td>
|
||||
<td><?php
|
||||
<td><?php
|
||||
// convert the date time to a pretty format
|
||||
$time = strtotime( $post->next_date.' '. $post->time.' GMT' ); // note, strtotime doesn't grok UTC very well, GMT works fine though
|
||||
echo '<a href="http://www.timeanddate.com/worldclock/fixedtime.html?iso='.gmdate('Ymd\THi', $time).'"><abbr class="date" title="'.gmdate('c', $time).'">';
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<article id="site-<?php the_ID(); ?>" <?php post_class(); ?>>
|
||||
<h2>
|
||||
<?php if ( $url ) : ?>
|
||||
<a
|
||||
<a
|
||||
title="<?php printf( esc_attr( 'Learn more about %s.', 'make-wporg' ), esc_html( get_the_title() ) ); ?>"
|
||||
href="<?php echo esc_url( $url ); ?>"
|
||||
><?php the_title(); ?></a>
|
||||
|
|
|
@ -9,7 +9,7 @@ function make_enqueue_scripts() {
|
|||
add_action( 'after_setup_theme', 'make_setup_theme' );
|
||||
function make_setup_theme() {
|
||||
register_nav_menu( 'primary', __( 'Navigation Menu', 'make-wporg' ) );
|
||||
add_theme_support( 'post-thumbnails' );
|
||||
add_theme_support( 'post-thumbnails' );
|
||||
}
|
||||
|
||||
add_action( 'pre_get_posts', 'make_query_mods' );
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<div class="handbook-name"><span><a href="<?php echo esc_url( get_post_type_archive_link( wporg_get_current_handbook() ) ); ?>"><?php echo esc_html( wporg_get_current_handbook_name() ); ?></a></span></div>
|
||||
|
||||
<!-- Also called on in footer but will not display the second time. -->
|
||||
<?php get_sidebar( 'handbook' ); ?>
|
||||
<?php get_sidebar( 'handbook' ); ?>
|
||||
|
||||
<div class="sleeve_main">
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<?php } ?>
|
||||
|
||||
<!-- Also called on in footer but will not display the second time. -->
|
||||
<?php get_sidebar( 'handbook' ); ?>
|
||||
<?php get_sidebar( 'handbook' ); ?>
|
||||
|
||||
<div class="sleeve_main">
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ $tested_up_to = (string) get_post_meta( $post->ID, 'tested', true );
|
|||
</span>
|
||||
<?php endif; ?>
|
||||
<span class="last-updated">
|
||||
<i class="dashicons dashicons-calendar"></i>
|
||||
<i class="dashicons dashicons-calendar"></i>
|
||||
<?php
|
||||
/* Translators: Plugin modified time. */
|
||||
printf( esc_html__( 'Updated %s ago', 'wporg-plugins' ), esc_html( human_time_diff( get_post_modified_time() ) ) );
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
add_theme_support( 'automatic-feed-links' );
|
||||
|
||||
// Disable comments feed.
|
||||
add_filter( 'feed_links_show_comments_feed', '__return_false' );
|
||||
add_filter( 'feed_links_show_comments_feed', '__return_false' );
|
||||
|
||||
// Remove extra feed links from singular queries.
|
||||
add_action( 'wp_head', function () {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
<?php
|
||||
/**
|
||||
* The template for displaying 404 pages (not found).
|
||||
*
|
||||
|
|
|
@ -105,7 +105,7 @@ do_action( 'bbp_template_before_user_profile' ); ?>
|
|||
<?php if ( is_user_logged_in() && $website = bbp_get_displayed_user_field( 'user_url' ) ) : ?>
|
||||
|
||||
<p class="bbp-user-website"><?php
|
||||
/* translators: %s: link to user's website */
|
||||
/* translators: %s: link to user's website */
|
||||
printf( esc_html__( 'Website: %s', 'wporg-forums' ), sprintf( '<a href="%s" rel="nofollow ugc">%s</a>', esc_url( $website ), esc_html( $website ) ) );
|
||||
?></p>
|
||||
|
||||
|
|
|
@ -922,10 +922,10 @@ add_filter( 'the_title', 'wptv_widont' );
|
|||
|
||||
/**
|
||||
* Update Attachment titles to match the Post Title.
|
||||
*
|
||||
*
|
||||
* This is done as the Attachment Title is shown within the VideoPress embeds.
|
||||
* This can't be done through a filter in the themes functions.php, as it appears that's not loaded for the Rest API.
|
||||
*
|
||||
*
|
||||
* @see https://meta.trac.wordpress.org/ticket/4667
|
||||
*/
|
||||
function wptv_update_attachment_titles( $id, $post, $post_before ) {
|
||||
|
|
|
@ -42,7 +42,7 @@ $file_prefix = 'wp-cache-';
|
|||
$ossdlcdn = 0;
|
||||
//$use_flock = true; // Set it true or false if you know what to use
|
||||
|
||||
// Array of files that have 'wp-' but should still be cached
|
||||
// Array of files that have 'wp-' but should still be cached
|
||||
$cache_acceptable_files = array( 'wp-comments-popup.php', 'wp-links-opml.php', 'wp-locations.php' );
|
||||
$cache_rejected_uri = array( 'wp-.*\\.php', 'index\\.php' );
|
||||
$cache_rejected_user_agent = array(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue