$1', $markdown); $markdown = preg_replace('/^## (.*?)$/m', '

$1

', $markdown); $markdown = preg_replace('/^# (.*?)$/m', '

$1

', $markdown); // Bold and Italic $markdown = preg_replace('/\*\*(.*?)\*\*/s', '$1', $markdown); $markdown = preg_replace('/\*(.*?)\*/s', '$1', $markdown); // Process lists first - identify all list items $markdown = preg_replace('/^- (.*?)$/m', '
  • $1
  • ', $markdown); $markdown = preg_replace('/^\* (.*?)$/m', '
  • $1
  • ', $markdown); $markdown = preg_replace('/^\d+\. (.*?)$/m', '
  • $1
  • ', $markdown); // Group consecutive list items into appropriate list types // First group bullet items into unordered lists $markdown = preg_replace('/((?:
  • .*?<\/li>\n)+)/s', '', $markdown); // Then group numbered items into ordered lists with a special class for indentation $markdown = preg_replace('/((?:
  • .*?<\/li>\n)+)/s', '
      $1
    ', $markdown); // Clean up the classes from the final output $markdown = str_replace('class="bullet-item"', '', $markdown); $markdown = str_replace('class="number-item"', '', $markdown); $markdown = str_replace('class="wp-allstars-ul"', 'class="wp-allstars-list"', $markdown); $markdown = str_replace('class="wp-allstars-ol numbered-list"', 'class="wp-allstars-list numbered-list"', $markdown); // Links $markdown = preg_replace('/\[(.*?)\]\((.*?)\)/s', '$1', $markdown); // Paragraphs $markdown = preg_replace('/^(?!<[a-z]).+$/m', '

    $0

    ', $markdown); // Fix multiple paragraph tags $markdown = str_replace('

    ', '

    ', $markdown); $markdown = str_replace('

    ', '

    ', $markdown); // Fix lists within paragraphs $markdown = str_replace('

    ', $markdown); return $markdown; } } // Initialize the class WP_Allstars_Readme_Manager::init();