public static function PlainText($Body, $Format = 'Html') {
      $Result = Gdn_Format::To($Body, $Format);
      
      if ($Format != 'Text') {
         // Remove returns and then replace html return tags with returns.
         $Result = str_replace(array("\n", "\r"), ' ', $Result);
         $Result = preg_replace('`<br\s*/?>`', "\n", $Result);
         
         // Fix lists.
         $Result = str_replace('<li>', '* ', $Result);
         $Result = preg_replace('`</(?:li|ol|ul)>`', "\n", $Result);
         
         $Allblocks = '(?:div|table|dl|pre|blockquote|address|p|h[1-6]|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
         $Result = preg_replace('`</'.$Allblocks.'>`', "\n\n", $Result);
         
         // TODO: Fix hard returns within pre blocks.
         
         $Result = strip_tags($Result);
      }
      $Result = trim(html_entity_decode($Result, ENT_QUOTES, 'UTF-8'));
      return $Result;
   }