You are here

protected function MarkdownExtra::formParagraphs in Markdown 7

* Parse text into paragraphs *

Parameters

string $text String to process in paragraphs: * @param boolean $wrap_in_p Whether paragraphs should be wrapped in <p> tags * @return string HTML output

Overrides Markdown::formParagraphs

File

includes/MarkdownExtra.php, line 1512

Class

MarkdownExtra
Markdown Extra Parser Class

Namespace

Michelf

Code

protected function formParagraphs($text, $wrap_in_p = true) {

  // Strip leading and trailing lines:
  $text = preg_replace('/\\A\\n+|\\n+\\z/', '', $text);
  $grafs = preg_split('/\\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY);

  // Wrap <p> tags and unhashify HTML blocks
  foreach ($grafs as $key => $value) {
    $value = trim($this
      ->runSpanGamut($value));

    // Check if this should be enclosed in a paragraph.
    // Clean tag hashes & block tag hashes are left alone.
    $is_p = $wrap_in_p && !preg_match('/^B\\x1A[0-9]+B|^C\\x1A[0-9]+C$/', $value);
    if ($is_p) {
      $value = "<p>{$value}</p>";
    }
    $grafs[$key] = $value;
  }

  // Join grafs in one text, then unhash HTML tags.
  $text = implode("\n\n", $grafs);

  // Finish by removing any tag hashes still present in $text.
  $text = $this
    ->unhash($text);
  return $text;
}