Code Duplication    Length = 70-71 lines in 2 locations

projects/plugins/jetpack/_inc/lib/markdown/extra.php 2 locations

@@ 547-616 (lines=70) @@
544
	}
545
546
547
	function doAnchors($text) {
548
	#
549
	# Turn Markdown link shortcuts into XHTML <a> tags.
550
	#
551
		if ($this->in_anchor) return $text;
552
		$this->in_anchor = true;
553
554
		#
555
		# First, handle reference-style links: [link text] [id]
556
		#
557
		$text = preg_replace_callback('{
558
			(					# wrap whole match in $1
559
			  \[
560
				('.$this->nested_brackets_re.')	# link text = $2
561
			  \]
562
563
			  [ ]?				# one optional space
564
			  (?:\n[ ]*)?		# one optional newline followed by spaces
565
566
			  \[
567
				(.*?)		# id = $3
568
			  \]
569
			)
570
			}xs',
571
			array(&$this, '_doAnchors_reference_callback'), $text);
572
573
		#
574
		# Next, inline-style links: [link text](url "optional title")
575
		#
576
		$text = preg_replace_callback('{
577
			(				# wrap whole match in $1
578
			  \[
579
				('.$this->nested_brackets_re.')	# link text = $2
580
			  \]
581
			  \(			# literal paren
582
				[ \n]*
583
				(?:
584
					<(.+?)>	# href = $3
585
				|
586
					('.$this->nested_url_parenthesis_re.')	# href = $4
587
				)
588
				[ \n]*
589
				(			# $5
590
				  ([\'"])	# quote char = $6
591
				  (.*?)		# Title = $7
592
				  \6		# matching quote
593
				  [ \n]*	# ignore any spaces/tabs between closing quote and )
594
				)?			# title is optional
595
			  \)
596
			)
597
			}xs',
598
			array(&$this, '_doAnchors_inline_callback'), $text);
599
600
		#
601
		# Last, handle reference-style shortcuts: [link text]
602
		# These must come last in case you've also got [link text][1]
603
		# or [link text](/foo)
604
		#
605
		$text = preg_replace_callback('{
606
			(					# wrap whole match in $1
607
			  \[
608
				([^\[\]]+)		# link text = $2; can\'t contain [ or ]
609
			  \]
610
			)
611
			}xs',
612
			array(&$this, '_doAnchors_reference_callback'), $text);
613
614
		$this->in_anchor = false;
615
		return $text;
616
	}
617
	function _doAnchors_reference_callback($matches) {
618
		$whole_match =  $matches[1];
619
		$link_text   =  $matches[2];
@@ 2230-2300 (lines=71) @@
2227
	}
2228
2229
2230
	function doAnchors($text) {
2231
	#
2232
	# Turn Markdown link shortcuts into XHTML <a> tags.
2233
	#
2234
		if ($this->in_anchor) return $text;
2235
		$this->in_anchor = true;
2236
2237
		#
2238
		# First, handle reference-style links: [link text] [id]
2239
		#
2240
		$text = preg_replace_callback('{
2241
			(					# wrap whole match in $1
2242
			  \[
2243
				('.$this->nested_brackets_re.')	# link text = $2
2244
			  \]
2245
2246
			  [ ]?				# one optional space
2247
			  (?:\n[ ]*)?		# one optional newline followed by spaces
2248
2249
			  \[
2250
				(.*?)		# id = $3
2251
			  \]
2252
			)
2253
			}xs',
2254
			array(&$this, '_doAnchors_reference_callback'), $text);
2255
2256
		#
2257
		# Next, inline-style links: [link text](url "optional title")
2258
		#
2259
		$text = preg_replace_callback('{
2260
			(				# wrap whole match in $1
2261
			  \[
2262
				('.$this->nested_brackets_re.')	# link text = $2
2263
			  \]
2264
			  \(			# literal paren
2265
				[ \n]*
2266
				(?:
2267
					<(.+?)>	# href = $3
2268
				|
2269
					('.$this->nested_url_parenthesis_re.')	# href = $4
2270
				)
2271
				[ \n]*
2272
				(			# $5
2273
				  ([\'"])	# quote char = $6
2274
				  (.*?)		# Title = $7
2275
				  \6		# matching quote
2276
				  [ \n]*	# ignore any spaces/tabs between closing quote and )
2277
				)?			# title is optional
2278
			  \)
2279
			  (?:[ ]? '.$this->id_class_attr_catch_re.' )?	 # $8 = id/class attributes
2280
			)
2281
			}xs',
2282
			array(&$this, '_doAnchors_inline_callback'), $text);
2283
2284
		#
2285
		# Last, handle reference-style shortcuts: [link text]
2286
		# These must come last in case you've also got [link text][1]
2287
		# or [link text](/foo)
2288
		#
2289
		$text = preg_replace_callback('{
2290
			(					# wrap whole match in $1
2291
			  \[
2292
				([^\[\]]+)		# link text = $2; can\'t contain [ or ]
2293
			  \]
2294
			)
2295
			}xs',
2296
			array(&$this, '_doAnchors_reference_callback'), $text);
2297
2298
		$this->in_anchor = false;
2299
		return $text;
2300
	}
2301
	function _doAnchors_reference_callback($matches) {
2302
		$whole_match =  $matches[1];
2303
		$link_text   =  $matches[2];