public function testToStringAndFrontMatter() { $tmpMarkdown = '# Foo'; $tmpFrontMatter = array('Tag' => array('Bar', 'Bazz', 'Buzz')); $mdObj = new MarkdownRevision('# Foo'); $mdObj->setFrontMatter($tmpFrontMatter); // In the test fixture, we said that "Foo" was the content of the // contribution, let’s test that. Also, we may change the way the // content is generated, see MarkdownRevision for instance. $this->assertSame("---\nTag:\n - Bar\n - Bazz\n - Buzz\n\n---\n# Foo", (string) $mdObj); }
/** * Apply Wikitext rewrites. * * @param AbstractRevision $revision Input we want to transfer into Markdown * * @return AbstractRevision */ public function apply(AbstractRevision $revision) { if ($revision instanceof MediaWikiRevision) { try { $content = $this->getPageFromApi($revision->getTitle()); } catch (Exception $e) { $title = $revision->getTitle(); $url = $this->apiUrl . urlencode($title); $message = sprintf('Could not get data from API for %s with the following URI %s', $title, $url); throw new Exception($message, 0, $e); } $front_matter = []; $rev_matter = $revision->getFrontMatterData(); $newRev = new MarkdownRevision($content, array_merge($rev_matter, $front_matter)); return $newRev->setTitle($revision->getTitle()); } return $revision; }
/** * Apply Wikitext rewrites. * * @param AbstractRevision $revision Input we want to transfer into Markdown * * @return AbstractRevision */ public function apply(AbstractRevision $revision) { throw new \Exception('This is a Stub class. Please adapt before using'); if ($revision instanceof MediaWikiRevision) { $content = $this->filter($revision->getContent()); // Should we make a loop for that? $content = preg_replace_callback('/\\[([^\\[\\]\\|\\n\': ]+)\\]/', 'self::helperExternlinks', $content); $content = preg_replace_callback('/\\[?\\[([^\\[\\]\\|\\n\' ]+)[\\| ]([^\\]\']+)\\]\\]?/', 'self::helperExternlinks', $content); $front_matter = array(); if (empty(trim($content))) { $front_matter['is_stub'] = 'true'; $content = PHP_EOL; // Let’s redefine at only one line instead of using a filter. } $rev_matter = $revision->getFrontMatterData(); $newRev = new MarkdownRevision($content, array_merge($rev_matter, $front_matter)); return $newRev->setTitle($revision->getTitle()); } return $revision; }