diff --git a/pelican/readers.py b/pelican/readers.py index 9ce3e3c0..e3d0e0dd 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -190,6 +190,8 @@ class HTMLReader(Reader): def handle_comment(self, data): if self._in_body and data.strip() == 'PELICAN_END_SUMMARY': self.metadata['summary'] = self._data_buffer + else: + self._data_buffer += ''.format(data) def handle_data(self, data): self._data_buffer += data diff --git a/tests/content/article_with_comments.html b/tests/content/article_with_comments.html new file mode 100644 index 00000000..f222682d --- /dev/null +++ b/tests/content/article_with_comments.html @@ -0,0 +1,7 @@ + + + Summary comment is not included. + + + + diff --git a/tests/test_readers.py b/tests/test_readers.py index 52887068..b3e30bfc 100644 --- a/tests/test_readers.py +++ b/tests/test_readers.py @@ -88,6 +88,33 @@ class MdReaderTest(unittest.TestCase): self.assertEqual(content, expected) class HTMLReaderTest(unittest.TestCase): + def test_article_with_comments(self): + reader = readers.HTMLReader({}) + content, metadata = reader.read(_filename('article_with_comments.html')) + expected = { + 'summary': ''' + Summary comment is not included. + ''', + } + + for key, value in expected.items(): + self.assertEquals(value, metadata[key], key) + + self.assertEquals(''' + Summary comment is not included. + + + ''', content) + + def test_article_with_keywords(self): + reader = readers.HTMLReader({}) + content, metadata = reader.read(_filename('article_with_keywords.html')) + expected = { + 'tags': ['foo', 'bar', 'foobar'], + } + + for key, value in expected.items(): + self.assertEquals(value, metadata[key], key) def test_article_with_metadata(self): reader = readers.HTMLReader({}) @@ -108,15 +135,6 @@ class HTMLReaderTest(unittest.TestCase): for key, value in expected.items(): self.assertEquals(value, metadata[key], key) - def test_article_with_keywords(self): - reader = readers.HTMLReader({}) - content, metadata = reader.read(_filename('article_with_keywords.html')) - expected = { - 'tags': ['foo', 'bar', 'foobar'], - } - - for key, value in expected.items(): - self.assertEquals(value, metadata[key], key) def test_article_metadata_key_lowercase(self): """Keys of metadata should be lowercase."""