From 1b978bac6d9c6fba967e2686c4fc1db416f317cf Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Mon, 9 Apr 2012 22:45:58 -0400 Subject: [PATCH 1/8] Added markdown option to importer documentation. Issue #292 --- docs/importer.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/importer.rst b/docs/importer.rst index 377820af..d1b37684 100644 --- a/docs/importer.rst +++ b/docs/importer.rst @@ -23,7 +23,7 @@ Usage """"" | pelican-import [-h] [--wpfile] [--dotclear] [--feed] [-o OUTPUT] -| [--dir-cat] +| [-m MARKUP][--dir-cat] | input Optional arguments: @@ -35,6 +35,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 From 75febf4bfd25557c6c3db5edf09008b17d8ad158 Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 10 Apr 2012 00:15:12 -0400 Subject: [PATCH 2/8] Add support for multiple file extensions per file reader. Conflicts: pelican/readers.py --- pelican/readers.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pelican/readers.py b/pelican/readers.py index 917d8614..326782ed 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -65,7 +65,11 @@ def render_node_to_html(document, node): class RstReader(Reader): enabled = bool(docutils) +<<<<<<< HEAD extension = "rst" +======= + extension = ['rst'] +>>>>>>> f1de695... Add support for multiple file extensions per file reader. def _parse_metadata(self, document): """Return the dict containing document metadata""" @@ -111,7 +115,11 @@ class RstReader(Reader): class MarkdownReader(Reader): enabled = bool(Markdown) +<<<<<<< HEAD extension = "md" +======= + extension = ['md', 'markdown', 'mkd'] +>>>>>>> f1de695... Add support for multiple file extensions per file reader. extensions = ['codehilite', 'extra'] def read(self, filename): @@ -128,7 +136,11 @@ class MarkdownReader(Reader): class HtmlReader(Reader): +<<<<<<< HEAD extension = "html" +======= + extension = ['html', 'htm'] +>>>>>>> f1de695... Add support for multiple file extensions per file reader. _re = re.compile('\<\!\-\-\#\s?[A-z0-9_-]*\s?\:s?[A-z0-9\s_-]*\s?\-\-\>') def read(self, filename): From d4e632dfa8fbcf2ff8ba09deb60fa68f162d453f Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 10 Apr 2012 00:32:01 -0400 Subject: [PATCH 3/8] Unit test failed due to missing trailing comma in tuple. Fixed. --- pelican/readers.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/pelican/readers.py b/pelican/readers.py index 326782ed..1ffe4cc0 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -65,11 +65,7 @@ def render_node_to_html(document, node): class RstReader(Reader): enabled = bool(docutils) -<<<<<<< HEAD - extension = "rst" -======= extension = ['rst'] ->>>>>>> f1de695... Add support for multiple file extensions per file reader. def _parse_metadata(self, document): """Return the dict containing document metadata""" @@ -115,11 +111,7 @@ class RstReader(Reader): class MarkdownReader(Reader): enabled = bool(Markdown) -<<<<<<< HEAD - extension = "md" -======= extension = ['md', 'markdown', 'mkd'] ->>>>>>> f1de695... Add support for multiple file extensions per file reader. extensions = ['codehilite', 'extra'] def read(self, filename): @@ -136,11 +128,7 @@ class MarkdownReader(Reader): class HtmlReader(Reader): -<<<<<<< HEAD - extension = "html" -======= extension = ['html', 'htm'] ->>>>>>> f1de695... Add support for multiple file extensions per file reader. _re = re.compile('\<\!\-\-\#\s?[A-z0-9_-]*\s?\:s?[A-z0-9\s_-]*\s?\-\-\>') def read(self, filename): From c8323af63d5e3440c12eef968e6858a50d4adbdf Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 10 Apr 2012 00:40:05 -0400 Subject: [PATCH 4/8] Fixed _EXTENSIONS dictionary definition. --- pelican/readers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pelican/readers.py b/pelican/readers.py index 1ffe4cc0..c5d9aa00 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -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.extension: + _EXTENSIONS[ext] = cls def read_file(filename, fmt=None, settings=None): From 5e6945d380abd03f81f1ca997bc82b4be9fb8ac0 Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 10 Apr 2012 12:51:16 -0400 Subject: [PATCH 5/8] Added facebook icon to default theme. --- .../notmyidea/static/images/icons/facebook.png | Bin 0 -> 300 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pelican/themes/notmyidea/static/images/icons/facebook.png 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 0000000000000000000000000000000000000000..a7914b497369c55feba7defc9a3ea5bec424ecfc GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU{r~^Jb>s{nN~l=<`rQ{G z*EMNgZp)TeGt$L@YM4rb{DK+IJaKeh4CFB;dAqwXbg;^L06Clm9+AaB8pQTsa66f8 z2V~fKx;Tb#Tu)ADV02S85J*U9G7veylX_i&!&z12Q~+;~Q|gK~r==k=&T|S@G#cDE zb^5gT;nTtbJUf;eFfcqx6@I vWMyh@WooHyU}$AvU~RtQ2a1N={FKbJO57T}vIJa!8W=oX{an^LB{Ts5Vp3XV literal 0 HcmV?d00001 From faecba6035a4d15b7d1f8197026cf77bb95386be Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 1 May 2012 22:34:32 -0400 Subject: [PATCH 6/8] Changed variable name extension to file_extensions. --- pelican/readers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pelican/readers.py b/pelican/readers.py index c5d9aa00..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', 'markdown', 'mkd'] + file_extensions = ['md', 'markdown', 'mkd'] extensions = ['codehilite', 'extra'] def read(self, filename): @@ -128,7 +128,7 @@ class MarkdownReader(Reader): class HtmlReader(Reader): - extension = ['html', 'htm'] + file_extensions = ['html', 'htm'] _re = re.compile('\<\!\-\-\#\s?[A-z0-9_-]*\s?\:s?[A-z0-9\s_-]*\s?\-\-\>') def read(self, filename): @@ -147,7 +147,7 @@ class HtmlReader(Reader): _EXTENSIONS = {} for cls in Reader.__subclasses__(): - for ext in cls.extension: + for ext in cls.file_extensions: _EXTENSIONS[ext] = cls From ec610537be79c90ad6482a8a7372afaa978e539e Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 1 May 2012 23:19:38 -0400 Subject: [PATCH 7/8] Added test for markdown files using extension md and mkd. Tests ensure the correct reader is processing file. --- tests/content/article_with_md_extension.md | 7 +++++++ tests/content/article_with_mkd_extension.mkd | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/content/article_with_md_extension.md create mode 100644 tests/content/article_with_mkd_extension.mkd diff --git a/tests/content/article_with_md_extension.md b/tests/content/article_with_md_extension.md new file mode 100644 index 00000000..1fb052aa --- /dev/null +++ b/tests/content/article_with_md_extension.md @@ -0,0 +1,7 @@ +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..593f6721 --- /dev/null +++ b/tests/content/article_with_mkd_extension.mkd @@ -0,0 +1,7 @@ +Test Markdown File Header +========================= + +Used for pelican test +--------------------- + +This is another markdown test file. Uses the mkd extension. From 3c987d20b1de7b00f2dad8f5d71c11273c7aa89a Mon Sep 17 00:00:00 2001 From: Matt Bowcock Date: Tue, 1 May 2012 23:30:23 -0400 Subject: [PATCH 8/8] Added some metadata to new test files --- tests/content/article_with_md_extension.md | 3 +++ tests/content/article_with_mkd_extension.mkd | 3 +++ tests/test_readers.py | 22 ++++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/tests/content/article_with_md_extension.md b/tests/content/article_with_md_extension.md index 1fb052aa..11aa22a2 100644 --- a/tests/content/article_with_md_extension.md +++ b/tests/content/article_with_md_extension.md @@ -1,3 +1,6 @@ +title: Test md File +category: test + Test Markdown File Header ========================= diff --git a/tests/content/article_with_mkd_extension.mkd b/tests/content/article_with_mkd_extension.mkd index 593f6721..c946cb87 100644 --- a/tests/content/article_with_mkd_extension.mkd +++ b/tests/content/article_with_mkd_extension.mkd @@ -1,3 +1,6 @@ +title: Test mkd File +category: test + Test Markdown File Header ========================= 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 = "

Test Markdown File Header

\n"\ + "

Used for pelican test

\n"\ + "

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 = "

Test Markdown File Header

\n"\ + "

Used for pelican test

\n"\ + "

This is another markdown test file. Uses the mkd extension.

" + + self.assertEqual(content, expected)