diff --git a/docs/importer.rst b/docs/importer.rst index 0147f900..ccf3ffe2 100644 --- a/docs/importer.rst +++ b/docs/importer.rst @@ -39,7 +39,7 @@ Usage """"" | pelican-import [-h] [--wpfile] [--dotclear] [--feed] [-o OUTPUT] -| [--dir-cat] +| [-m MARKUP][--dir-cat] | input Optional arguments @@ -51,6 +51,7 @@ Optional arguments --feed Feed to parse -o OUTPUT, --output OUTPUT Output path + -m MARKUP Output markup --dir-cat Put files in directories with categories name Examples diff --git a/pelican/readers.py b/pelican/readers.py index 917d8614..868dc965 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -65,7 +65,7 @@ def render_node_to_html(document, node): class RstReader(Reader): enabled = bool(docutils) - extension = "rst" + file_extensions = ['rst'] def _parse_metadata(self, document): """Return the dict containing document metadata""" @@ -111,7 +111,7 @@ class RstReader(Reader): class MarkdownReader(Reader): enabled = bool(Markdown) - extension = "md" + file_extensions = ['md', 'markdown', 'mkd'] extensions = ['codehilite', 'extra'] def read(self, filename): @@ -128,7 +128,7 @@ class MarkdownReader(Reader): class HtmlReader(Reader): - extension = "html" + file_extensions = ['html', 'htm'] _re = re.compile('\<\!\-\-\#\s?[A-z0-9_-]*\s?\:s?[A-z0-9\s_-]*\s?\-\-\>') def read(self, filename): @@ -144,7 +144,11 @@ class HtmlReader(Reader): return content, metadata -_EXTENSIONS = dict((cls.extension, cls) for cls in Reader.__subclasses__()) +_EXTENSIONS = {} + +for cls in Reader.__subclasses__(): + for ext in cls.file_extensions: + _EXTENSIONS[ext] = cls def read_file(filename, fmt=None, settings=None): diff --git a/pelican/themes/notmyidea/static/images/icons/facebook.png b/pelican/themes/notmyidea/static/images/icons/facebook.png new file mode 100644 index 00000000..a7914b49 Binary files /dev/null and b/pelican/themes/notmyidea/static/images/icons/facebook.png differ diff --git a/tests/content/article_with_md_extension.md b/tests/content/article_with_md_extension.md new file mode 100644 index 00000000..11aa22a2 --- /dev/null +++ b/tests/content/article_with_md_extension.md @@ -0,0 +1,10 @@ +title: Test md File +category: test + +Test Markdown File Header +========================= + +Used for pelican test +--------------------- + +The quick brown fox jumped over the lazy dog's back. diff --git a/tests/content/article_with_mkd_extension.mkd b/tests/content/article_with_mkd_extension.mkd new file mode 100644 index 00000000..c946cb87 --- /dev/null +++ b/tests/content/article_with_mkd_extension.mkd @@ -0,0 +1,10 @@ +title: Test mkd File +category: test + +Test Markdown File Header +========================= + +Used for pelican test +--------------------- + +This is another markdown test file. Uses the mkd extension. diff --git a/tests/test_readers.py b/tests/test_readers.py index 7b9316b5..de2e9c32 100644 --- a/tests/test_readers.py +++ b/tests/test_readers.py @@ -61,3 +61,25 @@ class RstReaderTest(unittest.TestCase): self.assertEqual(content, expected) except ImportError: return unittest.skip('need the typogrify distribution') + +class MdReaderTest(unittest.TestCase): + + def test_article_with_md_extention(self): + # test to ensure the md extension is being processed by the correct reader + reader = readers.MarkdownReader({}) + content, metadata = reader.read(_filename('article_with_md_extension.md')) + expected = "
The quick brown fox jumped over the lazy dog's back.
" + + self.assertEqual(content, expected) + + def test_article_with_mkd_extension(self): + # test to ensure the mkd extension is being processed by the correct reader + reader = readers.MarkdownReader({}) + content, metadata = reader.read(_filename('article_with_mkd_extension.mkd')) + expected = "This is another markdown test file. Uses the mkd extension.
" + + self.assertEqual(content, expected)