From c77f84fd6093f03c9b7336c4d6c68d0fdb257d4f Mon Sep 17 00:00:00 2001 From: sgithuber <85906966+sgithuber@users.noreply.github.com> Date: Tue, 15 Jun 2021 19:34:19 +0900 Subject: [PATCH] Delete pelican/tests directory --- pelican/tests/TestPages/bad_page.rst | 8 - pelican/tests/TestPages/draft_page.rst | 8 - .../tests/TestPages/draft_page_markdown.md | 12 - .../TestPages/draft_page_with_template.rst | 11 - pelican/tests/TestPages/hidden_page.rst | 8 - .../tests/TestPages/hidden_page_markdown.md | 12 - .../TestPages/hidden_page_with_template.rst | 11 - pelican/tests/TestPages/page.rst | 4 - pelican/tests/TestPages/page_markdown.md | 9 - .../TestPages/page_used_for_sorting_test.rst | 6 - .../page_with_category_and_tag_links.md | 7 - .../tests/TestPages/page_with_static_links.md | 7 - .../tests/TestPages/page_with_template.rst | 8 - pelican/tests/__init__.py | 15 - ...2012-11-29_rst_w_filename_meta#foo-bar.rst | 6 - .../2012-11-30_md_w_filename_meta#foo-bar.md | 6 - .../TestCategory/article_with_category.rst | 7 - .../TestCategory/article_without_category.rst | 4 - pelican/tests/content/article.rst | 6 - pelican/tests/content/article_draft.md | 5 - pelican/tests/content/article_hidden.md | 5 - ...h_attributes_containing_double_quotes.html | 11 - .../article_with_capitalized_metadata.rst | 16 - .../tests/content/article_with_code_block.rst | 15 - .../tests/content/article_with_comments.html | 8 - .../article_with_duplicate_tags_authors.md | 15 - .../content/article_with_inline_svg.html | 17 - .../tests/content/article_with_keywords.html | 6 - .../article_with_markdown_and_footnote.md | 15 - ...ticle_with_markdown_and_nested_metadata.md | 5 - ...icle_with_markdown_and_nonascii_summary.md | 19 - ...ith_markdown_and_summary_metadata_multi.md | 10 - ...th_markdown_and_summary_metadata_single.md | 5 - .../article_with_markdown_extension.markdown | 10 - ...article_with_markdown_markup_extensions.md | 8 - .../content/article_with_md_extension.md | 14 - .../article_with_mdown_extension.mdown | 10 - .../tests/content/article_with_metadata.html | 15 - .../tests/content/article_with_metadata.rst | 16 - .../article_with_metadata.unknownextension | 12 - .../article_with_metadata_and_contents.html | 15 - ...adata_explicit_date_implicit_modified.html | 15 - .../article_with_metadata_explicit_dates.html | 16 - ...adata_implicit_date_explicit_modified.html | 15 - .../article_with_metadata_implicit_dates.html | 14 - .../content/article_with_mkd_extension.mkd | 10 - .../article_with_multiple_authors.html | 6 - .../content/article_with_multiple_authors.rst | 6 - .../article_with_multiple_authors_list.rst | 10 - ...rticle_with_multiple_authors_semicolon.rst | 6 - .../article_with_multiple_metadata_tags.html | 11 - .../article_with_nonconformant_meta_tags.html | 12 - .../content/article_with_null_attributes.html | 8 - .../tests/content/article_with_template.rst | 8 - .../content/article_with_typogrify_dashes.md | 3 - .../content/article_with_typogrify_dashes.rst | 4 - .../article_with_uppercase_metadata.html | 6 - .../article_with_uppercase_metadata.rst | 6 - .../content/article_without_category.rst | 6 - pelican/tests/content/bad_extension.mmd | 3 - pelican/tests/content/bloggerexport.xml | 1067 -------------- pelican/tests/content/empty.md | 0 pelican/tests/content/empty_with_bom.md | 1 - .../tests/content/wordpress_content_decoded | 48 - .../tests/content/wordpress_content_encoded | 55 - pelican/tests/content/wordpressexport.xml | 957 ------------- .../cyclic_intersite_links/first-article.rst | 7 - .../cyclic_intersite_links/second-article.rst | 7 - .../cyclic_intersite_links/third-article.rst | 7 - pelican/tests/default_conf.py | 44 - .../pelican/plugins/ns_plugin/__init__.py | 5 - .../normal_plugin/normal_plugin/__init__.py | 5 - .../normal_plugin/normal_plugin/submodule.py | 2 - .../normal_submodule_plugin/__init__.py | 0 .../subpackage/__init__.py | 0 .../subpackage/subpackage.py | 2 - .../normal_submodule_plugin/subplugin.py | 2 - pelican/tests/mixed_content/fake_image.jpg | 0 pelican/tests/mixed_content/short_page.md | 3 - .../subdir/subdir_fake_image.jpg | 0 .../tests/nested_content/maindir/maindir.md | 3 - .../nested_content/maindir/subdir/subdir.md | 3 - .../basic/a-markdown-powered-article.html | 67 - pelican/tests/output/basic/archives.html | 69 - pelican/tests/output/basic/article-1.html | 66 - pelican/tests/output/basic/article-2.html | 66 - pelican/tests/output/basic/article-3.html | 66 - .../output/basic/author/alexis-metaireau.html | 111 -- pelican/tests/output/basic/authors.html | 51 - pelican/tests/output/basic/categories.html | 50 - pelican/tests/output/basic/category/bar.html | 67 - pelican/tests/output/basic/category/cat1.html | 124 -- pelican/tests/output/basic/category/misc.html | 135 -- pelican/tests/output/basic/category/yeah.html | 75 - .../drafts/a-draft-article-without-date.html | 67 - .../output/basic/drafts/a-draft-article.html | 67 - .../basic/feeds/alexis-metaireau.atom.xml | 22 - .../basic/feeds/alexis-metaireau.rss.xml | 10 - .../tests/output/basic/feeds/all-en.atom.xml | 74 - .../tests/output/basic/feeds/all-fr.atom.xml | 4 - pelican/tests/output/basic/feeds/all.atom.xml | 76 - pelican/tests/output/basic/feeds/bar.atom.xml | 8 - .../tests/output/basic/feeds/cat1.atom.xml | 7 - .../tests/output/basic/feeds/misc.atom.xml | 49 - .../tests/output/basic/feeds/yeah.atom.xml | 16 - .../basic/filename_metadata-example.html | 66 - pelican/tests/output/basic/index.html | 274 ---- pelican/tests/output/basic/oh-yeah-fr.html | 70 - pelican/tests/output/basic/oh-yeah.html | 78 -- .../tests/output/basic/override/index.html | 50 - .../pages/this-is-a-test-hidden-page.html | 50 - .../basic/pages/this-is-a-test-page.html | 51 - .../tests/output/basic/pictures/Fat_Cat.jpg | Bin 62675 -> 0 bytes pelican/tests/output/basic/pictures/Sushi.jpg | Bin 28992 -> 0 bytes .../output/basic/pictures/Sushi_Macro.jpg | Bin 38594 -> 0 bytes .../tests/output/basic/second-article-fr.html | 70 - .../tests/output/basic/second-article.html | 70 - pelican/tests/output/basic/tag/bar.html | 123 -- pelican/tests/output/basic/tag/baz.html | 66 - pelican/tests/output/basic/tag/foo.html | 93 -- pelican/tests/output/basic/tag/foobar.html | 75 - pelican/tests/output/basic/tag/oh.html | 49 - pelican/tests/output/basic/tag/yeah.html | 67 - pelican/tests/output/basic/tags.html | 56 - .../tests/output/basic/theme/css/fonts.css | 12 - pelican/tests/output/basic/theme/css/main.css | 466 ------ .../tests/output/basic/theme/css/pygment.css | 205 --- .../tests/output/basic/theme/css/reset.css | 52 - .../output/basic/theme/css/typogrify.css | 3 - pelican/tests/output/basic/theme/css/wide.css | 48 - .../theme/fonts/Yanone_Kaffeesatz_400.eot | Bin 20932 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.svg | 407 ------ .../theme/fonts/Yanone_Kaffeesatz_400.ttf | Bin 39168 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.woff | Bin 22256 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.woff2 | Bin 18320 -> 0 bytes .../tests/output/basic/theme/fonts/font.css | 12 - .../basic/theme/images/icons/aboutme.png | Bin 411 -> 0 bytes .../basic/theme/images/icons/bitbucket.png | Bin 3178 -> 0 bytes .../basic/theme/images/icons/delicious.png | Bin 827 -> 0 bytes .../basic/theme/images/icons/facebook.png | Bin 150 -> 0 bytes .../basic/theme/images/icons/github.png | Bin 606 -> 0 bytes .../basic/theme/images/icons/gitorious.png | Bin 223 -> 0 bytes .../basic/theme/images/icons/gittip.png | Bin 402 -> 0 bytes .../theme/images/icons/google-groups.png | Bin 420 -> 0 bytes .../basic/theme/images/icons/google-plus.png | Bin 511 -> 0 bytes .../basic/theme/images/icons/hackernews.png | Bin 2771 -> 0 bytes .../basic/theme/images/icons/lastfm.png | Bin 840 -> 0 bytes .../basic/theme/images/icons/linkedin.png | Bin 625 -> 0 bytes .../basic/theme/images/icons/reddit.png | Bin 458 -> 0 bytes .../output/basic/theme/images/icons/rss.png | Bin 751 -> 0 bytes .../basic/theme/images/icons/slideshare.png | Bin 435 -> 0 bytes .../basic/theme/images/icons/speakerdeck.png | Bin 580 -> 0 bytes .../theme/images/icons/stackoverflow.png | Bin 414 -> 0 bytes .../basic/theme/images/icons/twitter.png | Bin 416 -> 0 bytes .../output/basic/theme/images/icons/vimeo.png | Bin 349 -> 0 bytes .../basic/theme/images/icons/youtube.png | Bin 316 -> 0 bytes .../output/basic/this-is-a-super-article.html | 84 -- pelican/tests/output/basic/unbelievable.html | 98 -- .../custom/a-markdown-powered-article.html | 113 -- pelican/tests/output/custom/archives.html | 97 -- pelican/tests/output/custom/article-1.html | 112 -- pelican/tests/output/custom/article-2.html | 112 -- pelican/tests/output/custom/article-3.html | 112 -- .../custom/author/alexis-metaireau.html | 171 --- .../custom/author/alexis-metaireau2.html | 186 --- .../custom/author/alexis-metaireau3.html | 136 -- pelican/tests/output/custom/authors.html | 79 -- pelican/tests/output/custom/categories.html | 78 -- pelican/tests/output/custom/category/bar.html | 95 -- .../tests/output/custom/category/cat1.html | 164 --- .../tests/output/custom/category/misc.html | 175 --- .../tests/output/custom/category/yeah.html | 103 -- .../drafts/a-draft-article-without-date.html | 98 -- .../output/custom/drafts/a-draft-article.html | 98 -- .../custom/feeds/alexis-metaireau.atom.xml | 74 - .../custom/feeds/alexis-metaireau.rss.xml | 29 - .../tests/output/custom/feeds/all-en.atom.xml | 74 - .../tests/output/custom/feeds/all-fr.atom.xml | 4 - .../tests/output/custom/feeds/all.atom.xml | 76 - pelican/tests/output/custom/feeds/all.rss.xml | 31 - .../tests/output/custom/feeds/bar.atom.xml | 8 - pelican/tests/output/custom/feeds/bar.rss.xml | 8 - .../tests/output/custom/feeds/cat1.atom.xml | 7 - .../tests/output/custom/feeds/cat1.rss.xml | 7 - .../tests/output/custom/feeds/misc.atom.xml | 49 - .../tests/output/custom/feeds/misc.rss.xml | 16 - .../tests/output/custom/feeds/yeah.atom.xml | 16 - .../tests/output/custom/feeds/yeah.rss.xml | 4 - .../custom/filename_metadata-example.html | 112 -- pelican/tests/output/custom/index.html | 171 --- pelican/tests/output/custom/index2.html | 186 --- pelican/tests/output/custom/index3.html | 136 -- .../tests/output/custom/jinja2_template.html | 74 - pelican/tests/output/custom/oh-yeah-fr.html | 116 -- pelican/tests/output/custom/oh-yeah.html | 121 -- .../tests/output/custom/override/index.html | 78 -- .../pages/this-is-a-test-hidden-page.html | 78 -- .../custom/pages/this-is-a-test-page.html | 79 -- .../tests/output/custom/pictures/Fat_Cat.jpg | Bin 62675 -> 0 bytes .../tests/output/custom/pictures/Sushi.jpg | Bin 28992 -> 0 bytes .../output/custom/pictures/Sushi_Macro.jpg | Bin 38594 -> 0 bytes pelican/tests/output/custom/robots.txt | 2 - .../output/custom/second-article-fr.html | 116 -- .../tests/output/custom/second-article.html | 116 -- pelican/tests/output/custom/tag/bar.html | 154 -- pelican/tests/output/custom/tag/baz.html | 112 -- pelican/tests/output/custom/tag/foo.html | 124 -- pelican/tests/output/custom/tag/foobar.html | 103 -- pelican/tests/output/custom/tag/oh.html | 77 - pelican/tests/output/custom/tag/yeah.html | 95 -- pelican/tests/output/custom/tags.html | 84 -- .../tests/output/custom/theme/css/fonts.css | 12 - .../tests/output/custom/theme/css/main.css | 466 ------ .../tests/output/custom/theme/css/pygment.css | 205 --- .../tests/output/custom/theme/css/reset.css | 52 - .../output/custom/theme/css/typogrify.css | 3 - .../tests/output/custom/theme/css/wide.css | 48 - .../theme/fonts/Yanone_Kaffeesatz_400.eot | Bin 20932 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.svg | 407 ------ .../theme/fonts/Yanone_Kaffeesatz_400.ttf | Bin 39168 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.woff | Bin 22256 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.woff2 | Bin 18320 -> 0 bytes .../tests/output/custom/theme/fonts/font.css | 12 - .../custom/theme/images/icons/aboutme.png | Bin 411 -> 0 bytes .../custom/theme/images/icons/bitbucket.png | Bin 3178 -> 0 bytes .../custom/theme/images/icons/delicious.png | Bin 827 -> 0 bytes .../custom/theme/images/icons/facebook.png | Bin 150 -> 0 bytes .../custom/theme/images/icons/github.png | Bin 606 -> 0 bytes .../custom/theme/images/icons/gitorious.png | Bin 223 -> 0 bytes .../custom/theme/images/icons/gittip.png | Bin 402 -> 0 bytes .../theme/images/icons/google-groups.png | Bin 420 -> 0 bytes .../custom/theme/images/icons/google-plus.png | Bin 511 -> 0 bytes .../custom/theme/images/icons/hackernews.png | Bin 2771 -> 0 bytes .../custom/theme/images/icons/lastfm.png | Bin 840 -> 0 bytes .../custom/theme/images/icons/linkedin.png | Bin 625 -> 0 bytes .../custom/theme/images/icons/reddit.png | Bin 458 -> 0 bytes .../output/custom/theme/images/icons/rss.png | Bin 751 -> 0 bytes .../custom/theme/images/icons/slideshare.png | Bin 435 -> 0 bytes .../custom/theme/images/icons/speakerdeck.png | Bin 580 -> 0 bytes .../theme/images/icons/stackoverflow.png | Bin 414 -> 0 bytes .../custom/theme/images/icons/twitter.png | Bin 416 -> 0 bytes .../custom/theme/images/icons/vimeo.png | Bin 349 -> 0 bytes .../custom/theme/images/icons/youtube.png | Bin 316 -> 0 bytes .../custom/this-is-a-super-article.html | 127 -- pelican/tests/output/custom/unbelievable.html | 144 -- .../tests/output/custom_locale/archives.html | 97 -- .../author/alexis-metaireau.html | 171 --- .../author/alexis-metaireau2.html | 186 --- .../author/alexis-metaireau3.html | 136 -- .../tests/output/custom_locale/authors.html | 79 -- .../output/custom_locale/categories.html | 78 -- .../output/custom_locale/category/bar.html | 95 -- .../output/custom_locale/category/cat1.html | 164 --- .../output/custom_locale/category/misc.html | 175 --- .../output/custom_locale/category/yeah.html | 103 -- .../drafts/a-draft-article-without-date.html | 98 -- .../custom_locale/drafts/a-draft-article.html | 98 -- .../feeds/alexis-metaireau.atom.xml | 74 - .../feeds/alexis-metaireau.rss.xml | 29 - .../custom_locale/feeds/all-en.atom.xml | 74 - .../custom_locale/feeds/all-fr.atom.xml | 4 - .../output/custom_locale/feeds/all.atom.xml | 76 - .../output/custom_locale/feeds/all.rss.xml | 31 - .../output/custom_locale/feeds/bar.atom.xml | 8 - .../output/custom_locale/feeds/bar.rss.xml | 8 - .../output/custom_locale/feeds/cat1.atom.xml | 7 - .../output/custom_locale/feeds/cat1.rss.xml | 7 - .../output/custom_locale/feeds/misc.atom.xml | 49 - .../output/custom_locale/feeds/misc.rss.xml | 16 - .../output/custom_locale/feeds/yeah.atom.xml | 16 - .../output/custom_locale/feeds/yeah.rss.xml | 4 - pelican/tests/output/custom_locale/index.html | 171 --- .../tests/output/custom_locale/index2.html | 186 --- .../tests/output/custom_locale/index3.html | 136 -- .../output/custom_locale/jinja2_template.html | 74 - .../output/custom_locale/oh-yeah-fr.html | 116 -- .../output/custom_locale/override/index.html | 78 -- .../pages/this-is-a-test-hidden-page.html | 78 -- .../pages/this-is-a-test-page.html | 79 -- .../output/custom_locale/pictures/Fat_Cat.jpg | Bin 62675 -> 0 bytes .../output/custom_locale/pictures/Sushi.jpg | Bin 28992 -> 0 bytes .../custom_locale/pictures/Sushi_Macro.jpg | Bin 38594 -> 0 bytes .../02/this-is-a-super-article/index.html | 127 -- .../2010/octobre/15/unbelievable/index.html | 144 -- .../posts/2010/octobre/20/oh-yeah/index.html | 121 -- .../20/a-markdown-powered-article/index.html | 113 -- .../2011/février/17/article-1/index.html | 112 -- .../2011/février/17/article-2/index.html | 112 -- .../2011/février/17/article-3/index.html | 112 -- .../2012/février/29/second-article/index.html | 116 -- .../30/filename_metadata-example/index.html | 112 -- pelican/tests/output/custom_locale/robots.txt | 2 - .../custom_locale/second-article-fr.html | 116 -- .../tests/output/custom_locale/tag/bar.html | 154 -- .../tests/output/custom_locale/tag/baz.html | 112 -- .../tests/output/custom_locale/tag/foo.html | 124 -- .../output/custom_locale/tag/foobar.html | 103 -- .../tests/output/custom_locale/tag/oh.html | 77 - .../tests/output/custom_locale/tag/yeah.html | 95 -- pelican/tests/output/custom_locale/tags.html | 84 -- .../output/custom_locale/theme/css/fonts.css | 12 - .../output/custom_locale/theme/css/main.css | 466 ------ .../custom_locale/theme/css/pygment.css | 205 --- .../output/custom_locale/theme/css/reset.css | 52 - .../custom_locale/theme/css/typogrify.css | 3 - .../output/custom_locale/theme/css/wide.css | 48 - .../theme/fonts/Yanone_Kaffeesatz_400.eot | Bin 20932 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.svg | 407 ------ .../theme/fonts/Yanone_Kaffeesatz_400.ttf | Bin 39168 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.woff | Bin 22256 -> 0 bytes .../theme/fonts/Yanone_Kaffeesatz_400.woff2 | Bin 18320 -> 0 bytes .../output/custom_locale/theme/fonts/font.css | 12 - .../theme/images/icons/aboutme.png | Bin 411 -> 0 bytes .../theme/images/icons/bitbucket.png | Bin 3178 -> 0 bytes .../theme/images/icons/delicious.png | Bin 827 -> 0 bytes .../theme/images/icons/facebook.png | Bin 150 -> 0 bytes .../theme/images/icons/github.png | Bin 606 -> 0 bytes .../theme/images/icons/gitorious.png | Bin 223 -> 0 bytes .../theme/images/icons/gittip.png | Bin 402 -> 0 bytes .../theme/images/icons/google-groups.png | Bin 420 -> 0 bytes .../theme/images/icons/google-plus.png | Bin 511 -> 0 bytes .../theme/images/icons/hackernews.png | Bin 2771 -> 0 bytes .../theme/images/icons/lastfm.png | Bin 840 -> 0 bytes .../theme/images/icons/linkedin.png | Bin 625 -> 0 bytes .../theme/images/icons/reddit.png | Bin 458 -> 0 bytes .../custom_locale/theme/images/icons/rss.png | Bin 751 -> 0 bytes .../theme/images/icons/slideshare.png | Bin 435 -> 0 bytes .../theme/images/icons/speakerdeck.png | Bin 580 -> 0 bytes .../theme/images/icons/stackoverflow.png | Bin 414 -> 0 bytes .../theme/images/icons/twitter.png | Bin 416 -> 0 bytes .../theme/images/icons/vimeo.png | Bin 349 -> 0 bytes .../theme/images/icons/youtube.png | Bin 316 -> 0 bytes pelican/tests/parse_error/parse_error.rst | 4 - pelican/tests/support.py | 238 ---- pelican/tests/test_cache.py | 279 ---- pelican/tests/test_contents.py | 1038 -------------- pelican/tests/test_generators.py | 1244 ----------------- pelican/tests/test_importer.py | 453 ------ pelican/tests/test_log.py | 132 -- pelican/tests/test_paginator.py | 104 -- pelican/tests/test_pelican.py | 267 ---- pelican/tests/test_plugins.py | 191 --- pelican/tests/test_readers.py | 902 ------------ pelican/tests/test_rstdirectives.py | 31 - pelican/tests/test_server.py | 56 - pelican/tests/test_settings.py | 321 ----- pelican/tests/test_testsuite.py | 10 - pelican/tests/test_urlwrappers.py | 85 -- pelican/tests/test_utils.py | 833 ----------- .../tests/theme_overrides/level1/article.html | 4 - .../tests/theme_overrides/level2/article.html | 4 - .../tests/theme_overrides/level2/authors.html | 4 - 352 files changed, 24916 deletions(-) delete mode 100644 pelican/tests/TestPages/bad_page.rst delete mode 100644 pelican/tests/TestPages/draft_page.rst delete mode 100644 pelican/tests/TestPages/draft_page_markdown.md delete mode 100644 pelican/tests/TestPages/draft_page_with_template.rst delete mode 100644 pelican/tests/TestPages/hidden_page.rst delete mode 100644 pelican/tests/TestPages/hidden_page_markdown.md delete mode 100644 pelican/tests/TestPages/hidden_page_with_template.rst delete mode 100644 pelican/tests/TestPages/page.rst delete mode 100644 pelican/tests/TestPages/page_markdown.md delete mode 100644 pelican/tests/TestPages/page_used_for_sorting_test.rst delete mode 100644 pelican/tests/TestPages/page_with_category_and_tag_links.md delete mode 100644 pelican/tests/TestPages/page_with_static_links.md delete mode 100644 pelican/tests/TestPages/page_with_template.rst delete mode 100644 pelican/tests/__init__.py delete mode 100644 pelican/tests/content/2012-11-29_rst_w_filename_meta#foo-bar.rst delete mode 100644 pelican/tests/content/2012-11-30_md_w_filename_meta#foo-bar.md delete mode 100644 pelican/tests/content/TestCategory/article_with_category.rst delete mode 100644 pelican/tests/content/TestCategory/article_without_category.rst delete mode 100644 pelican/tests/content/article.rst delete mode 100644 pelican/tests/content/article_draft.md delete mode 100644 pelican/tests/content/article_hidden.md delete mode 100644 pelican/tests/content/article_with_attributes_containing_double_quotes.html delete mode 100644 pelican/tests/content/article_with_capitalized_metadata.rst delete mode 100644 pelican/tests/content/article_with_code_block.rst delete mode 100644 pelican/tests/content/article_with_comments.html delete mode 100644 pelican/tests/content/article_with_duplicate_tags_authors.md delete mode 100644 pelican/tests/content/article_with_inline_svg.html delete mode 100644 pelican/tests/content/article_with_keywords.html delete mode 100644 pelican/tests/content/article_with_markdown_and_footnote.md delete mode 100644 pelican/tests/content/article_with_markdown_and_nested_metadata.md delete mode 100644 pelican/tests/content/article_with_markdown_and_nonascii_summary.md delete mode 100644 pelican/tests/content/article_with_markdown_and_summary_metadata_multi.md delete mode 100644 pelican/tests/content/article_with_markdown_and_summary_metadata_single.md delete mode 100644 pelican/tests/content/article_with_markdown_extension.markdown delete mode 100644 pelican/tests/content/article_with_markdown_markup_extensions.md delete mode 100644 pelican/tests/content/article_with_md_extension.md delete mode 100644 pelican/tests/content/article_with_mdown_extension.mdown delete mode 100644 pelican/tests/content/article_with_metadata.html delete mode 100644 pelican/tests/content/article_with_metadata.rst delete mode 100644 pelican/tests/content/article_with_metadata.unknownextension delete mode 100644 pelican/tests/content/article_with_metadata_and_contents.html delete mode 100644 pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html delete mode 100644 pelican/tests/content/article_with_metadata_explicit_dates.html delete mode 100644 pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html delete mode 100644 pelican/tests/content/article_with_metadata_implicit_dates.html delete mode 100644 pelican/tests/content/article_with_mkd_extension.mkd delete mode 100644 pelican/tests/content/article_with_multiple_authors.html delete mode 100644 pelican/tests/content/article_with_multiple_authors.rst delete mode 100644 pelican/tests/content/article_with_multiple_authors_list.rst delete mode 100644 pelican/tests/content/article_with_multiple_authors_semicolon.rst delete mode 100644 pelican/tests/content/article_with_multiple_metadata_tags.html delete mode 100644 pelican/tests/content/article_with_nonconformant_meta_tags.html delete mode 100644 pelican/tests/content/article_with_null_attributes.html delete mode 100644 pelican/tests/content/article_with_template.rst delete mode 100644 pelican/tests/content/article_with_typogrify_dashes.md delete mode 100644 pelican/tests/content/article_with_typogrify_dashes.rst delete mode 100644 pelican/tests/content/article_with_uppercase_metadata.html delete mode 100644 pelican/tests/content/article_with_uppercase_metadata.rst delete mode 100644 pelican/tests/content/article_without_category.rst delete mode 100644 pelican/tests/content/bad_extension.mmd delete mode 100644 pelican/tests/content/bloggerexport.xml delete mode 100644 pelican/tests/content/empty.md delete mode 100644 pelican/tests/content/empty_with_bom.md delete mode 100644 pelican/tests/content/wordpress_content_decoded delete mode 100644 pelican/tests/content/wordpress_content_encoded delete mode 100644 pelican/tests/content/wordpressexport.xml delete mode 100644 pelican/tests/cyclic_intersite_links/first-article.rst delete mode 100644 pelican/tests/cyclic_intersite_links/second-article.rst delete mode 100644 pelican/tests/cyclic_intersite_links/third-article.rst delete mode 100644 pelican/tests/default_conf.py delete mode 100644 pelican/tests/dummy_plugins/namespace_plugin/pelican/plugins/ns_plugin/__init__.py delete mode 100644 pelican/tests/dummy_plugins/normal_plugin/normal_plugin/__init__.py delete mode 100644 pelican/tests/dummy_plugins/normal_plugin/normal_plugin/submodule.py delete mode 100644 pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/__init__.py delete mode 100644 pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/__init__.py delete mode 100644 pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/subpackage.py delete mode 100644 pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subplugin.py delete mode 100644 pelican/tests/mixed_content/fake_image.jpg delete mode 100644 pelican/tests/mixed_content/short_page.md delete mode 100644 pelican/tests/mixed_content/subdir/subdir_fake_image.jpg delete mode 100644 pelican/tests/nested_content/maindir/maindir.md delete mode 100644 pelican/tests/nested_content/maindir/subdir/subdir.md delete mode 100644 pelican/tests/output/basic/a-markdown-powered-article.html delete mode 100644 pelican/tests/output/basic/archives.html delete mode 100644 pelican/tests/output/basic/article-1.html delete mode 100644 pelican/tests/output/basic/article-2.html delete mode 100644 pelican/tests/output/basic/article-3.html delete mode 100644 pelican/tests/output/basic/author/alexis-metaireau.html delete mode 100644 pelican/tests/output/basic/authors.html delete mode 100644 pelican/tests/output/basic/categories.html delete mode 100644 pelican/tests/output/basic/category/bar.html delete mode 100644 pelican/tests/output/basic/category/cat1.html delete mode 100644 pelican/tests/output/basic/category/misc.html delete mode 100644 pelican/tests/output/basic/category/yeah.html delete mode 100644 pelican/tests/output/basic/drafts/a-draft-article-without-date.html delete mode 100644 pelican/tests/output/basic/drafts/a-draft-article.html delete mode 100644 pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml delete mode 100644 pelican/tests/output/basic/feeds/all-en.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/all-fr.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/all.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/bar.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/cat1.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/misc.atom.xml delete mode 100644 pelican/tests/output/basic/feeds/yeah.atom.xml delete mode 100644 pelican/tests/output/basic/filename_metadata-example.html delete mode 100644 pelican/tests/output/basic/index.html delete mode 100644 pelican/tests/output/basic/oh-yeah-fr.html delete mode 100644 pelican/tests/output/basic/oh-yeah.html delete mode 100644 pelican/tests/output/basic/override/index.html delete mode 100644 pelican/tests/output/basic/pages/this-is-a-test-hidden-page.html delete mode 100644 pelican/tests/output/basic/pages/this-is-a-test-page.html delete mode 100644 pelican/tests/output/basic/pictures/Fat_Cat.jpg delete mode 100644 pelican/tests/output/basic/pictures/Sushi.jpg delete mode 100644 pelican/tests/output/basic/pictures/Sushi_Macro.jpg delete mode 100644 pelican/tests/output/basic/second-article-fr.html delete mode 100644 pelican/tests/output/basic/second-article.html delete mode 100644 pelican/tests/output/basic/tag/bar.html delete mode 100644 pelican/tests/output/basic/tag/baz.html delete mode 100644 pelican/tests/output/basic/tag/foo.html delete mode 100644 pelican/tests/output/basic/tag/foobar.html delete mode 100644 pelican/tests/output/basic/tag/oh.html delete mode 100644 pelican/tests/output/basic/tag/yeah.html delete mode 100644 pelican/tests/output/basic/tags.html delete mode 100644 pelican/tests/output/basic/theme/css/fonts.css delete mode 100644 pelican/tests/output/basic/theme/css/main.css delete mode 100644 pelican/tests/output/basic/theme/css/pygment.css delete mode 100644 pelican/tests/output/basic/theme/css/reset.css delete mode 100644 pelican/tests/output/basic/theme/css/typogrify.css delete mode 100644 pelican/tests/output/basic/theme/css/wide.css delete mode 100644 pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.eot delete mode 100644 pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.svg delete mode 100644 pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.ttf delete mode 100644 pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.woff delete mode 100644 pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.woff2 delete mode 100644 pelican/tests/output/basic/theme/fonts/font.css delete mode 100644 pelican/tests/output/basic/theme/images/icons/aboutme.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/bitbucket.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/delicious.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/facebook.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/github.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/gitorious.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/gittip.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/google-groups.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/google-plus.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/hackernews.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/lastfm.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/linkedin.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/reddit.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/rss.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/slideshare.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/speakerdeck.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/stackoverflow.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/twitter.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/vimeo.png delete mode 100644 pelican/tests/output/basic/theme/images/icons/youtube.png delete mode 100644 pelican/tests/output/basic/this-is-a-super-article.html delete mode 100644 pelican/tests/output/basic/unbelievable.html delete mode 100644 pelican/tests/output/custom/a-markdown-powered-article.html delete mode 100644 pelican/tests/output/custom/archives.html delete mode 100644 pelican/tests/output/custom/article-1.html delete mode 100644 pelican/tests/output/custom/article-2.html delete mode 100644 pelican/tests/output/custom/article-3.html delete mode 100644 pelican/tests/output/custom/author/alexis-metaireau.html delete mode 100644 pelican/tests/output/custom/author/alexis-metaireau2.html delete mode 100644 pelican/tests/output/custom/author/alexis-metaireau3.html delete mode 100644 pelican/tests/output/custom/authors.html delete mode 100644 pelican/tests/output/custom/categories.html delete mode 100644 pelican/tests/output/custom/category/bar.html delete mode 100644 pelican/tests/output/custom/category/cat1.html delete mode 100644 pelican/tests/output/custom/category/misc.html delete mode 100644 pelican/tests/output/custom/category/yeah.html delete mode 100644 pelican/tests/output/custom/drafts/a-draft-article-without-date.html delete mode 100644 pelican/tests/output/custom/drafts/a-draft-article.html delete mode 100644 pelican/tests/output/custom/feeds/alexis-metaireau.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/alexis-metaireau.rss.xml delete mode 100644 pelican/tests/output/custom/feeds/all-en.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/all-fr.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/all.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/all.rss.xml delete mode 100644 pelican/tests/output/custom/feeds/bar.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/bar.rss.xml delete mode 100644 pelican/tests/output/custom/feeds/cat1.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/cat1.rss.xml delete mode 100644 pelican/tests/output/custom/feeds/misc.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/misc.rss.xml delete mode 100644 pelican/tests/output/custom/feeds/yeah.atom.xml delete mode 100644 pelican/tests/output/custom/feeds/yeah.rss.xml delete mode 100644 pelican/tests/output/custom/filename_metadata-example.html delete mode 100644 pelican/tests/output/custom/index.html delete mode 100644 pelican/tests/output/custom/index2.html delete mode 100644 pelican/tests/output/custom/index3.html delete mode 100644 pelican/tests/output/custom/jinja2_template.html delete mode 100644 pelican/tests/output/custom/oh-yeah-fr.html delete mode 100644 pelican/tests/output/custom/oh-yeah.html delete mode 100644 pelican/tests/output/custom/override/index.html delete mode 100644 pelican/tests/output/custom/pages/this-is-a-test-hidden-page.html delete mode 100644 pelican/tests/output/custom/pages/this-is-a-test-page.html delete mode 100644 pelican/tests/output/custom/pictures/Fat_Cat.jpg delete mode 100644 pelican/tests/output/custom/pictures/Sushi.jpg delete mode 100644 pelican/tests/output/custom/pictures/Sushi_Macro.jpg delete mode 100644 pelican/tests/output/custom/robots.txt delete mode 100644 pelican/tests/output/custom/second-article-fr.html delete mode 100644 pelican/tests/output/custom/second-article.html delete mode 100644 pelican/tests/output/custom/tag/bar.html delete mode 100644 pelican/tests/output/custom/tag/baz.html delete mode 100644 pelican/tests/output/custom/tag/foo.html delete mode 100644 pelican/tests/output/custom/tag/foobar.html delete mode 100644 pelican/tests/output/custom/tag/oh.html delete mode 100644 pelican/tests/output/custom/tag/yeah.html delete mode 100644 pelican/tests/output/custom/tags.html delete mode 100644 pelican/tests/output/custom/theme/css/fonts.css delete mode 100644 pelican/tests/output/custom/theme/css/main.css delete mode 100644 pelican/tests/output/custom/theme/css/pygment.css delete mode 100644 pelican/tests/output/custom/theme/css/reset.css delete mode 100644 pelican/tests/output/custom/theme/css/typogrify.css delete mode 100644 pelican/tests/output/custom/theme/css/wide.css delete mode 100644 pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.eot delete mode 100644 pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.svg delete mode 100644 pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.ttf delete mode 100644 pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.woff delete mode 100644 pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.woff2 delete mode 100644 pelican/tests/output/custom/theme/fonts/font.css delete mode 100644 pelican/tests/output/custom/theme/images/icons/aboutme.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/bitbucket.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/delicious.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/facebook.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/github.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/gitorious.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/gittip.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/google-groups.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/google-plus.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/hackernews.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/lastfm.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/linkedin.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/reddit.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/rss.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/slideshare.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/speakerdeck.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/stackoverflow.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/twitter.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/vimeo.png delete mode 100644 pelican/tests/output/custom/theme/images/icons/youtube.png delete mode 100644 pelican/tests/output/custom/this-is-a-super-article.html delete mode 100644 pelican/tests/output/custom/unbelievable.html delete mode 100644 pelican/tests/output/custom_locale/archives.html delete mode 100644 pelican/tests/output/custom_locale/author/alexis-metaireau.html delete mode 100644 pelican/tests/output/custom_locale/author/alexis-metaireau2.html delete mode 100644 pelican/tests/output/custom_locale/author/alexis-metaireau3.html delete mode 100644 pelican/tests/output/custom_locale/authors.html delete mode 100644 pelican/tests/output/custom_locale/categories.html delete mode 100644 pelican/tests/output/custom_locale/category/bar.html delete mode 100644 pelican/tests/output/custom_locale/category/cat1.html delete mode 100644 pelican/tests/output/custom_locale/category/misc.html delete mode 100644 pelican/tests/output/custom_locale/category/yeah.html delete mode 100644 pelican/tests/output/custom_locale/drafts/a-draft-article-without-date.html delete mode 100644 pelican/tests/output/custom_locale/drafts/a-draft-article.html delete mode 100644 pelican/tests/output/custom_locale/feeds/alexis-metaireau.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/alexis-metaireau.rss.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/all-en.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/all-fr.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/all.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/all.rss.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/bar.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/bar.rss.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/cat1.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/cat1.rss.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/misc.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/misc.rss.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/yeah.atom.xml delete mode 100644 pelican/tests/output/custom_locale/feeds/yeah.rss.xml delete mode 100644 pelican/tests/output/custom_locale/index.html delete mode 100644 pelican/tests/output/custom_locale/index2.html delete mode 100644 pelican/tests/output/custom_locale/index3.html delete mode 100644 pelican/tests/output/custom_locale/jinja2_template.html delete mode 100644 pelican/tests/output/custom_locale/oh-yeah-fr.html delete mode 100644 pelican/tests/output/custom_locale/override/index.html delete mode 100644 pelican/tests/output/custom_locale/pages/this-is-a-test-hidden-page.html delete mode 100644 pelican/tests/output/custom_locale/pages/this-is-a-test-page.html delete mode 100644 pelican/tests/output/custom_locale/pictures/Fat_Cat.jpg delete mode 100644 pelican/tests/output/custom_locale/pictures/Sushi.jpg delete mode 100644 pelican/tests/output/custom_locale/pictures/Sushi_Macro.jpg delete mode 100644 pelican/tests/output/custom_locale/posts/2010/décembre/02/this-is-a-super-article/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2010/octobre/15/unbelievable/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2011/avril/20/a-markdown-powered-article/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2011/février/17/article-1/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2011/février/17/article-2/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2011/février/17/article-3/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2012/février/29/second-article/index.html delete mode 100644 pelican/tests/output/custom_locale/posts/2012/novembre/30/filename_metadata-example/index.html delete mode 100644 pelican/tests/output/custom_locale/robots.txt delete mode 100644 pelican/tests/output/custom_locale/second-article-fr.html delete mode 100644 pelican/tests/output/custom_locale/tag/bar.html delete mode 100644 pelican/tests/output/custom_locale/tag/baz.html delete mode 100644 pelican/tests/output/custom_locale/tag/foo.html delete mode 100644 pelican/tests/output/custom_locale/tag/foobar.html delete mode 100644 pelican/tests/output/custom_locale/tag/oh.html delete mode 100644 pelican/tests/output/custom_locale/tag/yeah.html delete mode 100644 pelican/tests/output/custom_locale/tags.html delete mode 100644 pelican/tests/output/custom_locale/theme/css/fonts.css delete mode 100644 pelican/tests/output/custom_locale/theme/css/main.css delete mode 100644 pelican/tests/output/custom_locale/theme/css/pygment.css delete mode 100644 pelican/tests/output/custom_locale/theme/css/reset.css delete mode 100644 pelican/tests/output/custom_locale/theme/css/typogrify.css delete mode 100644 pelican/tests/output/custom_locale/theme/css/wide.css delete mode 100644 pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.eot delete mode 100644 pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.svg delete mode 100644 pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.ttf delete mode 100644 pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.woff delete mode 100644 pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.woff2 delete mode 100644 pelican/tests/output/custom_locale/theme/fonts/font.css delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/aboutme.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/bitbucket.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/delicious.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/facebook.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/github.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/gitorious.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/gittip.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/google-groups.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/google-plus.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/hackernews.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/lastfm.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/linkedin.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/reddit.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/rss.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/slideshare.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/speakerdeck.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/stackoverflow.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/twitter.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/vimeo.png delete mode 100644 pelican/tests/output/custom_locale/theme/images/icons/youtube.png delete mode 100644 pelican/tests/parse_error/parse_error.rst delete mode 100644 pelican/tests/support.py delete mode 100644 pelican/tests/test_cache.py delete mode 100644 pelican/tests/test_contents.py delete mode 100644 pelican/tests/test_generators.py delete mode 100644 pelican/tests/test_importer.py delete mode 100644 pelican/tests/test_log.py delete mode 100644 pelican/tests/test_paginator.py delete mode 100644 pelican/tests/test_pelican.py delete mode 100644 pelican/tests/test_plugins.py delete mode 100644 pelican/tests/test_readers.py delete mode 100644 pelican/tests/test_rstdirectives.py delete mode 100644 pelican/tests/test_server.py delete mode 100644 pelican/tests/test_settings.py delete mode 100644 pelican/tests/test_testsuite.py delete mode 100644 pelican/tests/test_urlwrappers.py delete mode 100644 pelican/tests/test_utils.py delete mode 100644 pelican/tests/theme_overrides/level1/article.html delete mode 100644 pelican/tests/theme_overrides/level2/article.html delete mode 100644 pelican/tests/theme_overrides/level2/authors.html diff --git a/pelican/tests/TestPages/bad_page.rst b/pelican/tests/TestPages/bad_page.rst deleted file mode 100644 index bc62948b..00000000 --- a/pelican/tests/TestPages/bad_page.rst +++ /dev/null @@ -1,8 +0,0 @@ -This is a test bad page -####################### - -:status: invalid - -The quick brown fox jumped over the lazy dog's back. - -The status here is invalid, the page should not render. diff --git a/pelican/tests/TestPages/draft_page.rst b/pelican/tests/TestPages/draft_page.rst deleted file mode 100644 index 19ca0646..00000000 --- a/pelican/tests/TestPages/draft_page.rst +++ /dev/null @@ -1,8 +0,0 @@ -This is a test draft page -########################## - -:status: draft - -The quick brown fox . - -This page is a draft. diff --git a/pelican/tests/TestPages/draft_page_markdown.md b/pelican/tests/TestPages/draft_page_markdown.md deleted file mode 100644 index fda71868..00000000 --- a/pelican/tests/TestPages/draft_page_markdown.md +++ /dev/null @@ -1,12 +0,0 @@ -title: This is a markdown test draft page -status: draft - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -The quick brown fox . - -This page is a draft \ No newline at end of file diff --git a/pelican/tests/TestPages/draft_page_with_template.rst b/pelican/tests/TestPages/draft_page_with_template.rst deleted file mode 100644 index 9d46e717..00000000 --- a/pelican/tests/TestPages/draft_page_with_template.rst +++ /dev/null @@ -1,11 +0,0 @@ -This is a test draft page with a custom template -################################################# - -:status: draft -:template: custom - -The quick brown fox . - -This page is a draft - -This page has a custom template to be called when rendered diff --git a/pelican/tests/TestPages/hidden_page.rst b/pelican/tests/TestPages/hidden_page.rst deleted file mode 100644 index 57ca329c..00000000 --- a/pelican/tests/TestPages/hidden_page.rst +++ /dev/null @@ -1,8 +0,0 @@ -This is a test hidden page -########################## - -:status: hidden - -The quick brown fox jumped over the lazy dog's back. - -This page is hidden diff --git a/pelican/tests/TestPages/hidden_page_markdown.md b/pelican/tests/TestPages/hidden_page_markdown.md deleted file mode 100644 index 1e532fe7..00000000 --- a/pelican/tests/TestPages/hidden_page_markdown.md +++ /dev/null @@ -1,12 +0,0 @@ -title: This is a markdown test hidden page -status: hidden - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -The quick brown fox jumped over the lazy dog's back. - -This page is hidden diff --git a/pelican/tests/TestPages/hidden_page_with_template.rst b/pelican/tests/TestPages/hidden_page_with_template.rst deleted file mode 100644 index 36104a09..00000000 --- a/pelican/tests/TestPages/hidden_page_with_template.rst +++ /dev/null @@ -1,11 +0,0 @@ -This is a test hidden page with a custom template -################################################# - -:status: hidden -:template: custom - -The quick brown fox jumped over the lazy dog's back. - -This page is hidden - -This page has a custom template to be called when rendered diff --git a/pelican/tests/TestPages/page.rst b/pelican/tests/TestPages/page.rst deleted file mode 100644 index 2d13976d..00000000 --- a/pelican/tests/TestPages/page.rst +++ /dev/null @@ -1,4 +0,0 @@ -This is a test page -################### - -The quick brown fox jumped over the lazy dog's back. diff --git a/pelican/tests/TestPages/page_markdown.md b/pelican/tests/TestPages/page_markdown.md deleted file mode 100644 index d5416a6f..00000000 --- a/pelican/tests/TestPages/page_markdown.md +++ /dev/null @@ -1,9 +0,0 @@ -title: This is a markdown test page - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -The quick brown fox jumped over the lazy dog's back. diff --git a/pelican/tests/TestPages/page_used_for_sorting_test.rst b/pelican/tests/TestPages/page_used_for_sorting_test.rst deleted file mode 100644 index 40cdc7ea..00000000 --- a/pelican/tests/TestPages/page_used_for_sorting_test.rst +++ /dev/null @@ -1,6 +0,0 @@ -A Page (Test) for sorting -######################### - -:slug: zzzz - -When using title, should be first. When using slug, should be last. diff --git a/pelican/tests/TestPages/page_with_category_and_tag_links.md b/pelican/tests/TestPages/page_with_category_and_tag_links.md deleted file mode 100644 index 6806a570..00000000 --- a/pelican/tests/TestPages/page_with_category_and_tag_links.md +++ /dev/null @@ -1,7 +0,0 @@ -Title: Page with a bunch of links - -My links: - -[Link 1]({tag}マック) - -[Link 2]({category}Yeah) diff --git a/pelican/tests/TestPages/page_with_static_links.md b/pelican/tests/TestPages/page_with_static_links.md deleted file mode 100644 index 1967cfcf..00000000 --- a/pelican/tests/TestPages/page_with_static_links.md +++ /dev/null @@ -1,7 +0,0 @@ -Title: Page with static links - -My links: - -[Link 0]({static}image0.jpg) - -[Link 1]({attach}image1.jpg) diff --git a/pelican/tests/TestPages/page_with_template.rst b/pelican/tests/TestPages/page_with_template.rst deleted file mode 100644 index 9388dc2f..00000000 --- a/pelican/tests/TestPages/page_with_template.rst +++ /dev/null @@ -1,8 +0,0 @@ -This is a test page with a preset template -########################################## - -:template: custom - -The quick brown fox jumped over the lazy dog's back. - -This article has a custom template to be called when rendered diff --git a/pelican/tests/__init__.py b/pelican/tests/__init__.py deleted file mode 100644 index 4605a02b..00000000 --- a/pelican/tests/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -import logging -import warnings - -from pelican.log import log_warnings - -# redirect warnings modulole to use logging instead -log_warnings() - -# setup warnings to log DeprecationWarning's and error on -# warnings in pelican's codebase -warnings.simplefilter("default", DeprecationWarning) -warnings.filterwarnings("error", ".*", Warning, "pelican") - -# Add a NullHandler to silence warning about no available handlers -logging.getLogger().addHandler(logging.NullHandler()) diff --git a/pelican/tests/content/2012-11-29_rst_w_filename_meta#foo-bar.rst b/pelican/tests/content/2012-11-29_rst_w_filename_meta#foo-bar.rst deleted file mode 100644 index 43f05a15..00000000 --- a/pelican/tests/content/2012-11-29_rst_w_filename_meta#foo-bar.rst +++ /dev/null @@ -1,6 +0,0 @@ - -Rst with filename metadata -########################## - -:category: yeah -:author: Alexis Métaireau diff --git a/pelican/tests/content/2012-11-30_md_w_filename_meta#foo-bar.md b/pelican/tests/content/2012-11-30_md_w_filename_meta#foo-bar.md deleted file mode 100644 index cdccfc8a..00000000 --- a/pelican/tests/content/2012-11-30_md_w_filename_meta#foo-bar.md +++ /dev/null @@ -1,6 +0,0 @@ -category: yeah -author: Alexis Métaireau - -Markdown with filename metadata -=============================== - diff --git a/pelican/tests/content/TestCategory/article_with_category.rst b/pelican/tests/content/TestCategory/article_with_category.rst deleted file mode 100644 index 69ffa98b..00000000 --- a/pelican/tests/content/TestCategory/article_with_category.rst +++ /dev/null @@ -1,7 +0,0 @@ -This is an article with category ! -################################## - -:category: yeah -:date: 1970-01-01 - -This article should be in 'yeah' category. diff --git a/pelican/tests/content/TestCategory/article_without_category.rst b/pelican/tests/content/TestCategory/article_without_category.rst deleted file mode 100644 index 4bc5d78d..00000000 --- a/pelican/tests/content/TestCategory/article_without_category.rst +++ /dev/null @@ -1,4 +0,0 @@ -This is an article without category ! -##################################### - -This article should be in 'TestCategory' category. diff --git a/pelican/tests/content/article.rst b/pelican/tests/content/article.rst deleted file mode 100644 index 793e6869..00000000 --- a/pelican/tests/content/article.rst +++ /dev/null @@ -1,6 +0,0 @@ -Article title -############# - -THIS is some content. With some stuff to "typogrify"... - -Now with added support for :abbr:`TLA (three letter acronym)`. diff --git a/pelican/tests/content/article_draft.md b/pelican/tests/content/article_draft.md deleted file mode 100644 index d2235553..00000000 --- a/pelican/tests/content/article_draft.md +++ /dev/null @@ -1,5 +0,0 @@ -Title: Draft article -Date: 2012-10-31 -Status: draft - -This is some content. diff --git a/pelican/tests/content/article_hidden.md b/pelican/tests/content/article_hidden.md deleted file mode 100644 index d449f701..00000000 --- a/pelican/tests/content/article_hidden.md +++ /dev/null @@ -1,5 +0,0 @@ -Title: Hidden article -Date: 2012-10-31 -Status: hidden - -This is some unlisted content. diff --git a/pelican/tests/content/article_with_attributes_containing_double_quotes.html b/pelican/tests/content/article_with_attributes_containing_double_quotes.html deleted file mode 100644 index 7daa5801..00000000 --- a/pelican/tests/content/article_with_attributes_containing_double_quotes.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Ensure that if an attribute value contains a double quote, it is - surrounded with single quotes, otherwise with double quotes. - Span content - Span content - Span content - - diff --git a/pelican/tests/content/article_with_capitalized_metadata.rst b/pelican/tests/content/article_with_capitalized_metadata.rst deleted file mode 100644 index 93ed5b15..00000000 --- a/pelican/tests/content/article_with_capitalized_metadata.rst +++ /dev/null @@ -1,16 +0,0 @@ - -This is a super article ! -######################### - -:TAGS: foo, bar, foobar -:DATE: 2010-12-02 10:14 -:MODIFIED: 2010-12-02 10:20 -:CATEGORY: yeah -:AUTHOR: Alexis Métaireau -:SUMMARY: - Multi-line metadata should be supported - as well as **inline markup** and stuff to "typogrify"... -:CUSTOM_FIELD: http://notmyidea.org -:CUSTOM_FORMATTED_FIELD: - Multi-line metadata should also be supported - as well as *inline markup* and stuff to "typogrify"... diff --git a/pelican/tests/content/article_with_code_block.rst b/pelican/tests/content/article_with_code_block.rst deleted file mode 100644 index 586878cf..00000000 --- a/pelican/tests/content/article_with_code_block.rst +++ /dev/null @@ -1,15 +0,0 @@ -An Article With Code Block To Test Typogrify Ignore -################################################### - -An article with some code - -.. code-block:: python - - x & y - -A block quote: - - x & y - -Normal: -x & y diff --git a/pelican/tests/content/article_with_comments.html b/pelican/tests/content/article_with_comments.html deleted file mode 100644 index 289e4a66..00000000 --- a/pelican/tests/content/article_with_comments.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Body content - - - diff --git a/pelican/tests/content/article_with_duplicate_tags_authors.md b/pelican/tests/content/article_with_duplicate_tags_authors.md deleted file mode 100644 index 7ab046f9..00000000 --- a/pelican/tests/content/article_with_duplicate_tags_authors.md +++ /dev/null @@ -1,15 +0,0 @@ -Title: Test metadata duplicates -Category: test -Tags: foo, bar, foobar, foo, bar -Authors: Author, First; Author, Second; Author, First -Date: 2010-12-02 10:14 -Modified: 2010-12-02 10:20 -Summary: I have a lot to test - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -The quick brown fox jumped over the lazy dog's back. diff --git a/pelican/tests/content/article_with_inline_svg.html b/pelican/tests/content/article_with_inline_svg.html deleted file mode 100644 index 07f97a8a..00000000 --- a/pelican/tests/content/article_with_inline_svg.html +++ /dev/null @@ -1,17 +0,0 @@ - - - Article with an inline SVG - - - Ensure that the title attribute in an inline svg is not handled as an HTML title. - - - A different title inside the inline SVG - - - - - - - - diff --git a/pelican/tests/content/article_with_keywords.html b/pelican/tests/content/article_with_keywords.html deleted file mode 100644 index 0744c754..00000000 --- a/pelican/tests/content/article_with_keywords.html +++ /dev/null @@ -1,6 +0,0 @@ - - - This is a super article ! - - - diff --git a/pelican/tests/content/article_with_markdown_and_footnote.md b/pelican/tests/content/article_with_markdown_and_footnote.md deleted file mode 100644 index 6fea2d6e..00000000 --- a/pelican/tests/content/article_with_markdown_and_footnote.md +++ /dev/null @@ -1,15 +0,0 @@ -Title: Article with markdown containing footnotes -Date: 2012-10-31 -Modified: 2012-11-01 -Summary: Summary with **inline** markup *should* be supported. -Multiline: Line Metadata should be handle properly. - See syntax of Meta-Data extension of Python Markdown package: - If a line is indented by 4 or more spaces, - that line is assumed to be an additional line of the value - for the previous keyword. - A keyword may have as many lines as desired. - -This is some content[^1] with some footnotes[^footnote] - -[^1]: Numbered footnote -[^footnote]: Named footnote diff --git a/pelican/tests/content/article_with_markdown_and_nested_metadata.md b/pelican/tests/content/article_with_markdown_and_nested_metadata.md deleted file mode 100644 index 3968027b..00000000 --- a/pelican/tests/content/article_with_markdown_and_nested_metadata.md +++ /dev/null @@ -1,5 +0,0 @@ -Title: Article with markdown and nested summary metadata -Date: 2012-10-30 -Summary: Test: This metadata value looks like metadata - -This is some content. diff --git a/pelican/tests/content/article_with_markdown_and_nonascii_summary.md b/pelican/tests/content/article_with_markdown_and_nonascii_summary.md deleted file mode 100644 index d76ed4a1..00000000 --- a/pelican/tests/content/article_with_markdown_and_nonascii_summary.md +++ /dev/null @@ -1,19 +0,0 @@ -Title: マックOS X 10.8でパイソンとVirtualenvをインストールと設定 -Slug: python-virtualenv-on-mac-osx-mountain-lion-10.8 -Date: 2012-12-20 -Modified: 2012-12-22 -Tags: パイソン, マック -Category: 指導書 -Summary: パイソンとVirtualenvをまっくでインストールする方法について明確に説明します。 - -Writing unicode is certainly fun. - -パイソンとVirtualenvをまっくでインストールする方法について明確に説明します。 - -And let's mix languages. - -первый пост - -Now another. - -İlk yazı çok özel değil. diff --git a/pelican/tests/content/article_with_markdown_and_summary_metadata_multi.md b/pelican/tests/content/article_with_markdown_and_summary_metadata_multi.md deleted file mode 100644 index c5f62a0a..00000000 --- a/pelican/tests/content/article_with_markdown_and_summary_metadata_multi.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Article with markdown and summary metadata multi -Date: 2012-10-31 -Summary: - A multi-line summary should be supported - as well as **inline markup**. -custom_formatted_field: - Multi-line metadata should also be supported - as well as *inline markup* and stuff to "typogrify"... - -This is some content. diff --git a/pelican/tests/content/article_with_markdown_and_summary_metadata_single.md b/pelican/tests/content/article_with_markdown_and_summary_metadata_single.md deleted file mode 100644 index a7d6f09b..00000000 --- a/pelican/tests/content/article_with_markdown_and_summary_metadata_single.md +++ /dev/null @@ -1,5 +0,0 @@ -Title: Article with markdown and summary metadata single -Date: 2012-10-30 -Summary: A single-line summary should be supported as well as **inline markup**. - -This is some content. diff --git a/pelican/tests/content/article_with_markdown_extension.markdown b/pelican/tests/content/article_with_markdown_extension.markdown deleted file mode 100644 index 94e92871..00000000 --- a/pelican/tests/content/article_with_markdown_extension.markdown +++ /dev/null @@ -1,10 +0,0 @@ -title: Test markdown File -category: test - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -This is another markdown test file. Uses the markdown extension. diff --git a/pelican/tests/content/article_with_markdown_markup_extensions.md b/pelican/tests/content/article_with_markdown_markup_extensions.md deleted file mode 100644 index 6cf56403..00000000 --- a/pelican/tests/content/article_with_markdown_markup_extensions.md +++ /dev/null @@ -1,8 +0,0 @@ -Title: Test Markdown extensions - -[TOC] - -## Level1 - -### Level2 - diff --git a/pelican/tests/content/article_with_md_extension.md b/pelican/tests/content/article_with_md_extension.md deleted file mode 100644 index 89b6980c..00000000 --- a/pelican/tests/content/article_with_md_extension.md +++ /dev/null @@ -1,14 +0,0 @@ -Title: Test md File -Category: test -Tags: foo, bar, foobar -Date: 2010-12-02 10:14 -Modified: 2010-12-02 10:20 -Summary: I have a lot to test - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -The quick brown fox jumped over the lazy dog's back. diff --git a/pelican/tests/content/article_with_mdown_extension.mdown b/pelican/tests/content/article_with_mdown_extension.mdown deleted file mode 100644 index bdaf74cd..00000000 --- a/pelican/tests/content/article_with_mdown_extension.mdown +++ /dev/null @@ -1,10 +0,0 @@ -title: Test mdown File -category: test - -Test Markdown File Header -========================= - -Used for pelican test ---------------------- - -This is another markdown test file. Uses the mdown extension. diff --git a/pelican/tests/content/article_with_metadata.html b/pelican/tests/content/article_with_metadata.html deleted file mode 100644 index b501ea29..00000000 --- a/pelican/tests/content/article_with_metadata.html +++ /dev/null @@ -1,15 +0,0 @@ - - - This is a super article ! - - - - - - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_metadata.rst b/pelican/tests/content/article_with_metadata.rst deleted file mode 100644 index 5f3d77bc..00000000 --- a/pelican/tests/content/article_with_metadata.rst +++ /dev/null @@ -1,16 +0,0 @@ - -This is a super article ! -######################### - -:tags: foo, bar, foobar -:date: 2010-12-02 10:14 -:modified: 2010-12-02 10:20 -:category: yeah -:author: Alexis Métaireau -:summary: - Multi-line metadata should be supported - as well as **inline markup** and stuff to "typogrify"... -:custom_field: http://notmyidea.org -:custom_formatted_field: - Multi-line metadata should also be supported - as well as *inline markup* and stuff to "typogrify"... diff --git a/pelican/tests/content/article_with_metadata.unknownextension b/pelican/tests/content/article_with_metadata.unknownextension deleted file mode 100644 index d4bac1c0..00000000 --- a/pelican/tests/content/article_with_metadata.unknownextension +++ /dev/null @@ -1,12 +0,0 @@ - -This is a super article ! -######################### - -:tags: foo, bar, foobar -:date: 2010-12-02 10:14 -:category: yeah -:author: Alexis Métaireau -:summary: - Multi-line metadata should be supported - as well as **inline markup**. -:custom_field: http://notmyidea.org diff --git a/pelican/tests/content/article_with_metadata_and_contents.html b/pelican/tests/content/article_with_metadata_and_contents.html deleted file mode 100644 index b108ac8a..00000000 --- a/pelican/tests/content/article_with_metadata_and_contents.html +++ /dev/null @@ -1,15 +0,0 @@ - - - This is a super article ! - - - - - - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html b/pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html deleted file mode 100644 index b501ea29..00000000 --- a/pelican/tests/content/article_with_metadata_explicit_date_implicit_modified.html +++ /dev/null @@ -1,15 +0,0 @@ - - - This is a super article ! - - - - - - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_metadata_explicit_dates.html b/pelican/tests/content/article_with_metadata_explicit_dates.html deleted file mode 100644 index 1c74f40e..00000000 --- a/pelican/tests/content/article_with_metadata_explicit_dates.html +++ /dev/null @@ -1,16 +0,0 @@ - - - This is a super article ! - - - - - - - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html b/pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html deleted file mode 100644 index 8cd2885b..00000000 --- a/pelican/tests/content/article_with_metadata_implicit_date_explicit_modified.html +++ /dev/null @@ -1,15 +0,0 @@ - - - This is a super article ! - - - - - - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_metadata_implicit_dates.html b/pelican/tests/content/article_with_metadata_implicit_dates.html deleted file mode 100644 index 14d7e1e0..00000000 --- a/pelican/tests/content/article_with_metadata_implicit_dates.html +++ /dev/null @@ -1,14 +0,0 @@ - - - This is a super article ! - - - - - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_mkd_extension.mkd b/pelican/tests/content/article_with_mkd_extension.mkd deleted file mode 100644 index c946cb87..00000000 --- a/pelican/tests/content/article_with_mkd_extension.mkd +++ /dev/null @@ -1,10 +0,0 @@ -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/pelican/tests/content/article_with_multiple_authors.html b/pelican/tests/content/article_with_multiple_authors.html deleted file mode 100644 index a74442c9..00000000 --- a/pelican/tests/content/article_with_multiple_authors.html +++ /dev/null @@ -1,6 +0,0 @@ - - - This is an article with multiple authors! - - - diff --git a/pelican/tests/content/article_with_multiple_authors.rst b/pelican/tests/content/article_with_multiple_authors.rst deleted file mode 100644 index 04af017c..00000000 --- a/pelican/tests/content/article_with_multiple_authors.rst +++ /dev/null @@ -1,6 +0,0 @@ -This is an article with multiple authors! -######################################### - -:date: 2014-02-09 02:20 -:modified: 2014-02-09 02:20 -:authors: First Author, Second Author diff --git a/pelican/tests/content/article_with_multiple_authors_list.rst b/pelican/tests/content/article_with_multiple_authors_list.rst deleted file mode 100644 index 7da5fae2..00000000 --- a/pelican/tests/content/article_with_multiple_authors_list.rst +++ /dev/null @@ -1,10 +0,0 @@ -This is an article with multiple authors in list format! -######################################################## - -:date: 2014-02-09 02:20 -:modified: 2014-02-09 02:20 -:authors: - Author, First - - Author, Second - -The author names are in last,first form to verify that -they are not just getting split on commas. diff --git a/pelican/tests/content/article_with_multiple_authors_semicolon.rst b/pelican/tests/content/article_with_multiple_authors_semicolon.rst deleted file mode 100644 index fa76ac4e..00000000 --- a/pelican/tests/content/article_with_multiple_authors_semicolon.rst +++ /dev/null @@ -1,6 +0,0 @@ -This is an article with multiple authors in lastname, firstname format! -####################################################################### - -:date: 2014-02-09 02:20 -:modified: 2014-02-09 02:20 -:authors: Author, First; Author, Second diff --git a/pelican/tests/content/article_with_multiple_metadata_tags.html b/pelican/tests/content/article_with_multiple_metadata_tags.html deleted file mode 100644 index b52fbcf7..00000000 --- a/pelican/tests/content/article_with_multiple_metadata_tags.html +++ /dev/null @@ -1,11 +0,0 @@ - - - Metadata tags as list! - - - - - When custom metadata tags are specified more than once - they are collected into a list! - - diff --git a/pelican/tests/content/article_with_nonconformant_meta_tags.html b/pelican/tests/content/article_with_nonconformant_meta_tags.html deleted file mode 100644 index 5ed44bbd..00000000 --- a/pelican/tests/content/article_with_nonconformant_meta_tags.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - Article with Nonconformant HTML meta tags - - - - Multi-line metadata should be supported - as well as inline markup. - - diff --git a/pelican/tests/content/article_with_null_attributes.html b/pelican/tests/content/article_with_null_attributes.html deleted file mode 100644 index 68da704c..00000000 --- a/pelican/tests/content/article_with_null_attributes.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Ensure that empty attributes are copied properly. - - - diff --git a/pelican/tests/content/article_with_template.rst b/pelican/tests/content/article_with_template.rst deleted file mode 100644 index eb55738c..00000000 --- a/pelican/tests/content/article_with_template.rst +++ /dev/null @@ -1,8 +0,0 @@ -Article with template -##################### - -:template: custom - -This article has a custom template to be called when rendered - -This is some content. With some stuff to "typogrify". diff --git a/pelican/tests/content/article_with_typogrify_dashes.md b/pelican/tests/content/article_with_typogrify_dashes.md deleted file mode 100644 index 2914b2df..00000000 --- a/pelican/tests/content/article_with_typogrify_dashes.md +++ /dev/null @@ -1,3 +0,0 @@ -Title: One -, two --, three --- dashes! - -One: -; Two: --; Three: --- diff --git a/pelican/tests/content/article_with_typogrify_dashes.rst b/pelican/tests/content/article_with_typogrify_dashes.rst deleted file mode 100644 index 90064c5d..00000000 --- a/pelican/tests/content/article_with_typogrify_dashes.rst +++ /dev/null @@ -1,4 +0,0 @@ -One -, two --, three --- dashes! -################################ - -One: -; Two: --; Three: --- diff --git a/pelican/tests/content/article_with_uppercase_metadata.html b/pelican/tests/content/article_with_uppercase_metadata.html deleted file mode 100644 index b4cedf39..00000000 --- a/pelican/tests/content/article_with_uppercase_metadata.html +++ /dev/null @@ -1,6 +0,0 @@ - - - This is a super article ! - - - diff --git a/pelican/tests/content/article_with_uppercase_metadata.rst b/pelican/tests/content/article_with_uppercase_metadata.rst deleted file mode 100644 index e26cdd13..00000000 --- a/pelican/tests/content/article_with_uppercase_metadata.rst +++ /dev/null @@ -1,6 +0,0 @@ - -This is a super article ! -######################### - -:Category: Yeah - diff --git a/pelican/tests/content/article_without_category.rst b/pelican/tests/content/article_without_category.rst deleted file mode 100644 index ff47f6ef..00000000 --- a/pelican/tests/content/article_without_category.rst +++ /dev/null @@ -1,6 +0,0 @@ - -This is an article without category ! -##################################### - -This article should be in the DEFAULT_CATEGORY. - diff --git a/pelican/tests/content/bad_extension.mmd b/pelican/tests/content/bad_extension.mmd deleted file mode 100644 index d282a749..00000000 --- a/pelican/tests/content/bad_extension.mmd +++ /dev/null @@ -1,3 +0,0 @@ -Title: Bad Extension - -This file shouldn't be included because its file extension is `.mmd`. diff --git a/pelican/tests/content/bloggerexport.xml b/pelican/tests/content/bloggerexport.xml deleted file mode 100644 index 4bc0985a..00000000 --- a/pelican/tests/content/bloggerexport.xml +++ /dev/null @@ -1,1067 +0,0 @@ - - - - tag:blogger.com,1999:blog-6303278419262689239.archive - - 2018-08-02T12:38:27.320-07:00 - - Notes of a Young Doctor - - - - - - Mikhail Afanasyevich Bulgakov - - https://www.blogger.com/profile/000082957 - - noreply@blogger.com - - - - Blogger - - - tag:blogger.com,1999:blog-6303278419262689239.layout - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Template: Notes of a Young Doctor - [Over 2000 lines of mostly css that we don't need here.] - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_PUBLISHING_MODE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het type publicatie voor deze blog. - PUBLISH_MODE_BLOGSPOT - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_ADMIN_PERMISSION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De lijst van e-mails van beheerders voor de blog. - mikhail.afanasyevich.bulgakov@gmail.com - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_ADULT_CONTENT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of deze blog content voor volwassenen bevat - false - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_ALTERNATE_JSRENDER_ALLOWED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of alternatieve weergaven in JavaScript zijn toegestaan - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_ANALYTICS_ACCOUNT_NUMBER - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Google Analytics-accountnummer voor een blog - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_ARCHIVE_DATE_FORMAT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het getal van de datumnotatie voor de archiefindex - 9 - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_ARCHIVE_FREQUENCY - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hoe vaak deze blog moet worden gearchiveerd - MONTHLY - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_AUTHOR_PERMISSION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De lijst van e-mails van auteurs die toestemming hebben om te publiceren. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_BACKLINKS_ALLOWED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of reactiebacklinks op de blog moeten worden getoond - false - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_BY_POST_ARCHIVING - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of iedere post moet worden voorzien van een archiefpagina - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_ACCESS - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Wie kan reacties achterlaten - BLOGGERS - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_CAPTCHA - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of personen die reacties geven, een Captcha (woordverificatie) moeten invullen - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_EMAIL - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Lijst met e-mailadressen om meldingen van nieuwe reacties naar te sturen - mikhail.afanasyevich.bulgakov@gmail.com - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_FEED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het type feed dat voor blogreacties moet worden gegeven - FULL - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_FORM_LOCATION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Locatie van formulier voor blogreacties - EMBEDDED_IFRAME - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_MESSAGE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Bericht bij blogreactie - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_MODERATION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of het modereren van reacties moet worden ingeschakeld - DISABLED - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_MODERATION_DELAY - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Aantal dagen waarna nieuwe reacties in aanmerking komen voor moderaten - 14 - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_MODERATION_EMAIL - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - E-mailadres waar meldingen binnenkomen over welke nieuwe reacties bewerkt of verwijderd moeten worden - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENT_PROFILE_IMAGES - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of profielafbeeldingen in reacties moeten worden getoond - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENTS_ALLOWED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of er reacties moeten worden weergegeven - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_COMMENTS_TIME_STAMP_FORMAT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Getal van de tijdstempelnotatie voor reacties - 29 - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_CONVERT_LINE_BREAKS - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of de regelscheidingen moeten worden omgezet in <br />-tags in de posteditor - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_CUSTOM_ADS_TXT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De aangepaste ads.txt-content van de blog die aan advertentiezoekmachines wordt getoond. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_CUSTOM_ADS_TXT_ENABLED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Bepaalt of deze blog aangepaste ads.txt-content aan advertentiezoekmachines toont. - false - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_CUSTOM_PAGE_NOT_FOUND - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De content die wordt weergegeven wanneer een post of pagina niet is gevonden. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_CUSTOM_ROBOTS_TXT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De aangepaste robots.txt-content van de blog wordt aan zoekmachines getoond. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_CUSTOM_ROBOTS_TXT_ENABLED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Bepaalt of deze blog aangepaste robots.txt-content aan zoekmachines toont. - false - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_DATE_FORMAT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het getal van de datumnotatie voor koppen - 26 - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_DEFAULT_BACKLINKS_MODE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Standaardbacklinks voor posts - DEFAULT_HAVE_BACKLINKS - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_DEFAULT_COMMENTS_MODE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Standaardreactie voor posts - DEFAULT_HAVE_COMMENTS - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_DESCRIPTION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Een beschrijving van de blog - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_EMAIL_POST_LINKS - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of er een link moet worden weergegeven waarmee gebruikers posts kunnen e-mailen - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_FEED_REDIRECT_URL - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - URL waar verzoeken om postfeed naartoe worden geleid - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_FLOAT_ALIGNMENT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of zwevende uitlijning is ingeschakeld voor de blog - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_LOCALE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Taal voor deze blog - nl - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_M2B_WHITELIST_EMAIL - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Lijst met e-mailadressen die via e-mail posts op de blog kunnen plaatsen. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_MAX_NUM - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Maximaal aantal items voor weergave op de hoofdpagina" - 100 - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_MAX_UNIT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Eenheid van items voor weergave op de hoofdpagina - POSTS - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_META_DESCRIPTION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De metabeschrijving van de blog die wordt gebruikt door zoekmachines. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_META_DESCRIPTION_ENABLED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Of deze blog wordt weergegeven met metabeschrijvingen. - false - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_NAME - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De naam van de blog - Notes of a Young Doctor - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_PER_POST_FEED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het type feed dat voor reacties op afzonderlijke posts moet worden gegeven - FULL - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_POST_FEED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het type feed dat voor blogposts moet worden gegeven - FULL - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_POST_FEED_FOOTER - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Voettekst om aan het einde van iedere vermelding in de postfeed toe te voegen - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_POST_TEMPLATE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De template voor blogposts - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_PROMOTED - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of deze blog op Blogger kan worden aangeprezen - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_QUICK_EDITING - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of Snel bewerken is ingeschakeld - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_READ_ACCESS_MODE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het type toegang voor de lezers van de blog. - PUBLIC - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_READER_PERMISSION - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De e-maillijst voor gebruikers die toestemming hebben om de blog te lezen. - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_SEARCHABLE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of deze blog door zoekmachines moet worden geïndexeerd - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_SEND_EMAIL - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Door komma's gescheiden lijst met e-mailadressen om nieuwe blogposts naar te sturen - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_SHOW_TITLE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of het titelveld moet worden weergegeven - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_SHOW_URL - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Hier wordt aangegeven of er een verwante link in de postopsteller moet worden weergegeven - false - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_SUBDOMAIN - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het subdomein van BlogSpot om je blog op te publiceren - youngdoctornotes - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_TIME_STAMP_FORMAT - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Het getal van de tijdstempelnotatie - 27 - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_TIME_ZONE - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - De tijdzone voor deze blog - America/Los_Angeles - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.settings.BLOG_USE_LIGHTBOX - 2010-11-27T07:08:20.877-08:00 - 2018-08-02T12:38:27.320-07:00 - - Of afbeeldingen worden weergegeven in de lightbox wanneer erop wordt geklikt - true - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.post-1276418104709695660 - 2010-11-27T08:21:00.000-08:00 - 2018-08-02T12:22:48.286-07:00 - - yes - - - - - Black as Egypt's Night - Write next story here - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - 0 - - - tag:blogger.com,1999:blog-6303278419262689239.post-1858599377741856733 - 2010-11-27T07:12:00.000-08:00 - 2010-11-27T07:56:43.964-08:00 - - The Steel Windpipe - It was a cold Winter's night.<br /><br /><ul><li>Very cold indeed.</li><br /><li>Note to self: pad out ending</li></ul> - - - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - 1 - - - tag:blogger.com,1999:blog-6303278419262689239.page-4386962582497458967 - 2018-08-02T12:38:00.001-07:00 - 2018-08-02T12:38:27.171-07:00 - - yes - - - Test page 2 - <div dir="ltr" style="text-align: left;" trbidi="on">This is a second test</div> - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.page-1406163839769953231 - 2018-08-02T12:37:00.004-07:00 - 2018-08-02T12:37:47.424-07:00 - - Test page - <div dir="ltr" style="text-align: left;" trbidi="on">This is a test.</div> - - - - - Mikhail Afanasyevich Bulgakov - https://www.blogger.com/profile/000082957 - noreply@blogger.com - - - - - tag:blogger.com,1999:blog-6303278419262689239.post-5590533389087749201 - 2010-11-29T12:35:44.027-08:00 - 2010-11-29T12:35:44.027-08:00 - - Mishka, always a pleasure to read your adventures!... - Mishka, always a pleasure to read your adventures!<br /><br />It's a shame you don't get more time for writing. - - - - - Thomas Isidore Noël Sankara - https://www.blogger.com/profile/0617349827 - noreply@blogger.com - - - - - - - \ No newline at end of file diff --git a/pelican/tests/content/empty.md b/pelican/tests/content/empty.md deleted file mode 100644 index e69de29b..00000000 diff --git a/pelican/tests/content/empty_with_bom.md b/pelican/tests/content/empty_with_bom.md deleted file mode 100644 index 5f282702..00000000 --- a/pelican/tests/content/empty_with_bom.md +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/pelican/tests/content/wordpress_content_decoded b/pelican/tests/content/wordpress_content_decoded deleted file mode 100644 index 6e91338c..00000000 --- a/pelican/tests/content/wordpress_content_decoded +++ /dev/null @@ -1,48 +0,0 @@ -

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

-

-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -
-
-  a = [1, 2, 3]
-  b = [4, 5, 6]
-  for i in zip(a, b):
-    print i
-
-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

diff --git a/pelican/tests/content/wordpress_content_encoded b/pelican/tests/content/wordpress_content_encoded deleted file mode 100644 index da35de3b..00000000 --- a/pelican/tests/content/wordpress_content_encoded +++ /dev/null @@ -1,55 +0,0 @@ -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum. - - - -
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum. - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -
- - -
-
-  a = [1, 2, 3]
-  b = [4, 5, 6]
-  for i in zip(a, b):
-    print i
-
-
- -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum. - diff --git a/pelican/tests/content/wordpressexport.xml b/pelican/tests/content/wordpressexport.xml deleted file mode 100644 index 9b194e8f..00000000 --- a/pelican/tests/content/wordpressexport.xml +++ /dev/null @@ -1,957 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Pelican test channel - http://thisisa.test - Not a real feed, just for test - Sun, 13 May 2012 01:13:52 +0000 - en - 1.1 - http://thisisa.test - http://thisisa.test - - 2Bobbob@thisisa.test - 3Jonhjonh@thisisa.test - - 7categ-1 - 11categ-2 - 1uncategorized - 15categ-3 - 25tag-1 - 122tag2 - 68tag-3 - - http://wordpress.org/?v=3.3.1 - - - Empty post - http://thisisa.test/?attachment_id=24 - Sat, 04 Feb 2012 03:17:33 +0000 - bob - https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Pelican_lakes_entrance02.jpg/240px-Pelican_lakes_entrance02.jpg - - - - 24 - 2012-02-04 03:17:33 - 2012-02-04 03:17:33 - open - open - empty-post - inherit - 0 - 0 - attachment - - 0 - https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Pelican_lakes_entrance02.jpg/240px-Pelican_lakes_entrance02.jpg - - _wp_attachment_metadata - - - - _wp_attached_file - - - - _wp_attachment_image_alt - - - - - - http://thisisa.test/?p=168 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=168 - - - - 168 - 2012-02-15 21:23:57 - 0000-00-00 00:00:00 - open - open - - draft - 0 - 0 - post - - 0 - - - _edit_last - - - - - A normal post - http://thisisa.test/?p=174 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=174 - - -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • - - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.]]>
    - - 174 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - - draft - 0 - 0 - post - - 0 - - - _edit_last - - -
    - - Complete draft - http://thisisa.test/?p=176 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=176 - - - - 176 - 2012-02-17 15:11:55 - 0000-00-00 00:00:00 - open - open - - draft - 0 - 0 - post - - 0 - - - _edit_last - - - - - Page - http://thisisa.test/contact/ - Wed, 11 Apr 2012 11:38:08 +0000 - bob - http://thisisa.test/?page_id=334 - - - - 334 - 2012-04-11 06:38:08 - 2012-04-11 11:38:08 - open - open - contact - publish - 0 - 0 - page - - 0 - - sharing_disabled - - - - _wp_page_template - - - - _edit_last - - - - - Empty Page - http://thisisa.test/empty/ - Wed, 11 Apr 2012 11:38:08 +0000 - bob - http://thisisa.test/?page_id=334 - - - - 334 - 2012-04-11 06:38:08 - 2012-04-11 11:38:08 - open - open - empty - publish - 0 - 0 - page - - 0 - - sharing_disabled - - - - _wp_page_template - - - - _edit_last - - - - - Special chars: l'é - http://thisisa.test/?p=471 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=471 - - - - 471 - 2012-04-29 09:44:27 - 0000-00-00 00:00:00 - open - open - - draft - 0 - 0 - post - - 0 - - - _edit_last - - - - - - With excerpt - http://thisisa.test/with-excerpt/ - Sat, 04 Feb 2012 02:03:06 +0000 - bob - http://thisisa.test/?p=8 - - - - 8 - 2012-02-04 02:03:06 - 2012-02-04 02:03:06 - open - open - with-excerpt - publish - 0 - 0 - post - - 0 - - - - - _edit_last - - - - et_bigpost - - - - _thumbnail_id - - - - - With tags - http://thisisa.test/tags/ - Sat, 04 Feb 2012 21:05:25 +0000 - bob - http://thisisa.test/?p=25 - - - - 25 - 2012-02-04 21:05:25 - 2012-02-04 21:05:25 - open - open - with-tags - publish - 0 - 0 - post - - 0 - - - - - - _edit_last - - - - et_bigpost - - - - _thumbnail_id - - - - - With comments - http://thisisa.test/with-comments/ - Wed, 18 Apr 2012 08:36:26 +0000 - john - http://thisisa.test/?p=422 - - - - 422 - 2012-04-18 03:36:26 - 2012-04-18 08:36:26 - open - open - with-comments - publish - 0 - 0 - post - - 0 - - - _edit_last - - - - _thumbnail_id - - - - 116 - - User2@mail.test - - 127.0.0.1 - 2012-05-06 15:46:06 - 2012-05-06 20:46:06 - - 1 - - 0 - 0 - - akismet_result - - - - akismet_history - - - - akismet_as_submitted - - - - - 117 - - bob@thisisa.test - - 127.0.0.1 - 2012-05-06 17:44:06 - 2012-05-06 22:44:06 - - 1 - - 116 - 3 - - akismet_result - - - - akismet_history - - - - akismet_as_submitted - - - - - 156 - - - http://thisisa.test/to-article-you-ping-back/ - 127.0.0.1 - 2012-05-09 19:30:19 - 2012-05-10 00:30:19 - - trash - pingback - 0 - 0 - - akismet_history - - - - _wp_trash_meta_status - - - - _wp_trash_meta_time - - - - - 122 - - bob@thisisa.test - - 127.0.0.1 - 2012-05-07 14:11:34 - 2012-05-07 19:11:34 - - 1 - - 121 - 3 - - akismet_result - - - - akismet_history - - - - akismet_as_submitted - - - - - - Post with raw data - http://thisisa.test/?p=173 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=173 - - Pelicans are scary - -Pelicans are supposed to eat fish, damn it! - - - -Bottom line: don't mess up with birds - -"That's a 'wonderful' shoe." - -“That’s a ‘magic’ sock.”]]> - - 173 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - post-with-raw-data - publish - 0 - 0 - post - - 0 - - - _edit_last - - - - - A normal post with some <html> entities in the title. You can't miss them. - http://thisisa.test/?p=175 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=175 - - -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • - - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.]]>
    - - 175 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - html-entity-test - publish - 0 - 0 - post - - 0 - - - _edit_last - - -
    - - Code in List - http://thisisa.test/?p=175 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=175 - - -
  • List Item One!
  • -
  • List Item Two!
  • -
  • This is a code sample -
    -
    -  a = [1, 2, 3]
    -  b = [4, 5, 6]
    -  for i in zip(a, b):
    -    print i
    -
    -
  • -
  • List Item Four!
  • - - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.]]>
    - - 175 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - code-in-list-test - publish - 0 - 0 - post - - 0 - - - _edit_last - - -
    - - A custom post in category 4 - http://thisisa.test/?p=175 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=175 - - -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • - - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.]]>
    - - 175 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - custpost1cat4 - publish - 0 - 0 - custom1 - - 0 - - - _edit_last - - -
    - - A custom post in category 5 - http://thisisa.test/?p=176 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=176 - - -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • - - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.]]>
    - - 176 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - custpost1cat5 - publish - 0 - 0 - custom1 - - 0 - - - _edit_last - - -
    - - A 2nd custom post type also in category 5 - http://thisisa.test/?p=177 - Thu, 01 Jan 1970 00:00:00 +0000 - bob - http://thisisa.test/?p=177 - - -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • -
  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  • - - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod -tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, -quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo -consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse -cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non -proident, sunt in culpa qui officia deserunt mollit anim id est laborum.]]>
    - - 177 - 2012-02-16 15:52:55 - 0000-00-00 00:00:00 - open - open - custpost2cat5 - publish - 0 - 0 - custom2 - - 0 - - - _edit_last - - -
    - - Attachment with a parent - http://thisisa.test/?attachment_id=24 - Sat, 04 Feb 2012 03:17:33 +0000 - bob - http://thisurlisinvalid.notarealdomain/not_an_image.jpg - - - - 25 - 2012-02-04 03:17:33 - 2012-02-04 03:17:33 - open - open - attachment-with-a-parent - inherit - 8 - 0 - attachment - - 0 - http://thisurlisinvalid.notarealdomain/not_an_image.jpg - - _wp_attachment_metadata - - - - _wp_attached_file - - - - _wp_attachment_image_alt - - - - - 2nd Attachment to same parent - http://thisisa.test/?attachment_id=25 - Sat, 04 Feb 2012 03:17:33 +0000 - bob - http://en.wikipedia.org/wiki/File:Pelikan_Walvis_Bay.jpg - - - - 25 - 2012-02-04 03:17:33 - 2012-02-04 03:17:33 - open - open - 2nd[attachment-to-same-parent - inherit - 8 - 0 - attachment - - 0 - http://en.wikipedia.org/wiki/File:Pelikan_Walvis_Bay.jpg - - _wp_attachment_metadata - - - - _wp_attached_file - - - - _wp_attachment_image_alt - - - - - Attachment with a different parent - http://thisisa.test/?attachment_id=26 - Sat, 04 Feb 2012 03:17:33 +0000 - bob - http://thisurlisinvalid.notarealdomain - - - - 25 - 2012-02-04 03:17:33 - 2012-02-04 03:17:33 - open - open - attachment-with-a-different-parent - inherit - 25 - 0 - attachment - - 0 - http://thisurlisinvalid.notarealdomain - - _wp_attachment_metadata - - - - _wp_attached_file - - - - _wp_attachment_image_alt - - - -
    -
    diff --git a/pelican/tests/cyclic_intersite_links/first-article.rst b/pelican/tests/cyclic_intersite_links/first-article.rst deleted file mode 100644 index b9eb3f93..00000000 --- a/pelican/tests/cyclic_intersite_links/first-article.rst +++ /dev/null @@ -1,7 +0,0 @@ -First article -############# - -:date: 2018-11-10 -:summary: Here's the `second <{filename}/second-article.rst>`_, - `third <{filename}/third-article.rst>`_ and a - `nonexistent article <{filename}/nonexistent.rst>`_. diff --git a/pelican/tests/cyclic_intersite_links/second-article.rst b/pelican/tests/cyclic_intersite_links/second-article.rst deleted file mode 100644 index acb87d47..00000000 --- a/pelican/tests/cyclic_intersite_links/second-article.rst +++ /dev/null @@ -1,7 +0,0 @@ -Second article -############## - -:date: 2018-11-10 -:summary: Here's the `first <{filename}/first-article.rst>`_, - `third <{filename}/third-article.rst>`_ and a - `nonexistent article <{filename}/nonexistent.rst>`_. diff --git a/pelican/tests/cyclic_intersite_links/third-article.rst b/pelican/tests/cyclic_intersite_links/third-article.rst deleted file mode 100644 index 4c7c1b76..00000000 --- a/pelican/tests/cyclic_intersite_links/third-article.rst +++ /dev/null @@ -1,7 +0,0 @@ -Third article -############# - -:date: 2018-11-10 -:summary: Here's the `first <{filename}/first-article.rst>`_, - `second <{filename}/second-article.rst>`_ and a - `nonexistent article <{filename}/nonexistent.rst>`_. diff --git a/pelican/tests/default_conf.py b/pelican/tests/default_conf.py deleted file mode 100644 index 99f3b6cf..00000000 --- a/pelican/tests/default_conf.py +++ /dev/null @@ -1,44 +0,0 @@ -AUTHOR = 'Alexis Métaireau' -SITENAME = "Alexis' log" -SITEURL = 'http://blog.notmyidea.org' -TIMEZONE = 'UTC' - -GITHUB_URL = 'http://github.com/ametaireau/' -DISQUS_SITENAME = "blog-notmyidea" -PDF_GENERATOR = False -REVERSE_CATEGORY_ORDER = True -DEFAULT_PAGINATION = 2 - -FEED_RSS = 'feeds/all.rss.xml' -CATEGORY_FEED_RSS = 'feeds/{slug}.rss.xml' - -LINKS = (('Biologeek', 'http://biologeek.org'), - ('Filyb', "http://filyb.info/"), - ('Libert-fr', "http://www.libert-fr.com"), - ('N1k0', "http://prendreuncafe.com/blog/"), - ('Tarek Ziadé', "http://ziade.org/blog"), - ('Zubin Mithra', "http://zubin71.wordpress.com/"),) - -SOCIAL = (('twitter', 'http://twitter.com/ametaireau'), - ('lastfm', 'http://lastfm.com/user/akounet'), - ('github', 'http://github.com/ametaireau'),) - -# global metadata to all the contents -DEFAULT_METADATA = {'yeah': 'it is'} - -# path-specific metadata -EXTRA_PATH_METADATA = { - 'extra/robots.txt': {'path': 'robots.txt'}, -} - -# static paths will be copied without parsing their contents -STATIC_PATHS = [ - 'pictures', - 'extra/robots.txt', -] - -FORMATTED_FIELDS = ['summary', 'custom_formatted_field'] - -# foobar will not be used, because it's not in caps. All configuration keys -# have to be in caps -foobar = "barbaz" diff --git a/pelican/tests/dummy_plugins/namespace_plugin/pelican/plugins/ns_plugin/__init__.py b/pelican/tests/dummy_plugins/namespace_plugin/pelican/plugins/ns_plugin/__init__.py deleted file mode 100644 index c514861d..00000000 --- a/pelican/tests/dummy_plugins/namespace_plugin/pelican/plugins/ns_plugin/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -NAME = 'namespace plugin' - - -def register(): - pass diff --git a/pelican/tests/dummy_plugins/normal_plugin/normal_plugin/__init__.py b/pelican/tests/dummy_plugins/normal_plugin/normal_plugin/__init__.py deleted file mode 100644 index e714c7a6..00000000 --- a/pelican/tests/dummy_plugins/normal_plugin/normal_plugin/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .submodule import noop # noqa: F401 - - -def register(): - pass diff --git a/pelican/tests/dummy_plugins/normal_plugin/normal_plugin/submodule.py b/pelican/tests/dummy_plugins/normal_plugin/normal_plugin/submodule.py deleted file mode 100644 index ba9c8f94..00000000 --- a/pelican/tests/dummy_plugins/normal_plugin/normal_plugin/submodule.py +++ /dev/null @@ -1,2 +0,0 @@ -def noop(): - pass diff --git a/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/__init__.py b/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/__init__.py b/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/subpackage.py b/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/subpackage.py deleted file mode 100644 index 9e12b19f..00000000 --- a/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subpackage/subpackage.py +++ /dev/null @@ -1,2 +0,0 @@ -def register(): - pass diff --git a/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subplugin.py b/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subplugin.py deleted file mode 100644 index 9e12b19f..00000000 --- a/pelican/tests/dummy_plugins/normal_plugin/normal_submodule_plugin/subplugin.py +++ /dev/null @@ -1,2 +0,0 @@ -def register(): - pass diff --git a/pelican/tests/mixed_content/fake_image.jpg b/pelican/tests/mixed_content/fake_image.jpg deleted file mode 100644 index e69de29b..00000000 diff --git a/pelican/tests/mixed_content/short_page.md b/pelican/tests/mixed_content/short_page.md deleted file mode 100644 index 46ca45ac..00000000 --- a/pelican/tests/mixed_content/short_page.md +++ /dev/null @@ -1,3 +0,0 @@ -Title: Short Page - -This is a page with little text. diff --git a/pelican/tests/mixed_content/subdir/subdir_fake_image.jpg b/pelican/tests/mixed_content/subdir/subdir_fake_image.jpg deleted file mode 100644 index e69de29b..00000000 diff --git a/pelican/tests/nested_content/maindir/maindir.md b/pelican/tests/nested_content/maindir/maindir.md deleted file mode 100644 index 443e1827..00000000 --- a/pelican/tests/nested_content/maindir/maindir.md +++ /dev/null @@ -1,3 +0,0 @@ -Title: Main Dir Page - -This page lives in maindir. diff --git a/pelican/tests/nested_content/maindir/subdir/subdir.md b/pelican/tests/nested_content/maindir/subdir/subdir.md deleted file mode 100644 index 32e73617..00000000 --- a/pelican/tests/nested_content/maindir/subdir/subdir.md +++ /dev/null @@ -1,3 +0,0 @@ -Title: Subdir Page - -This page lives in maindir/subdir. diff --git a/pelican/tests/output/basic/a-markdown-powered-article.html b/pelican/tests/output/basic/a-markdown-powered-article.html deleted file mode 100644 index 894fb8c9..00000000 --- a/pelican/tests/output/basic/a-markdown-powered-article.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - A markdown powered article - - - - - - - -
    -
    -
    -

    - A markdown powered article

    -
    - -
    -
    - - Published: Wed 20 April 2011 - - -

    In cat1.

    - -

    You're mutually oblivious.

    -

    a root-relative link to unbelievable -a file-relative link to unbelievable

    -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/archives.html b/pelican/tests/output/basic/archives.html deleted file mode 100644 index 27cbb73e..00000000 --- a/pelican/tests/output/basic/archives.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - A Pelican Blog - - - - - - -
    -

    Archives for A Pelican Blog

    - -
    -
    Fri 30 November 2012
    -
    FILENAME_METADATA example
    -
    Wed 29 February 2012
    -
    Second article
    -
    Wed 20 April 2011
    -
    A markdown powered article
    -
    Thu 17 February 2011
    -
    Article 1
    -
    Thu 17 February 2011
    -
    Article 2
    -
    Thu 17 February 2011
    -
    Article 3
    -
    Thu 02 December 2010
    -
    This is a super article !
    -
    Wed 20 October 2010
    -
    Oh yeah !
    -
    Fri 15 October 2010
    -
    Unbelievable !
    -
    Sun 14 March 2010
    -
    The baz tag
    -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/article-1.html b/pelican/tests/output/basic/article-1.html deleted file mode 100644 index 5e1196b7..00000000 --- a/pelican/tests/output/basic/article-1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Article 1 - - - - - - - -
    -
    -
    -

    - Article 1

    -
    - -
    -
    - - Published: Thu 17 February 2011 - - -

    In cat1.

    - -

    Article 1

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/article-2.html b/pelican/tests/output/basic/article-2.html deleted file mode 100644 index 7dab6907..00000000 --- a/pelican/tests/output/basic/article-2.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Article 2 - - - - - - - -
    -
    -
    -

    - Article 2

    -
    - -
    -
    - - Published: Thu 17 February 2011 - - -

    In cat1.

    - -

    Article 2

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/article-3.html b/pelican/tests/output/basic/article-3.html deleted file mode 100644 index ba934652..00000000 --- a/pelican/tests/output/basic/article-3.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Article 3 - - - - - - - -
    -
    -
    -

    - Article 3

    -
    - -
    -
    - - Published: Thu 17 February 2011 - - -

    In cat1.

    - -

    Article 3

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/author/alexis-metaireau.html b/pelican/tests/output/basic/author/alexis-metaireau.html deleted file mode 100644 index a4d7a279..00000000 --- a/pelican/tests/output/basic/author/alexis-metaireau.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - A Pelican Blog - Alexis Métaireau - - - - - - - - -
    -

    Other articles

    -
    -
      - -
    1. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -
      -
    2. -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/authors.html b/pelican/tests/output/basic/authors.html deleted file mode 100644 index f062ccf6..00000000 --- a/pelican/tests/output/basic/authors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - A Pelican Blog - Authors - - - - - - - -
    -

    Authors on A Pelican Blog

    - -
    - -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/categories.html b/pelican/tests/output/basic/categories.html deleted file mode 100644 index e9d981c8..00000000 --- a/pelican/tests/output/basic/categories.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - A Pelican Blog - Categories - - - - - - -

    Categories on A Pelican Blog

    - -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/category/bar.html b/pelican/tests/output/basic/category/bar.html deleted file mode 100644 index 7e272b78..00000000 --- a/pelican/tests/output/basic/category/bar.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - A Pelican Blog - bar - - - - - - - - -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/category/cat1.html b/pelican/tests/output/basic/category/cat1.html deleted file mode 100644 index eccf5587..00000000 --- a/pelican/tests/output/basic/category/cat1.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - A Pelican Blog - cat1 - - - - - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/category/misc.html b/pelican/tests/output/basic/category/misc.html deleted file mode 100644 index 119f5931..00000000 --- a/pelican/tests/output/basic/category/misc.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - A Pelican Blog - misc - - - - - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
      -

      The baz tag

      -
      - -
      -
      - - Published: Sun 14 March 2010 - - -

      In misc.

      - -

      This article overrides the listening of the articles under the baz tag.

      - - read more -
      -
    4. -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/category/yeah.html b/pelican/tests/output/basic/category/yeah.html deleted file mode 100644 index 31a95629..00000000 --- a/pelican/tests/output/basic/category/yeah.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - A Pelican Blog - yeah - - - - - - - - -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/drafts/a-draft-article-without-date.html b/pelican/tests/output/basic/drafts/a-draft-article-without-date.html deleted file mode 100644 index 039f2187..00000000 --- a/pelican/tests/output/basic/drafts/a-draft-article-without-date.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - A draft article without date - - - - - - - -
    -
    -
    -

    - A draft article without date

    -
    - -
    -
    - - Published: - - -

    In misc.

    - -

    This is a draft article, it should live under the /drafts/ folder and not be -listed anywhere else.

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/drafts/a-draft-article.html b/pelican/tests/output/basic/drafts/a-draft-article.html deleted file mode 100644 index 068b414a..00000000 --- a/pelican/tests/output/basic/drafts/a-draft-article.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - A draft article - - - - - - - -
    -
    -
    -

    - A draft article

    -
    - -
    -
    - - Published: Sun 08 May 2011 - - -

    In misc.

    - -

    This is a draft article, it should live under the /drafts/ folder and not be -listed anywhere else.

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml b/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml deleted file mode 100644 index 8f9a85fa..00000000 --- a/pelican/tests/output/basic/feeds/alexis-metaireau.atom.xml +++ /dev/null @@ -1,22 +0,0 @@ - -A Pelican Blog - Alexis Métaireau/2013-11-17T23:29:00+00:00This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml b/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml deleted file mode 100644 index 1af41d47..00000000 --- a/pelican/tests/output/basic/feeds/alexis-metaireau.rss.xml +++ /dev/null @@ -1,10 +0,0 @@ - -A Pelican Blog - Alexis Métaireau/Sun, 17 Nov 2013 23:29:00 +0000This is a super article !/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0000tag:None,2010-12-02:/this-is-a-super-article.htmlyeahfoobarfoobarOh yeah !/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0000tag:None,2010-10-20:/oh-yeah.htmlbarohbaryeah \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/all-en.atom.xml b/pelican/tests/output/basic/feeds/all-en.atom.xml deleted file mode 100644 index 250d75db..00000000 --- a/pelican/tests/output/basic/feeds/all-en.atom.xml +++ /dev/null @@ -1,74 +0,0 @@ - -A Pelican Blog/2013-11-17T23:29:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> -A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="/unbelievable.html">a root-relative link to unbelievable</a> -<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/all-fr.atom.xml b/pelican/tests/output/basic/feeds/all-fr.atom.xml deleted file mode 100644 index 4ecf7534..00000000 --- a/pelican/tests/output/basic/feeds/all-fr.atom.xml +++ /dev/null @@ -1,4 +0,0 @@ - -A Pelican Blog/2012-02-29T00:00:00+00:00Deuxième article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -Trop bien !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00tag:None,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/all.atom.xml b/pelican/tests/output/basic/feeds/all.atom.xml deleted file mode 100644 index 1abfef18..00000000 --- a/pelican/tests/output/basic/feeds/all.atom.xml +++ /dev/null @@ -1,76 +0,0 @@ - -A Pelican Blog/2013-11-17T23:29:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> -Deuxième article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="/unbelievable.html">a root-relative link to unbelievable</a> -<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Trop bien !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00tag:None,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> -Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/bar.atom.xml b/pelican/tests/output/basic/feeds/bar.atom.xml deleted file mode 100644 index edd1170a..00000000 --- a/pelican/tests/output/basic/feeds/bar.atom.xml +++ /dev/null @@ -1,8 +0,0 @@ - -A Pelican Blog - bar/2010-10-20T10:14:00+00:00Oh yeah !2010-10-20T10:14:00+00:002010-10-20T10:14:00+00:00Alexis Métaireautag:None,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/cat1.atom.xml b/pelican/tests/output/basic/feeds/cat1.atom.xml deleted file mode 100644 index 8516b95c..00000000 --- a/pelican/tests/output/basic/feeds/cat1.atom.xml +++ /dev/null @@ -1,7 +0,0 @@ - -A Pelican Blog - cat1/2011-04-20T00:00:00+00:00A markdown powered article2011-04-20T00:00:00+00:002011-04-20T00:00:00+00:00tag:None,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="/unbelievable.html">a root-relative link to unbelievable</a> -<a href="/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+00:002011-02-17T00:00:00+00:00tag:None,2011-02-17:/article-3.html<p>Article 3</p> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/misc.atom.xml b/pelican/tests/output/basic/feeds/misc.atom.xml deleted file mode 100644 index 2b09bda3..00000000 --- a/pelican/tests/output/basic/feeds/misc.atom.xml +++ /dev/null @@ -1,49 +0,0 @@ - -A Pelican Blog - misc/2012-11-30T00:00:00+00:00FILENAME_METADATA example2012-11-30T00:00:00+00:002012-11-30T00:00:00+00:00tag:None,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+00:002012-02-29T00:00:00+00:00tag:None,2012-02-29:/second-article.html<p>This is some article, in english</p> -Unbelievable !2010-10-15T20:30:00+00:002010-10-15T20:30:00+00:00tag:None,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+00:002010-03-14T00:00:00+00:00tag:None,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/basic/feeds/yeah.atom.xml b/pelican/tests/output/basic/feeds/yeah.atom.xml deleted file mode 100644 index 6f871915..00000000 --- a/pelican/tests/output/basic/feeds/yeah.atom.xml +++ /dev/null @@ -1,16 +0,0 @@ - -A Pelican Blog - yeah/2013-11-17T23:29:00+00:00This is a super article !2010-12-02T10:14:00+00:002013-11-17T23:29:00+00:00Alexis Métaireautag:None,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/basic/filename_metadata-example.html b/pelican/tests/output/basic/filename_metadata-example.html deleted file mode 100644 index 6a6ee389..00000000 --- a/pelican/tests/output/basic/filename_metadata-example.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - FILENAME_METADATA example - - - - - - - -
    -
    -
    -

    - FILENAME_METADATA example

    -
    - -
    -
    - - Published: Fri 30 November 2012 - - -

    In misc.

    - -

    Some cool stuff!

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/index.html b/pelican/tests/output/basic/index.html deleted file mode 100644 index e10477db..00000000 --- a/pelican/tests/output/basic/index.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - A Pelican Blog - - - - - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. - -
    4. - -
    5. - -
    6. - -
    7. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -
      -
    8. - -
    9. - -
    10. -
      -

      The baz tag

      -
      - -
      -
      - - Published: Sun 14 March 2010 - - -

      In misc.

      - -

      This article overrides the listening of the articles under the baz tag.

      - - read more -
      -
    11. -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/oh-yeah-fr.html b/pelican/tests/output/basic/oh-yeah-fr.html deleted file mode 100644 index 58b933aa..00000000 --- a/pelican/tests/output/basic/oh-yeah-fr.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - Trop bien ! - - - - - - - - - -
    -
    -
    -

    - Trop bien !

    -
    - -
    -
    - - Published: Wed 20 October 2010 - - -

    In misc.

    -Translations: - en - -

    Et voila du contenu en français

    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/oh-yeah.html b/pelican/tests/output/basic/oh-yeah.html deleted file mode 100644 index 1b8077f8..00000000 --- a/pelican/tests/output/basic/oh-yeah.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Oh yeah ! - - - - - - - - - -
    -
    -
    -

    - Oh yeah !

    -
    - -
    -
    -

    Why not ?

    -

    After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

    -alternate text -
    - -
    - -
    -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/override/index.html b/pelican/tests/output/basic/override/index.html deleted file mode 100644 index c3613174..00000000 --- a/pelican/tests/output/basic/override/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - Override url/save_as - - - - - - -
    -

    Override url/save_as

    - -

    Test page which overrides save_as and url so that this page will be generated -at a custom location.

    - -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/pages/this-is-a-test-hidden-page.html b/pelican/tests/output/basic/pages/this-is-a-test-hidden-page.html deleted file mode 100644 index 21fabf62..00000000 --- a/pelican/tests/output/basic/pages/this-is-a-test-hidden-page.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - This is a test hidden page - - - - - - -
    -

    This is a test hidden page

    - -

    This is great for things like error(404) pages -Anyone can see this page but it's not linked to anywhere!

    - -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/pages/this-is-a-test-page.html b/pelican/tests/output/basic/pages/this-is-a-test-page.html deleted file mode 100644 index 3970e3ff..00000000 --- a/pelican/tests/output/basic/pages/this-is-a-test-page.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - This is a test page - - - - - - -
    -

    This is a test page

    - -

    Just an image.

    -alternate text -wrong path since 'images' folder does not exist - -
    -
    -
    -

    social

    - -
    -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/pictures/Fat_Cat.jpg b/pelican/tests/output/basic/pictures/Fat_Cat.jpg deleted file mode 100644 index d8a96d356be94e782aaf36ba4e47168435b56338..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62675 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

    )n(M0K@w($Mad^U|4b&>Gs6u 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 diff --git a/pelican/tests/output/basic/pictures/Sushi.jpg b/pelican/tests/output/basic/pictures/Sushi.jpg deleted file mode 100644 index e49e5f0ab53461187c2cf61ebc1f3befdc937aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28992 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 V9RVclK)_SR8Zrq#de{_0|JgZd7T*8> diff --git a/pelican/tests/output/basic/second-article-fr.html b/pelican/tests/output/basic/second-article-fr.html deleted file mode 100644 index 87b95cc4..00000000 --- a/pelican/tests/output/basic/second-article-fr.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - Deuxième article - - - - - - - - -

    -
    -
    -
    -

    - Deuxième article

    -
    - -
    -
    - - Published: Wed 29 February 2012 - - -

    In misc.

    -

    tags: foo bar baz

    Translations: - en - -

    Ceci est un article, en français.

    - -
    - -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/second-article.html b/pelican/tests/output/basic/second-article.html deleted file mode 100644 index 3e0c5296..00000000 --- a/pelican/tests/output/basic/second-article.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - Second article - - - - - - - - - -
    -
    -
    -

    - Second article

    -
    - -
    -
    - - Published: Wed 29 February 2012 - - -

    In misc.

    -

    tags: foo bar baz

    Translations: - fr - -

    This is some article, in english

    - -
    - -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tag/bar.html b/pelican/tests/output/basic/tag/bar.html deleted file mode 100644 index ead02cd8..00000000 --- a/pelican/tests/output/basic/tag/bar.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - A Pelican Blog - bar - - - - - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -
      -
    3. -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tag/baz.html b/pelican/tests/output/basic/tag/baz.html deleted file mode 100644 index c891121e..00000000 --- a/pelican/tests/output/basic/tag/baz.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - The baz tag - - - - - - - -
    -
    -
    -

    - The baz tag

    -
    - -
    -
    - - Published: Sun 14 March 2010 - - -

    In misc.

    - -

    This article overrides the listening of the articles under the baz tag.

    - -
    - -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tag/foo.html b/pelican/tests/output/basic/tag/foo.html deleted file mode 100644 index 3a00a6ab..00000000 --- a/pelican/tests/output/basic/tag/foo.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - A Pelican Blog - foo - - - - - - - - -
    -

    Other articles

    -
    -
      - -
    1. -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tag/foobar.html b/pelican/tests/output/basic/tag/foobar.html deleted file mode 100644 index 5418f872..00000000 --- a/pelican/tests/output/basic/tag/foobar.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - A Pelican Blog - foobar - - - - - - - - -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tag/oh.html b/pelican/tests/output/basic/tag/oh.html deleted file mode 100644 index c2de8b5b..00000000 --- a/pelican/tests/output/basic/tag/oh.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - Oh Oh Oh - - - - - - -
    -

    Oh Oh Oh

    - -

    This page overrides the listening of the articles under the oh tag.

    - -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tag/yeah.html b/pelican/tests/output/basic/tag/yeah.html deleted file mode 100644 index 88660359..00000000 --- a/pelican/tests/output/basic/tag/yeah.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - A Pelican Blog - yeah - - - - - - - - -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/tags.html b/pelican/tests/output/basic/tags.html deleted file mode 100644 index 3f88ce9e..00000000 --- a/pelican/tests/output/basic/tags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - A Pelican Blog - Tags - - - - - - - -
    -

    Tags for A Pelican Blog

    - -
    - -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/theme/css/fonts.css b/pelican/tests/output/basic/theme/css/fonts.css deleted file mode 100644 index 56015076..00000000 --- a/pelican/tests/output/basic/theme/css/fonts.css +++ /dev/null @@ -1,12 +0,0 @@ -@font-face { - font-family: 'Yanone Kaffeesatz'; - font-style: normal; - font-weight: 400; - src: - local('Yanone Kaffeesatz Regular'), - local('YanoneKaffeesatz-Regular'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ - url('../fonts/Yanone_Kaffeesatz_400.woff') format('woff'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ - url('../fonts/Yanone_Kaffeesatz_400.woff2') format('woff2'); -} diff --git a/pelican/tests/output/basic/theme/css/main.css b/pelican/tests/output/basic/theme/css/main.css deleted file mode 100644 index aaea9b81..00000000 --- a/pelican/tests/output/basic/theme/css/main.css +++ /dev/null @@ -1,466 +0,0 @@ -/* - Name: Smashing HTML5 - Date: July 2009 - Description: Sample layout for HTML5 and CSS3 goodness. - Version: 1.0 - License: MIT - Licensed by: Smashing Media GmbH - Original author: Enrique Ramírez -*/ - -/* Imports */ -@import url("reset.css"); -@import url("pygment.css"); -@import url("typogrify.css"); -@import url("fonts.css"); - -/***** Global *****/ -/* Body */ -body { - background: #F5F4EF; - color: #000305; - font-size: 87.5%; /* Base font size: 14px */ - font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; - line-height: 1.429; - margin: 0; - padding: 0; - text-align: left; -} - -/* Headings */ -h1 {font-size: 2em } -h2 {font-size: 1.571em} /* 22px */ -h3 {font-size: 1.429em} /* 20px */ -h4 {font-size: 1.286em} /* 18px */ -h5 {font-size: 1.143em} /* 16px */ -h6 {font-size: 1em} /* 14px */ - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; - margin-bottom: .8em; - font-family: 'Yanone Kaffeesatz', arial, serif; -} - -h3, h4, h5, h6 { margin-top: .8em; } - -hr { border: 2px solid #EEEEEE; } - -/* Anchors */ -a {outline: 0;} -a img {border: 0px; text-decoration: none;} -a:link, a:visited { - color: #C74350; - padding: 0 1px; - text-decoration: underline; -} -a:hover, a:active { - background-color: #C74350; - color: #fff; - text-decoration: none; - text-shadow: 1px 1px 1px #333; -} - -h1 a:hover { - background-color: inherit -} - -/* Paragraphs */ -div.line-block, -p { margin-top: 1em; - margin-bottom: 1em;} - -strong, b {font-weight: bold;} -em, i {font-style: italic;} - -/* Lists */ -ul { - list-style: outside disc; - margin: 0em 0 0 1.5em; -} - -ol { - list-style: outside decimal; - margin: 0em 0 0 1.5em; -} - -li { margin-top: 0.5em; - margin-bottom: 1em; } - -.post-info { - float:right; - margin:10px; - padding:5px; -} - -.post-info p{ - margin-top: 1px; - margin-bottom: 1px; -} - -.readmore { float: right } - -dl {margin: 0 0 1.5em 0;} -dt {font-weight: bold;} -dd {margin-left: 1.5em;} - -pre{background-color: rgb(238, 238, 238); padding: 10px; margin: 10px; overflow: auto;} - -/* Quotes */ -blockquote { - margin: 20px; - font-style: italic; -} -cite {} - -q {} - -div.note { - float: right; - margin: 5px; - font-size: 85%; - max-width: 300px; -} - -/* Tables */ -table {margin: .5em auto 1.5em auto; width: 98%;} - - /* Thead */ - thead th {padding: .5em .4em; text-align: left;} - thead td {} - - /* Tbody */ - tbody td {padding: .5em .4em;} - tbody th {} - - tbody .alt td {} - tbody .alt th {} - - /* Tfoot */ - tfoot th {} - tfoot td {} - -/* HTML5 tags */ -header, section, footer, -aside, nav, article, figure { - display: block; -} - -/***** Layout *****/ -.body {clear: both; margin: 0 auto; width: 800px;} -img.right, figure.right, div.figure.align-right { - float: right; - margin: 0 0 2em 2em; -} -img.left, figure.left, div.figure.align-left { - float: left; - margin: 0 2em 2em 0; -} - -/* .rst support */ -div.figure img, figure img { /* to fill figure exactly */ - width: 100%; -} -div.figure p.caption, figure p.caption { /* margin provided by figure */ - margin-top: 0; - margin-bottom: 0; -} - -/* - Header -*****************/ -#banner { - margin: 0 auto; - padding: 2.5em 0 0 0; -} - - /* Banner */ - #banner h1 {font-size: 3.571em; line-height: 0;} - #banner h1 a:link, #banner h1 a:visited { - color: #000305; - display: block; - font-weight: bold; - margin: 0 0 .6em .2em; - text-decoration: none; - } - #banner h1 a:hover, #banner h1 a:active { - background: none; - color: #C74350; - text-shadow: none; - } - - #banner h1 strong {font-size: 0.36em; font-weight: normal;} - - /* Main Nav */ - #banner nav { - background: #000305; - font-size: 1.143em; - height: 40px; - line-height: 30px; - margin: 0 auto 2em auto; - padding: 0; - text-align: center; - width: 800px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - #banner nav ul {list-style: none; margin: 0 auto; width: 800px;} - #banner nav li {float: left; display: inline; margin: 0;} - - #banner nav a:link, #banner nav a:visited { - color: #fff; - display: inline-block; - height: 30px; - padding: 5px 1.5em; - text-decoration: none; - } - #banner nav a:hover, #banner nav a:active, - #banner nav .active a:link, #banner nav .active a:visited { - background: #C74451; - color: #fff; - text-shadow: none !important; - } - - #banner nav li:first-child a { - border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - -webkit-border-top-left-radius: 5px; - - border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - -webkit-border-bottom-left-radius: 5px; - } - -/* - Featured -*****************/ -#featured { - background: #fff; - margin-bottom: 2em; - overflow: hidden; - padding: 20px; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#featured figure { - border: 2px solid #eee; - float: right; - margin: 0.786em 2em 0 5em; - width: 248px; -} -#featured figure img {display: block; float: right;} - -#featured h2 {color: #C74451; font-size: 1.714em; margin-bottom: 0.333em;} -#featured h3 {font-size: 1.429em; margin-bottom: .5em;} - -#featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;} -#featured h3 a:hover, #featured h3 a:active {color: #fff;} - -/* - Body -*****************/ -#content { - background: #fff; - margin-bottom: 2em; - overflow: hidden; - padding: 20px 20px; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -/* - Extras -*****************/ -#extras {margin: 0 auto 3em auto; overflow: hidden;} - -#extras ul {list-style: none; margin: 0;} -#extras li {border-bottom: 1px solid #fff;} -#extras h2 { - color: #C74350; - font-size: 1.429em; - margin-bottom: .25em; - padding: 0 3px; -} - -#extras a:link, #extras a:visited { - color: #444; - display: block; - border-bottom: 1px solid #F4E3E3; - text-decoration: none; - padding: .3em .25em; -} - -#extras a:hover, #extras a:active {color: #fff;} - - /* Blogroll */ - #extras .blogroll { - float: left; - width: 615px; - } - - #extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;} - - /* Social */ - #extras .social { - float: right; - width: 175px; - } - - #extras div[class='social'] a { - background-repeat: no-repeat; - background-position: 3px 6px; - padding-left: 25px; - } - - /* Icons */ - .social a[href*='about.me'] {background-image: url('../images/icons/aboutme.png');} - .social a[href*='bitbucket.org'] {background-image: url('../images/icons/bitbucket.png');} - .social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');} - .social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');} - .social a[href*='gitorious.org'] {background-image: url('../images/icons/gitorious.png');} - .social a[href*='github.com'], - .social a[href*='git.io'] { - background-image: url('../images/icons/github.png'); - background-size: 16px 16px; - } - .social a[href*='gittip.com'] {background-image: url('../images/icons/gittip.png');} - .social a[href*='plus.google.com'] {background-image: url('../images/icons/google-plus.png');} - .social a[href*='groups.google.com'] {background-image: url('../images/icons/google-groups.png');} - .social a[href*='news.ycombinator.com'], - .social a[href*='hackernewsers.com'] {background-image: url('../images/icons/hackernews.png');} - .social a[href*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');} - .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.png');} - .social a[href*='reddit.com'] {background-image: url('../images/icons/reddit.png');} - .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');} - .social a[href*='slideshare.net'] {background-image: url('../images/icons/slideshare.png');} - .social a[href*='speakerdeck.com'] {background-image: url('../images/icons/speakerdeck.png');} - .social a[href*='stackoverflow.com'] {background-image: url('../images/icons/stackoverflow.png');} - .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');} - .social a[href*='vimeo.com'] {background-image: url('../images/icons/vimeo.png');} - .social a[href*='youtube.com'] {background-image: url('../images/icons/youtube.png');} - -/* - About -*****************/ -#about { - background: #fff; - font-style: normal; - margin-bottom: 2em; - overflow: hidden; - padding: 20px; - text-align: left; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#about .primary {float: left; width: 165px;} -#about .primary strong {color: #C64350; display: block; font-size: 1.286em;} -#about .photo {float: left; margin: 5px 20px;} - -#about .url:link, #about .url:visited {text-decoration: none;} - -#about .bio {float: right; width: 500px;} - -/* - Footer -*****************/ -#contentinfo {padding-bottom: 2em; text-align: right;} - -/***** Sections *****/ -/* Blog */ -.hentry { - display: block; - clear: both; - border-top: 1px solid #eee; - padding: 1.5em 0; -} -li:first-child .hentry, #content > .hentry {border: 0; margin: 0;} -#content > .hentry {padding: 1em 0;} -.hentry img{display : none ;} -.entry-title {font-size: 3em; margin-bottom: 10px; margin-top: 0;} -.entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;} -.entry-title a:visited {background-color: #fff;} - -.hentry .post-info * {font-style: normal;} - - /* Content */ - .hentry footer {margin-bottom: 2em;} - .hentry footer address {display: inline;} - #posts-list footer address {display: block;} - - /* Blog Index */ - #posts-list {list-style: none; margin: 0;} - #posts-list .hentry {padding-left: 10px; position: relative;} - - #posts-list footer { - left: 10px; - position: relative; - float: left; - top: 0.5em; - width: 190px; - } - - /* About the Author */ - #about-author { - background: #f9f9f9; - clear: both; - font-style: normal; - margin: 2em 0; - padding: 10px 20px 15px 20px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - #about-author strong { - color: #C64350; - clear: both; - display: block; - font-size: 1.429em; - } - - #about-author .photo {border: 1px solid #ddd; float: left; margin: 5px 1em 0 0;} - - /* Comments */ - #comments-list {list-style: none; margin: 0 1em;} - #comments-list blockquote { - background: #f8f8f8; - clear: both; - font-style: normal; - margin: 0; - padding: 15px 20px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - #comments-list footer {color: #888; padding: .5em 1em 0 0; text-align: right;} - - #comments-list li:nth-child(2n) blockquote {background: #F5f5f5;} - - /* Add a Comment */ - #add-comment label {clear: left; float: left; text-align: left; width: 150px;} - #add-comment input[type='text'], - #add-comment input[type='email'], - #add-comment input[type='url'] {float: left; width: 200px;} - - #add-comment textarea {float: left; height: 150px; width: 495px;} - - #add-comment p.req {clear: both; margin: 0 .5em 1em 0; text-align: right;} - - #add-comment input[type='submit'] {float: right; margin: 0 .5em;} - #add-comment * {margin-bottom: .5em;} diff --git a/pelican/tests/output/basic/theme/css/pygment.css b/pelican/tests/output/basic/theme/css/pygment.css deleted file mode 100644 index fdd056f6..00000000 --- a/pelican/tests/output/basic/theme/css/pygment.css +++ /dev/null @@ -1,205 +0,0 @@ -.hll { -background-color:#eee; -} -.c { -color:#408090; -font-style:italic; -} -.err { -border:1px solid #FF0000; -} -.k { -color:#007020; -font-weight:bold; -} -.o { -color:#666666; -} -.cm { -color:#408090; -font-style:italic; -} -.cp { -color:#007020; -} -.c1 { -color:#408090; -font-style:italic; -} -.cs { -background-color:#FFF0F0; -color:#408090; -} -.gd { -color:#A00000; -} -.ge { -font-style:italic; -} -.gr { -color:#FF0000; -} -.gh { -color:#000080; -font-weight:bold; -} -.gi { -color:#00A000; -} -.go { -color:#303030; -} -.gp { -color:#C65D09; -font-weight:bold; -} -.gs { -font-weight:bold; -} -.gu { -color:#800080; -font-weight:bold; -} -.gt { -color:#0040D0; -} -.kc { -color:#007020; -font-weight:bold; -} -.kd { -color:#007020; -font-weight:bold; -} -.kn { -color:#007020; -font-weight:bold; -} -.kp { -color:#007020; -} -.kr { -color:#007020; -font-weight:bold; -} -.kt { -color:#902000; -} -.m { -color:#208050; -} -.s { -color:#4070A0; -} -.na { -color:#4070A0; -} -.nb { -color:#007020; -} -.nc { -color:#0E84B5; -font-weight:bold; -} -.no { -color:#60ADD5; -} -.nd { -color:#555555; -font-weight:bold; -} -.ni { -color:#D55537; -font-weight:bold; -} -.ne { -color:#007020; -} -.nf { -color:#06287E; -} -.nl { -color:#002070; -font-weight:bold; -} -.nn { -color:#0E84B5; -font-weight:bold; -} -.nt { -color:#062873; -font-weight:bold; -} -.nv { -color:#BB60D5; -} -.ow { -color:#007020; -font-weight:bold; -} -.w { -color:#BBBBBB; -} -.mf { -color:#208050; -} -.mh { -color:#208050; -} -.mi { -color:#208050; -} -.mo { -color:#208050; -} -.sb { -color:#4070A0; -} -.sc { -color:#4070A0; -} -.sd { -color:#4070A0; -font-style:italic; -} -.s2 { -color:#4070A0; -} -.se { -color:#4070A0; -font-weight:bold; -} -.sh { -color:#4070A0; -} -.si { -color:#70A0D0; -font-style:italic; -} -.sx { -color:#C65D09; -} -.sr { -color:#235388; -} -.s1 { -color:#4070A0; -} -.ss { -color:#517918; -} -.bp { -color:#007020; -} -.vc { -color:#BB60D5; -} -.vg { -color:#BB60D5; -} -.vi { -color:#BB60D5; -} -.il { -color:#208050; -} diff --git a/pelican/tests/output/basic/theme/css/reset.css b/pelican/tests/output/basic/theme/css/reset.css deleted file mode 100644 index c88e6196..00000000 --- a/pelican/tests/output/basic/theme/css/reset.css +++ /dev/null @@ -1,52 +0,0 @@ -/* - Name: Reset Stylesheet - Description: Resets browser's default CSS - Author: Eric Meyer - Author URI: https://meyerweb.com/eric/tools/css/reset/ -*/ - -/* v1.0 | 20080212 */ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - background: transparent; - border: 0; - font-size: 100%; - margin: 0; - outline: 0; - padding: 0; - vertical-align: baseline; -} - -body {line-height: 1;} - -ol, ul {list-style: none;} - -blockquote, q {quotes: none;} - -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} - -/* remember to define focus styles! */ -:focus { - outline: 0; -} - -/* remember to highlight inserts somehow! */ -ins {text-decoration: none;} -del {text-decoration: line-through;} - -/* tables still need 'cellspacing="0"' in the markup */ -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file diff --git a/pelican/tests/output/basic/theme/css/typogrify.css b/pelican/tests/output/basic/theme/css/typogrify.css deleted file mode 100644 index 3bae4976..00000000 --- a/pelican/tests/output/basic/theme/css/typogrify.css +++ /dev/null @@ -1,3 +0,0 @@ -.caps {font-size:.92em;} -.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} -.dquo {margin-left:-.38em;} diff --git a/pelican/tests/output/basic/theme/css/wide.css b/pelican/tests/output/basic/theme/css/wide.css deleted file mode 100644 index 88fd59ce..00000000 --- a/pelican/tests/output/basic/theme/css/wide.css +++ /dev/null @@ -1,48 +0,0 @@ -@import url("main.css"); - -body { - font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; -} - -.post-info{ - display: none; -} - -#banner nav { - display: none; - -moz-border-radius: 0px; - margin-bottom: 20px; - overflow: hidden; - font-size: 1em; - background: #F5F4EF; -} - -#banner nav ul{ - padding-right: 50px; -} - -#banner nav li{ - float: right; - color: #000; -} - -#banner nav li a { - color: #000; -} - -#banner h1 { - margin-bottom: -18px; -} - -#featured, #extras { - padding: 50px; -} - -#featured { - padding-top: 20px; -} - -#extras { - padding-top: 0px; - padding-bottom: 0px; -} diff --git a/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.eot b/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.eot deleted file mode 100644 index b3b90dbc3ef34775a8689ab6a4494810c14c5a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20932 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 mb?#}R*%4j(VLYH*AKF5oS rn0PZ0T66rs0j%h=b^w~umnB; diff --git a/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.svg b/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.svg deleted file mode 100644 index a69669b5..00000000 --- a/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.svg +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.ttf b/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.ttf deleted file mode 100644 index 6f4feb02d14c849ba1fb7dc112243386b2ad8f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39168 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 diff --git a/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.woff2 b/pelican/tests/output/basic/theme/fonts/Yanone_Kaffeesatz_400.woff2 deleted file mode 100644 index 7b18f7ea49098fff3aac28a1feb0cecc429bb2ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18320 zcmV)KK)SzoPew8T0RR9107sAj5dZ)H0GaFn07okT0RR9100000000000000000000 z0000Qb{n549D+OsU;ufwyW4gH`|mHUcCAhbROf1%m(wg)Iz$ zBO9BBHSCy4;dTI2MCvzL6m?;f3q4^J3 zn?jvX8Rux$3dW)$94I=8FC$C<0{zJt^8&Yqj6l~elaNO@3y$q?#~9ZE+u6q*p|MYL zf5Ov$cS+$@+Ol@U=cvx=0DaJi{b#Dq%>RFP@4%qMoF1M5(#};1>mX%R&?y)?ce#cG zSr#tM^WTp>`?b$|h$V*TmQ*7{bWP&f8;Ne+HJT=AgaQfvzdt#({>=aaMWO(KKroS@ zkS*C8=IqU}yB~|{H_dHVc`vqGUfcZ|1cw343AOGTl8RZj_jmhCrPifv_QdTNK{9zl zq3Cy?M?46Hu0mS+A7CKh|LH7e68^uHG=}A~`3OL=ldjvXuQlMIfEJiXQt0&=pt(ga z`WBIlv5k$5TC-qH#fZ^TWzY&%V`JwlHtM%oujog#{cB5sYljsWKnB#25u~8@ z&UT$LMVY6rn!g4F6J-{iAx`^%Fwrs^BDA$R_4m9$NNmtEp(PsJS(4;yvUN z(DQybYGpe}V66h|&qwpGsuXe$<;ihL!Qdqe5Fo@#EJBtQ za(=gc$Fg_!*BzYb*E6X)l0X9O)*cW5zWm=&OpL^X2#6qJa)^>O#K;BWt|z3o-Vk5m zkVsJwlLSbTEJ%(#NP!ASjao>(7D$^mNQXWU1b{0LV6uz$$cFHdP+}viA3tP`4aPki@r?ivh4s98t zxJ7X@FcXP(9moBGC`LD-1tVMm3lSWBGC9&$dy-&0>k=@4N@0RU3TOs?8qrm_6`7X> z=yp8mYUv;0eGrX22~1-Qb``}YQc-b@jp)5nmar#QOwyVWa-^WvTnK}(ETwx96N40A zNfJwQSdNP=-tRfFCO@O^M>c&7BPjq_@+XDxcq1UL#_47dFG+%GCKfhg)a2X~flG`- zf`^Z>gMxsNXzdm-XCy8e9v(eFoKZlO5Wp-m7AQ84fGroz9RiqVK+NkyL-5uUsh8du zeE5*?<%cOiIITztlu~5U$X7_ktOB%32R$)p0dw!PBY@Uwg7&sSaHP zX75*MfraE22P`cO$SvEi$OuqB0 zA>G-;^rvGevK5pW3@bR5Al`4iP_dB&MgJ<^tnYBgsAwNntx∾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 diff --git a/pelican/tests/output/basic/theme/fonts/font.css b/pelican/tests/output/basic/theme/fonts/font.css deleted file mode 100644 index a9eb87e6..00000000 --- a/pelican/tests/output/basic/theme/fonts/font.css +++ /dev/null @@ -1,12 +0,0 @@ -@font-face { - font-family: 'Yanone Kaffeesatz'; - font-style: normal; - font-weight: 400; - src: - local('Yanone Kaffeesatz Regular'), - local('YanoneKaffeesatz-Regular'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ - url('Yanone_Kaffeesatz_400.woff') format('woff'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ - url('Yanone_Kaffeesatz_400.woff2') format('woff2'); -} diff --git a/pelican/tests/output/basic/theme/images/icons/aboutme.png b/pelican/tests/output/basic/theme/images/icons/aboutme.png deleted file mode 100644 index 600110f2f63811ebea40af1b943fded0275b6a39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 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 FV1ku*k$3ca`voa6f0k zeB{69k@N|?Km7UBZZ))YUHu=w|Mw?(E)O$?WixY_FPL7s$Pm-8fstds@^ATL%bUet yZgfGChJzsUtA%$MR;8+S88GxaEa+z7`Ew3v5re0zpUXO@geCxdur~kz diff --git a/pelican/tests/output/basic/theme/images/icons/github.png b/pelican/tests/output/basic/theme/images/icons/github.png deleted file mode 100644 index 5d9109deab2b3669c845845515f4d53ab5d6daa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)3g@6&i?1|w)NXSf84|8m&o+0 zUbR{k48>ZU#v6!wqi1V1r%EE$MYAT@gfEZ`ebJgG`3x?P75EOx(Rb}pK9^g49TLfP zG|6;$SGbAH zWw$>tFUyCTTU=}VL5$UQcykD>ruLPAMktgpS2)vHd2`;>>D~O#r0q^piwN%{Eu7xl ze_3-g6EyPr+mZ( z$~zD9`4D^$F>WOyU!f<&c%QI`>dHS@;3~xO7I+5=MISM;>bsLPrcC8T?Gyg2EhYt{Z#{?9|afq=U$pRKgVkaa6A5hOW zm~E0;qoMsELHiVUdq+qHW_!=pLlCuB&nsXkrlThcr&yqB2Ez}bh}WQodCMG=62#-T(jq diff --git a/pelican/tests/output/basic/theme/images/icons/gitorious.png b/pelican/tests/output/basic/theme/images/icons/gitorious.png deleted file mode 100644 index a6705d0f462b505be4d9a5a372743d206c141a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!O@L2`D?^o)dRwqYcev@q#DMvQ z*(*AHH`kW0om8=NO8&uVRmbKn*uQ@5(H+Zf?%R0x*ww37FTJ_{>eZ{eAD{pK|9`68 zWgnn9ah@)YAr*|ZCyp{U2QWBn{C>Cgf8^^ph2sKmrZ@0Db>47eliif`GZN3kOR|4E zp1HSr>(=i-J2K=SnYPGB*}QnjI%8UJ(Sx8gTe~DWM4fr0!yB diff --git a/pelican/tests/output/basic/theme/images/icons/gittip.png b/pelican/tests/output/basic/theme/images/icons/gittip.png deleted file mode 100644 index b9f67aaa32a0acd166d7271b3dbf9113717d3f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMfoB*E?S0J6}W0T-*4J5$~5D8`b z*u=V-n;Wh0%9W86%yoICmD^QXBJ+TuMeduj_mynB29_Kl1X*A2_&{r~^}-@kve zdYW2FGLG%r8Ru!aX~lxyzki)LushDvqC7Rcx2`zG-R$h~L;wH%fBfKXl#6k)zx}VD zKk}k|sxxDHYKs!Qtrkt~nbKapYTmR2Z<_=!t4|TTzXRRJSrX(I%%C#k)~^Ns|6P3T zwz~@CcuyC{kP61s^QK8h9R!*aGdC-5mQ6dy==6QR=MEp?G>PQz`~2?eFFMS(r+K1g zp!&qb32C!ZG_9s->U*tRla<=$@$cY?|5H+adAMETx@7!MusHjBPl?KXziQ+6?1D=V ze?2)-gt;N$>Wd8<>nsYyl^Lt{Fxgl%o_?@o{T-$+24C7lzi+*sf1s9QvY5Z$XS=Iy lUyMDUTPOc|vvcNeU4iM^B0ctPia>WVc)I$ztaD0e0syFMv7G<_ diff --git a/pelican/tests/output/basic/theme/images/icons/google-groups.png b/pelican/tests/output/basic/theme/images/icons/google-groups.png deleted file mode 100644 index bbd0a0fd41295e94081103efe82742a5c6411765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)wr?kW++e@xB+qT~SFYEF=HvR&ieDr#i-_xj} zRHo4+e;!+Noelr;cc?77Y;{c*CNr6Zes7m1^J^+M9sV--D^!{k1_1#;6aW?Y?FKU> z$wUFckfr-O)R-Be!K8BMN$?ljo<0akOpD)OEKI~9+x!b$boZC|3lK-`{C{xHEuU!d zCn!ydf)v}GF)B$#1SpIDL5ep&8ms%oIbw(Zf<>Eu zV{!X$x!~%@{^9sNR&mx%AN_fQnat#ZJ3j~K-$A9Q{GPt1rQRSFm;ow5sT2?@^QR4r zg$anDgeCx$iqb6h2iG6)ockYoL!0v;mgd!$p2~_@_rOO_1Na`l%Wwj6hQdz( O0000oJ)blrcs(C@6ijHhGjL zrFRi_0z}#gh+z_?jx?ulJ6ZEDq_MICdrx(I>4q_hBh(7t5P3nx z6N?eUwA{x^#MIz^w4#;vg#Q`{-|sTaZm+z|gUicmu%q_q_{S4K=37O~-YZFy$l zCeshS!0W4y4-;Rs{O>veK>w%APq})#_~VzlN~kv#Z!>>U^FI6esN%Y~QuIs1d#~iY zS5C<<$DO!3cexVMKA`VP&KrXDnvg`iD8?-qH)mw8u{$e0Ls5IrFnpzz@8B4^@ijQjs{a4Z+iYWeG zt$5N5AMVx+R~iI;l~A9E$d3ce%4xvm2W_r2NEe$slb&w_>f!(Z002ovPDHLkV1lnz B@09=m diff --git a/pelican/tests/output/basic/theme/images/icons/hackernews.png b/pelican/tests/output/basic/theme/images/icons/hackernews.png deleted file mode 100644 index 8e05e3ee207e114a96f3811f46f68d17d52fe80b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2771 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 Z0sz-j0)=#JDs2D&002ovPDHLkV1kM1SuX$p diff --git a/pelican/tests/output/basic/theme/images/icons/lastfm.png b/pelican/tests/output/basic/theme/images/icons/lastfm.png deleted file mode 100644 index 2eedd2daa1429ba026c0b3c81f200c7df55d199a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmV-O1GoH%P)KCJu$;;6i zN)?b2a3_#VfTsWs$6EHV5TGNlK%}w4u2N|o9mJtskW6u)FfMY|?6HLq0N~tSmCYiQ z2itn^l^G`qTae2D0xESFZh|%tXmDcRU;!-yQXzzdgu?j^sE-_`#F)I#a0AjAIORAv z?nua{5j_L2Xf^mv7?p>M&VsISuyh@C_u_&8Tdjpsq*G;#gR3rt3(wqpYJX|(pqnm- zVi_(t9gaQ}dWUeQ9S7b0nAMvJMjCC()%*h2T()P6`Q<<4KoQZ3;E)b@mqq9E^qzbJ^&kHt zb@z3sXYQl9ZY#2oD@eP!I~#uc8*V^AwupI;L7D|Jvi|(8qu0 z2LL$zBz)6?fx+w8bl#l{x;rm&{_hjrZqU60&R?r z_q^a%r%rJ@Z+x)Fd-;e{U-Iff*T}z9(5p5g3wcDXPJR3rG$+nsWZfoYCWAb*gT_Bo z7fg}|L9J&75r5f0ZeI>gIn5MAw<$RbKrq)K4wK5le| zR(k=@SlVyBWV*`avXNJ2NP$f#q_(8G+6X;MtJy>;4`+;2 znIjMBZmisPo~Hw3I)yO?atTx+i^wMNq>KkRoaf=R#1u=&Mhm*)MMoa?yQ=3?Z|U=o zU9OHh!itfmFwG$0g0M5@al}`~v399M8f%oORSV+K_KnG|j?V;kMf)2sF5LyF&y{nJ Sd8X6=0000 diff --git a/pelican/tests/output/basic/theme/images/icons/linkedin.png b/pelican/tests/output/basic/theme/images/icons/linkedin.png deleted file mode 100644 index 06a88016f191d1f7596e5d159eb9e3ef276b6ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)NJD$VFG5yq%r(;8zR}7Ydty&~ue@oPv z!go{cG`vvH)n(hYdJfur_4kM7-}`N$BLW71f|-O65QELNn>4;$_2zi#L7VQdUf*VG zc0B*xR8@Sfo>nmHN}+MDnqn5J#;f9g$TZW=OS!!C<4lU-jh|=cs;0XYW~;nhJEE0r zdMWpJ#bDNMT&}cGH>t7P-yM4W=hFCXaLv`alDWtkCwY0;!z58#z z#&T71?c1;2yXPjW|3Lt-K|fa>vgM24P7nS%my|*-?u{?k1z4y`Q@qLr7+I)}xOVW2 zJ3sxy0Crrjx2{T+o3K*EU*7;Otu&GVZhd>`xi2Rl`h0wRu?9M0pr|e$T%t()-9X(G zM?fxx1SUyc#XyCAwXc5_{TIPFaU$>TzBm6pmt%Vs1;7F00000 LNkvXXu0mjfHfAMI diff --git a/pelican/tests/output/basic/theme/images/icons/reddit.png b/pelican/tests/output/basic/theme/images/icons/reddit.png deleted file mode 100644 index d826d3e746a18b712db7a68746c0c523af802fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=KP)rn|{qWNU7Dgl~R~ zWNK}Sjg6(Fp|rEIpPrq2fPh0AJ zxy#GTfq{X3etxmY-Bn&^YHMt-t*g_~&)L`2qqxp^h?r+{fMacVpMN&`0001qNklWKP}*}Is^$| zQ}1hfWmjT2av-PYqbE!!n)oua2c5|Qn7a$5l#p|w6z7}`F{d?z0T5WQglfOLER+{E--Hu?5@wDUpV?F@=Mkg+ zN{1=uqDlzrnkbYp)J3q!I?Vn|_~M zVqi53FAJQ^xo7*4+R80OflZT^0WscTaBuO7ca6A_aA-H9M3Y@{DSLGBL)| zTym{{me}!*Z3962jmy>w<<#@)IsY9R%I3sYbB>~@mM@C5Ks~s4nX-}TW8S>D*g7F! hew!yYJnD{z;D0NLV2ni3qF(?2002ovPDHLkV1k{La&G_t diff --git a/pelican/tests/output/basic/theme/images/icons/slideshare.png b/pelican/tests/output/basic/theme/images/icons/slideshare.png deleted file mode 100644 index 9cbe8588e24976076e5fc3898fa97856122f6fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)YNn`_&)?H$|J+jM18jcAeNE5840mI#38{rmUny@9DE z#Xg@8y@9DE0*}W7yWQR+m>Mc@yWPA^!~YvlZXQ7Ti(&Z??RignZicC$0;ki-+teNz zN*Qw@h$6fTDiChi(;mQdV>IdC=QLyP(`3?fGmSD0E706p2ko0(Fn89&YPG`Qa4@$> zdhWPhszyk06L$T`#EcuEoIB7dp?k0q>OF&bXs#{9!Ot=1fBXlJ={G`9+@@d!27`fI z*^>PO`g==w@1W}FBwRnS8UK$h$DgmS5K-O+o6QEJ(Z~waYBd=2dOa)_3-qUlQ$o(J zM$*}Z*m~g-OePa_IvoOeR-jNQz{PlZ6lKDV2#PRA1rmt_T+Fw|P-fhVCCq=C0AY>_ z#9}czIyxxk)H|>~8V7Uy1sn}2#;nIlxE)_f_XF?+t*xyTxm-@(N8ncJn41xc#e6|8 dAc8(0=Pod^EtOP(ARYh!002ovPDHLkV1k4J!&(3U diff --git a/pelican/tests/output/basic/theme/images/icons/speakerdeck.png b/pelican/tests/output/basic/theme/images/icons/speakerdeck.png deleted file mode 100644 index 7281ec48b41095180a83d71eaf0b00c85116965b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)K92#E{?_PJ+8Tth@W(+a>28uk~_0`h`<(yY|`h z@3?AaV0?I7E@5C8LL5^B7?_#m1O5GLKL6{LaQ3ZN%$$19RhM^ilM4(QGb91Pk}#td z%#5L?Rn9&W7zkqrdeL$z%L))wjb8cZK2wtEL}mE*O&6H3%~&#zdHx68i}xJQZ+34dIdgm^E12V4($L!Sax!Q)0op z%%0y@llS*=IU_?ugf;+>a;DdHv`xcYwwSu^B5bgwWG8rbaUIq4<$P}6+C9-V(ZSGy!i4XI zBkkxgITji#coxBn7F*@>CvnH5Im-dI=x{a@nz|+mZz(oB8CqTLuD=F=p|2qrpWMi5G S=mtXo0000YRoeQcY09>#1xxKwS5F z8mlP6JGx3wQgxp~4T-?1`Rz0oPN3$iK>QzwU%sBkR`YrWi#XVjbZs+WxcmSb0KzU< z4R|<_pXuFnCY5*7ncLn>WBm*@=rz!g=9fLZ0#9?*eV!!i{{b4*NYE=UCUZ&x4QhHf zjrr}HsjUBBPiJ}aY9eRTvkFsE%bi<+hJ_q$)(X1QD;kN@ z$%`wz`8QVB1Z}9WYXRb&Kzt8~{{vn2e{DI?z%r-*E6ZK%Ff``oJb76HYP@>p``(Y0Zs!*!BjN>0I%aNVnQ8)X9Pc^Y zIsS936mToi>>TyPEkcc+2 z`5!z^ZFZ_O#v*`YvS&^RN+0_pGFvTxh}Lp2wqGagAdVyz;6#9udAenJvhWwC3QjN} ztg*<~69%xm!G(wSxK?V6H7%K70|sCIX&%<6rLrHmSw|10dx_{@95hn1(i_a}5^hC>VT?7YQHpjC*P~ez&J%_J0000< KMNUMnLSTY<*|#qM diff --git a/pelican/tests/output/basic/theme/images/icons/vimeo.png b/pelican/tests/output/basic/theme/images/icons/vimeo.png deleted file mode 100644 index 4b9d72127c574237090a2f5f2f7eb7be94a2b62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)K~#7FV*mo~S^J1YP}SCZ?(wd@Mi2p&f%E_|kV7PbYe1Nxz5O|y=nOth{(bt=TS6pPua;?J=e5) zBGkM)Pk5GtRBXBib(QPnRVW%@oC6PDyoRVi_QQr_=YS?+52c0sPeBv`1LxxFPe2CH z8{$R%ID<81>CXSCz@?@iUpz?mZ$MU^)He_47^%Sg0P#sgK~#7Fl~6T81W^oq2cX(5aX1R@6<62}xdAmT6>b%79aG~T97?pp zUBiU8?wcQZ@ytL(4yKyhs>_L_h@KZq&4RGqy&kuUuOC&N_n)+)st0x|+@BHFkRd@&PPEwb z&tB6>xX7cYComKsCfH0jmXR=>tbysq2Gd0WOmZB{y88Z3Wj9^}w-Gbm)y>{S4W9T7 zfp3d!a2x}~TiXWa<}BOO6S3ho2QJ^`nhs+IjSU!vHHb*~-y}#B5s^RLsrl%w&%5IQ O0000 - - - - - This is a super article ! - - - - - - - -
    -
    -
    -

    - This is a super article !

    -
    - -
    -

    Some content here !

    -
    -

    This is a simple title

    -

    And here comes the cool stuff.

    -alternate text -alternate text -
    ->>> from ipdb import set_trace
    ->>> set_trace()
    -
    -

    → And now try with some utf8 hell: ééé

    -
    - -
    - -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/basic/unbelievable.html b/pelican/tests/output/basic/unbelievable.html deleted file mode 100644 index 33e0ad53..00000000 --- a/pelican/tests/output/basic/unbelievable.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - Unbelievable ! - - - - - - - -
    -
    -
    -

    - Unbelievable !

    -
    - -
    -
    - - Published: Fri 15 October 2010 - - -

    In misc.

    - -

    Or completely awesome. Depends the needs.

    -

    a root-relative link to markdown-article -a file-relative link to markdown-article

    -
    -

    Testing sourcecode directive

    -
    1
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -
    -
    -

    Testing another case

    -

    This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.

    -
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -

    Lovely.

    -
    -
    -

    Testing more sourcecode directives

    -
     8def run(self):
    self.assert_has_content()
    10 try:
    lexer = get_lexer_by_name(self.arguments[0])
    12 except ValueError:
    # no lexer found - use the text one instead of an exception
    14 lexer = TextLexer()

    16 if ('linenos' in self.options and
    self.options['linenos'] not in ('table', 'inline')):
    18 self.options['linenos'] = 'table'

    20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
    if flag in self.options:
    22 self.options[flag] = True

    24 # noclasses should already default to False, but just in case...
    formatter = HtmlFormatter(noclasses=False, **self.options)
    26 parsed = highlight('\n'.join(self.content), lexer, formatter)
    return [nodes.raw('', parsed, format='html')]
    -

    Lovely.

    -
    -
    -

    Testing even more sourcecode directives

    -formatter = self.options and VARIANTS[self.options.keys()[0]] -

    Lovely.

    -
    -
    -

    Testing overriding config defaults

    -

    Even if the default is line numbers, we can override it here

    -
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -

    Lovely.

    -
    - -
    - -
    -
    -
    - -
    - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/a-markdown-powered-article.html b/pelican/tests/output/custom/a-markdown-powered-article.html deleted file mode 100644 index 00aa18e8..00000000 --- a/pelican/tests/output/custom/a-markdown-powered-article.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - A markdown powered article - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - A markdown powered article

    -
    - -
    -

    You're mutually oblivious.

    -

    a root-relative link to unbelievable -a file-relative link to unbelievable

    -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/archives.html b/pelican/tests/output/custom/archives.html deleted file mode 100644 index 1e9a8377..00000000 --- a/pelican/tests/output/custom/archives.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - -
    -

    Archives for Alexis' log

    - -
    -
    Fri 30 November 2012
    -
    FILENAME_METADATA example
    -
    Wed 29 February 2012
    -
    Second article
    -
    Wed 20 April 2011
    -
    A markdown powered article
    -
    Thu 17 February 2011
    -
    Article 1
    -
    Thu 17 February 2011
    -
    Article 2
    -
    Thu 17 February 2011
    -
    Article 3
    -
    Thu 02 December 2010
    -
    This is a super article !
    -
    Wed 20 October 2010
    -
    Oh yeah !
    -
    Fri 15 October 2010
    -
    Unbelievable !
    -
    Sun 14 March 2010
    -
    The baz tag
    -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/article-1.html b/pelican/tests/output/custom/article-1.html deleted file mode 100644 index cc15ba5c..00000000 --- a/pelican/tests/output/custom/article-1.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Article 1 - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Article 1

    -
    - -
    -

    Article 1

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/article-2.html b/pelican/tests/output/custom/article-2.html deleted file mode 100644 index cc331a4d..00000000 --- a/pelican/tests/output/custom/article-2.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Article 2 - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Article 2

    -
    - -
    -

    Article 2

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/article-3.html b/pelican/tests/output/custom/article-3.html deleted file mode 100644 index 8b180180..00000000 --- a/pelican/tests/output/custom/article-3.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Article 3 - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Article 3

    -
    - -
    -

    Article 3

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/author/alexis-metaireau.html b/pelican/tests/output/custom/author/alexis-metaireau.html deleted file mode 100644 index f768b15e..00000000 --- a/pelican/tests/output/custom/author/alexis-metaireau.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - Alexis' log - Alexis Métaireau - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -

    - Page 1 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/author/alexis-metaireau2.html b/pelican/tests/output/custom/author/alexis-metaireau2.html deleted file mode 100644 index 96b34bff..00000000 --- a/pelican/tests/output/custom/author/alexis-metaireau2.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - Alexis' log - Alexis Métaireau - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. - -
    3. - -
    4. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -

      There are comments.

      -
    5. -
    -

    - - « - Page 2 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/author/alexis-metaireau3.html b/pelican/tests/output/custom/author/alexis-metaireau3.html deleted file mode 100644 index 407c1a51..00000000 --- a/pelican/tests/output/custom/author/alexis-metaireau3.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Alexis' log - Alexis Métaireau - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. -
    -

    - - « - Page 3 / 3 -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/authors.html b/pelican/tests/output/custom/authors.html deleted file mode 100644 index 6374c4a4..00000000 --- a/pelican/tests/output/custom/authors.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - Alexis' log - Authors - - - - - - - -Fork me on GitHub - - - -
    -

    Authors on Alexis' log

    - -
    - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/categories.html b/pelican/tests/output/custom/categories.html deleted file mode 100644 index 393aef32..00000000 --- a/pelican/tests/output/custom/categories.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Alexis' log - Categories - - - - - - - -Fork me on GitHub - - -

    Categories on Alexis' log

    - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/category/bar.html b/pelican/tests/output/custom/category/bar.html deleted file mode 100644 index 4511bcb6..00000000 --- a/pelican/tests/output/custom/category/bar.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - Alexis' log - bar - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/category/cat1.html b/pelican/tests/output/custom/category/cat1.html deleted file mode 100644 index dc5c0579..00000000 --- a/pelican/tests/output/custom/category/cat1.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - Alexis' log - cat1 - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/category/misc.html b/pelican/tests/output/custom/category/misc.html deleted file mode 100644 index 053599ed..00000000 --- a/pelican/tests/output/custom/category/misc.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - Alexis' log - misc - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/category/yeah.html b/pelican/tests/output/custom/category/yeah.html deleted file mode 100644 index 17e8103e..00000000 --- a/pelican/tests/output/custom/category/yeah.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - Alexis' log - yeah - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/drafts/a-draft-article-without-date.html b/pelican/tests/output/custom/drafts/a-draft-article-without-date.html deleted file mode 100644 index 03aecc56..00000000 --- a/pelican/tests/output/custom/drafts/a-draft-article-without-date.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - A draft article without date - - - - - - - - -Fork me on GitHub - - -
    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/drafts/a-draft-article.html b/pelican/tests/output/custom/drafts/a-draft-article.html deleted file mode 100644 index 87be8bec..00000000 --- a/pelican/tests/output/custom/drafts/a-draft-article.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - A draft article - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - A draft article

    -
    - -
    -

    This is a draft article, it should live under the /drafts/ folder and not be -listed anywhere else.

    - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/alexis-metaireau.atom.xml b/pelican/tests/output/custom/feeds/alexis-metaireau.atom.xml deleted file mode 100644 index a9aa4d38..00000000 --- a/pelican/tests/output/custom/feeds/alexis-metaireau.atom.xml +++ /dev/null @@ -1,74 +0,0 @@ - -Alexis' log - Alexis Métaireauhttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00A personal blog.FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article.html<p>This is some article, in english</p> -A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/alexis-metaireau.rss.xml b/pelican/tests/output/custom/feeds/alexis-metaireau.rss.xml deleted file mode 100644 index 1ea22155..00000000 --- a/pelican/tests/output/custom/feeds/alexis-metaireau.rss.xml +++ /dev/null @@ -1,29 +0,0 @@ - -Alexis' log - Alexis Métaireauhttp://blog.notmyidea.org/A personal blog.Sun, 17 Nov 2013 23:29:00 +0100FILENAME_METADATA examplehttp://blog.notmyidea.org/filename_metadata-example.html<p>Some cool stuff!</p> -Alexis MétaireauFri, 30 Nov 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.htmlmiscSecond articlehttp://blog.notmyidea.org/second-article.html<p>This is some article, in english</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/second-article.htmlmiscfoobarbazA markdown powered articlehttp://blog.notmyidea.org/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Alexis MétaireauWed, 20 Apr 2011 00:00:00 +0200tag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.htmlcat1Article 1http://blog.notmyidea.org/article-1.html<p>Article 1</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-1.htmlcat1Article 2http://blog.notmyidea.org/article-2.html<p>Article 2</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-2.htmlcat1Article 3http://blog.notmyidea.org/article-3.html<p>Article 3</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-3.htmlcat1This is a super article !http://blog.notmyidea.org/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0100tag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.htmlyeahfoobarfoobarOh yeah !http://blog.notmyidea.org/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/oh-yeah.htmlbarohbaryeahUnbelievable !http://blog.notmyidea.org/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div>Alexis MétaireauFri, 15 Oct 2010 20:30:00 +0200tag:blog.notmyidea.org,2010-10-15:/unbelievable.htmlmiscThe baz taghttp://blog.notmyidea.org/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> -Alexis MétaireauSun, 14 Mar 2010 00:00:00 +0100tag:blog.notmyidea.org,2010-03-14:/tag/baz.htmlmisc \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/all-en.atom.xml b/pelican/tests/output/custom/feeds/all-en.atom.xml deleted file mode 100644 index 3054a950..00000000 --- a/pelican/tests/output/custom/feeds/all-en.atom.xml +++ /dev/null @@ -1,74 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00A personal blog.FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article.html<p>This is some article, in english</p> -A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/all-fr.atom.xml b/pelican/tests/output/custom/feeds/all-fr.atom.xml deleted file mode 100644 index 39565ca6..00000000 --- a/pelican/tests/output/custom/feeds/all-fr.atom.xml +++ /dev/null @@ -1,4 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/2012-02-29T00:00:00+01:00A personal blog.Deuxième article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -Trop bien !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/all.atom.xml b/pelican/tests/output/custom/feeds/all.atom.xml deleted file mode 100644 index f340f71f..00000000 --- a/pelican/tests/output/custom/feeds/all.atom.xml +++ /dev/null @@ -1,76 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00A personal blog.FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article.html<p>This is some article, in english</p> -Deuxième article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-3.html<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Trop bien !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/all.rss.xml b/pelican/tests/output/custom/feeds/all.rss.xml deleted file mode 100644 index e93d4753..00000000 --- a/pelican/tests/output/custom/feeds/all.rss.xml +++ /dev/null @@ -1,31 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/A personal blog.Sun, 17 Nov 2013 23:29:00 +0100FILENAME_METADATA examplehttp://blog.notmyidea.org/filename_metadata-example.html<p>Some cool stuff!</p> -Alexis MétaireauFri, 30 Nov 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.htmlmiscSecond articlehttp://blog.notmyidea.org/second-article.html<p>This is some article, in english</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/second-article.htmlmiscfoobarbazDeuxième articlehttp://blog.notmyidea.org/second-article-fr.html<p>Ceci est un article, en français.</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/second-article-fr.htmlmiscfoobarbazA markdown powered articlehttp://blog.notmyidea.org/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Alexis MétaireauWed, 20 Apr 2011 00:00:00 +0200tag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.htmlcat1Article 1http://blog.notmyidea.org/article-1.html<p>Article 1</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-1.htmlcat1Article 2http://blog.notmyidea.org/article-2.html<p>Article 2</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-2.htmlcat1Article 3http://blog.notmyidea.org/article-3.html<p>Article 3</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-3.htmlcat1This is a super article !http://blog.notmyidea.org/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0100tag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.htmlyeahfoobarfoobarOh yeah !http://blog.notmyidea.org/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/oh-yeah.htmlbarohbaryeahTrop bien !http://blog.notmyidea.org/oh-yeah-fr.html<p>Et voila du contenu en français</p> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/oh-yeah-fr.htmlmiscUnbelievable !http://blog.notmyidea.org/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div>Alexis MétaireauFri, 15 Oct 2010 20:30:00 +0200tag:blog.notmyidea.org,2010-10-15:/unbelievable.htmlmiscThe baz taghttp://blog.notmyidea.org/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> -Alexis MétaireauSun, 14 Mar 2010 00:00:00 +0100tag:blog.notmyidea.org,2010-03-14:/tag/baz.htmlmisc \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/bar.atom.xml b/pelican/tests/output/custom/feeds/bar.atom.xml deleted file mode 100644 index 002de037..00000000 --- a/pelican/tests/output/custom/feeds/bar.atom.xml +++ /dev/null @@ -1,8 +0,0 @@ - -Alexis' log - barhttp://blog.notmyidea.org/2010-10-20T10:14:00+02:00A personal blog.Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/bar.rss.xml b/pelican/tests/output/custom/feeds/bar.rss.xml deleted file mode 100644 index 53035e71..00000000 --- a/pelican/tests/output/custom/feeds/bar.rss.xml +++ /dev/null @@ -1,8 +0,0 @@ - -Alexis' log - barhttp://blog.notmyidea.org/A personal blog.Wed, 20 Oct 2010 10:14:00 +0200Oh yeah !http://blog.notmyidea.org/oh-yeah.html<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/oh-yeah.htmlbarohbaryeah \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/cat1.atom.xml b/pelican/tests/output/custom/feeds/cat1.atom.xml deleted file mode 100644 index e8ed355b..00000000 --- a/pelican/tests/output/custom/feeds/cat1.atom.xml +++ /dev/null @@ -1,7 +0,0 @@ - -Alexis' log - cat1http://blog.notmyidea.org/2011-04-20T00:00:00+02:00A personal blog.A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-1.html<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-2.html<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/article-3.html<p>Article 3</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/cat1.rss.xml b/pelican/tests/output/custom/feeds/cat1.rss.xml deleted file mode 100644 index 9951b293..00000000 --- a/pelican/tests/output/custom/feeds/cat1.rss.xml +++ /dev/null @@ -1,7 +0,0 @@ - -Alexis' log - cat1http://blog.notmyidea.org/A personal blog.Wed, 20 Apr 2011 00:00:00 +0200A markdown powered articlehttp://blog.notmyidea.org/a-markdown-powered-article.html<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/unbelievable.html">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/unbelievable.html">a file-relative link to unbelievable</a></p>Alexis MétaireauWed, 20 Apr 2011 00:00:00 +0200tag:blog.notmyidea.org,2011-04-20:/a-markdown-powered-article.htmlcat1Article 1http://blog.notmyidea.org/article-1.html<p>Article 1</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-1.htmlcat1Article 2http://blog.notmyidea.org/article-2.html<p>Article 2</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-2.htmlcat1Article 3http://blog.notmyidea.org/article-3.html<p>Article 3</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/article-3.htmlcat1 \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/misc.atom.xml b/pelican/tests/output/custom/feeds/misc.atom.xml deleted file mode 100644 index b5a006e7..00000000 --- a/pelican/tests/output/custom/feeds/misc.atom.xml +++ /dev/null @@ -1,49 +0,0 @@ - -Alexis' log - mischttp://blog.notmyidea.org/2012-11-30T00:00:00+01:00A personal blog.FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.html<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article.html<p>This is some article, in english</p> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/misc.rss.xml b/pelican/tests/output/custom/feeds/misc.rss.xml deleted file mode 100644 index b9958cdb..00000000 --- a/pelican/tests/output/custom/feeds/misc.rss.xml +++ /dev/null @@ -1,16 +0,0 @@ - -Alexis' log - mischttp://blog.notmyidea.org/A personal blog.Fri, 30 Nov 2012 00:00:00 +0100FILENAME_METADATA examplehttp://blog.notmyidea.org/filename_metadata-example.html<p>Some cool stuff!</p> -Alexis MétaireauFri, 30 Nov 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-11-30:/filename_metadata-example.htmlmiscSecond articlehttp://blog.notmyidea.org/second-article.html<p>This is some article, in english</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/second-article.htmlmiscfoobarbazUnbelievable !http://blog.notmyidea.org/unbelievable.html<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/a-markdown-powered-article.html">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div>Alexis MétaireauFri, 15 Oct 2010 20:30:00 +0200tag:blog.notmyidea.org,2010-10-15:/unbelievable.htmlmiscThe baz taghttp://blog.notmyidea.org/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> -Alexis MétaireauSun, 14 Mar 2010 00:00:00 +0100tag:blog.notmyidea.org,2010-03-14:/tag/baz.htmlmisc \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/yeah.atom.xml b/pelican/tests/output/custom/feeds/yeah.atom.xml deleted file mode 100644 index 127ab590..00000000 --- a/pelican/tests/output/custom/feeds/yeah.atom.xml +++ /dev/null @@ -1,16 +0,0 @@ - -Alexis' log - yeahhttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00A personal blog.This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/custom/feeds/yeah.rss.xml b/pelican/tests/output/custom/feeds/yeah.rss.xml deleted file mode 100644 index 98b820ec..00000000 --- a/pelican/tests/output/custom/feeds/yeah.rss.xml +++ /dev/null @@ -1,4 +0,0 @@ - -Alexis' log - yeahhttp://blog.notmyidea.org/A personal blog.Sun, 17 Nov 2013 23:29:00 +0100This is a super article !http://blog.notmyidea.org/this-is-a-super-article.html<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0100tag:blog.notmyidea.org,2010-12-02:/this-is-a-super-article.htmlyeahfoobarfoobar \ No newline at end of file diff --git a/pelican/tests/output/custom/filename_metadata-example.html b/pelican/tests/output/custom/filename_metadata-example.html deleted file mode 100644 index 2fcbe562..00000000 --- a/pelican/tests/output/custom/filename_metadata-example.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - FILENAME_METADATA example - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - FILENAME_METADATA example

    -
    - -
    -

    Some cool stuff!

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/index.html b/pelican/tests/output/custom/index.html deleted file mode 100644 index ff675f85..00000000 --- a/pelican/tests/output/custom/index.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -

    - Page 1 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/index2.html b/pelican/tests/output/custom/index2.html deleted file mode 100644 index 941c176e..00000000 --- a/pelican/tests/output/custom/index2.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. - -
    3. - -
    4. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -

      There are comments.

      -
    5. -
    -

    - - « - Page 2 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/index3.html b/pelican/tests/output/custom/index3.html deleted file mode 100644 index de32dbe3..00000000 --- a/pelican/tests/output/custom/index3.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. -
    -

    - - « - Page 3 / 3 -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/jinja2_template.html b/pelican/tests/output/custom/jinja2_template.html deleted file mode 100644 index 1ba06323..00000000 --- a/pelican/tests/output/custom/jinja2_template.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - -Some text - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/oh-yeah-fr.html b/pelican/tests/output/custom/oh-yeah-fr.html deleted file mode 100644 index bb7eb44e..00000000 --- a/pelican/tests/output/custom/oh-yeah-fr.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Trop bien ! - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Trop bien !

    -
    - -
    -

    Et voila du contenu en français

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/oh-yeah.html b/pelican/tests/output/custom/oh-yeah.html deleted file mode 100644 index f7afb399..00000000 --- a/pelican/tests/output/custom/oh-yeah.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - Oh yeah ! - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Oh yeah !

    -
    - -
    -
    -

    Why not ?

    -

    After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

    -alternate text -
    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/override/index.html b/pelican/tests/output/custom/override/index.html deleted file mode 100644 index ebf07d8d..00000000 --- a/pelican/tests/output/custom/override/index.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Override url/save_as - - - - - - - -Fork me on GitHub - - -
    -

    Override url/save_as

    - -

    Test page which overrides save_as and url so that this page will be generated -at a custom location.

    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/pages/this-is-a-test-hidden-page.html b/pelican/tests/output/custom/pages/this-is-a-test-hidden-page.html deleted file mode 100644 index e5fa1aaf..00000000 --- a/pelican/tests/output/custom/pages/this-is-a-test-hidden-page.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - This is a test hidden page - - - - - - - -Fork me on GitHub - - -
    -

    This is a test hidden page

    - -

    This is great for things like error(404) pages -Anyone can see this page but it's not linked to anywhere!

    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/pages/this-is-a-test-page.html b/pelican/tests/output/custom/pages/this-is-a-test-page.html deleted file mode 100644 index 26c6c0e9..00000000 --- a/pelican/tests/output/custom/pages/this-is-a-test-page.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - This is a test page - - - - - - - -Fork me on GitHub - - -
    -

    This is a test page

    - -

    Just an image.

    -alternate text -wrong path since 'images' folder does not exist - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/pictures/Fat_Cat.jpg b/pelican/tests/output/custom/pictures/Fat_Cat.jpg deleted file mode 100644 index d8a96d356be94e782aaf36ba4e47168435b56338..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62675 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

    )n(M0K@w($Mad^U|4b&>Gs6u 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 diff --git a/pelican/tests/output/custom/pictures/Sushi.jpg b/pelican/tests/output/custom/pictures/Sushi.jpg deleted file mode 100644 index e49e5f0ab53461187c2cf61ebc1f3befdc937aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28992 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 V9RVclK)_SR8Zrq#de{_0|JgZd7T*8> diff --git a/pelican/tests/output/custom/robots.txt b/pelican/tests/output/custom/robots.txt deleted file mode 100644 index 19a6e299..00000000 --- a/pelican/tests/output/custom/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: /pictures diff --git a/pelican/tests/output/custom/second-article-fr.html b/pelican/tests/output/custom/second-article-fr.html deleted file mode 100644 index 8e360e9c..00000000 --- a/pelican/tests/output/custom/second-article-fr.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Deuxième article - - - - - - - - - - -Fork me on GitHub - -

    -
    -
    -
    -

    - Deuxième article

    -
    - -
    -

    Ceci est un article, en français.

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/second-article.html b/pelican/tests/output/custom/second-article.html deleted file mode 100644 index 5001f0d0..00000000 --- a/pelican/tests/output/custom/second-article.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Second article - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Second article

    -
    - -
    -

    This is some article, in english

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tag/bar.html b/pelican/tests/output/custom/tag/bar.html deleted file mode 100644 index b2b22714..00000000 --- a/pelican/tests/output/custom/tag/bar.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - Alexis' log - bar - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -

      There are comments.

      -
    3. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tag/baz.html b/pelican/tests/output/custom/tag/baz.html deleted file mode 100644 index ef53c34c..00000000 --- a/pelican/tests/output/custom/tag/baz.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - The baz tag - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - The baz tag

    -
    - -
    -

    This article overrides the listening of the articles under the baz tag.

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tag/foo.html b/pelican/tests/output/custom/tag/foo.html deleted file mode 100644 index 7684fbc5..00000000 --- a/pelican/tests/output/custom/tag/foo.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - Alexis' log - foo - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tag/foobar.html b/pelican/tests/output/custom/tag/foobar.html deleted file mode 100644 index 5816e395..00000000 --- a/pelican/tests/output/custom/tag/foobar.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - Alexis' log - foobar - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tag/oh.html b/pelican/tests/output/custom/tag/oh.html deleted file mode 100644 index 16ea9d0d..00000000 --- a/pelican/tests/output/custom/tag/oh.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Oh Oh Oh - - - - - - - -Fork me on GitHub - - -
    -

    Oh Oh Oh

    - -

    This page overrides the listening of the articles under the oh tag.

    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tag/yeah.html b/pelican/tests/output/custom/tag/yeah.html deleted file mode 100644 index 929a48e0..00000000 --- a/pelican/tests/output/custom/tag/yeah.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - Alexis' log - yeah - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/tags.html b/pelican/tests/output/custom/tags.html deleted file mode 100644 index 244c21e3..00000000 --- a/pelican/tests/output/custom/tags.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - Alexis' log - Tags - - - - - - - -Fork me on GitHub - - - -
    -

    Tags for Alexis' log

    - -
    - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/theme/css/fonts.css b/pelican/tests/output/custom/theme/css/fonts.css deleted file mode 100644 index 56015076..00000000 --- a/pelican/tests/output/custom/theme/css/fonts.css +++ /dev/null @@ -1,12 +0,0 @@ -@font-face { - font-family: 'Yanone Kaffeesatz'; - font-style: normal; - font-weight: 400; - src: - local('Yanone Kaffeesatz Regular'), - local('YanoneKaffeesatz-Regular'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ - url('../fonts/Yanone_Kaffeesatz_400.woff') format('woff'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ - url('../fonts/Yanone_Kaffeesatz_400.woff2') format('woff2'); -} diff --git a/pelican/tests/output/custom/theme/css/main.css b/pelican/tests/output/custom/theme/css/main.css deleted file mode 100644 index aaea9b81..00000000 --- a/pelican/tests/output/custom/theme/css/main.css +++ /dev/null @@ -1,466 +0,0 @@ -/* - Name: Smashing HTML5 - Date: July 2009 - Description: Sample layout for HTML5 and CSS3 goodness. - Version: 1.0 - License: MIT - Licensed by: Smashing Media GmbH - Original author: Enrique Ramírez -*/ - -/* Imports */ -@import url("reset.css"); -@import url("pygment.css"); -@import url("typogrify.css"); -@import url("fonts.css"); - -/***** Global *****/ -/* Body */ -body { - background: #F5F4EF; - color: #000305; - font-size: 87.5%; /* Base font size: 14px */ - font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; - line-height: 1.429; - margin: 0; - padding: 0; - text-align: left; -} - -/* Headings */ -h1 {font-size: 2em } -h2 {font-size: 1.571em} /* 22px */ -h3 {font-size: 1.429em} /* 20px */ -h4 {font-size: 1.286em} /* 18px */ -h5 {font-size: 1.143em} /* 16px */ -h6 {font-size: 1em} /* 14px */ - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; - margin-bottom: .8em; - font-family: 'Yanone Kaffeesatz', arial, serif; -} - -h3, h4, h5, h6 { margin-top: .8em; } - -hr { border: 2px solid #EEEEEE; } - -/* Anchors */ -a {outline: 0;} -a img {border: 0px; text-decoration: none;} -a:link, a:visited { - color: #C74350; - padding: 0 1px; - text-decoration: underline; -} -a:hover, a:active { - background-color: #C74350; - color: #fff; - text-decoration: none; - text-shadow: 1px 1px 1px #333; -} - -h1 a:hover { - background-color: inherit -} - -/* Paragraphs */ -div.line-block, -p { margin-top: 1em; - margin-bottom: 1em;} - -strong, b {font-weight: bold;} -em, i {font-style: italic;} - -/* Lists */ -ul { - list-style: outside disc; - margin: 0em 0 0 1.5em; -} - -ol { - list-style: outside decimal; - margin: 0em 0 0 1.5em; -} - -li { margin-top: 0.5em; - margin-bottom: 1em; } - -.post-info { - float:right; - margin:10px; - padding:5px; -} - -.post-info p{ - margin-top: 1px; - margin-bottom: 1px; -} - -.readmore { float: right } - -dl {margin: 0 0 1.5em 0;} -dt {font-weight: bold;} -dd {margin-left: 1.5em;} - -pre{background-color: rgb(238, 238, 238); padding: 10px; margin: 10px; overflow: auto;} - -/* Quotes */ -blockquote { - margin: 20px; - font-style: italic; -} -cite {} - -q {} - -div.note { - float: right; - margin: 5px; - font-size: 85%; - max-width: 300px; -} - -/* Tables */ -table {margin: .5em auto 1.5em auto; width: 98%;} - - /* Thead */ - thead th {padding: .5em .4em; text-align: left;} - thead td {} - - /* Tbody */ - tbody td {padding: .5em .4em;} - tbody th {} - - tbody .alt td {} - tbody .alt th {} - - /* Tfoot */ - tfoot th {} - tfoot td {} - -/* HTML5 tags */ -header, section, footer, -aside, nav, article, figure { - display: block; -} - -/***** Layout *****/ -.body {clear: both; margin: 0 auto; width: 800px;} -img.right, figure.right, div.figure.align-right { - float: right; - margin: 0 0 2em 2em; -} -img.left, figure.left, div.figure.align-left { - float: left; - margin: 0 2em 2em 0; -} - -/* .rst support */ -div.figure img, figure img { /* to fill figure exactly */ - width: 100%; -} -div.figure p.caption, figure p.caption { /* margin provided by figure */ - margin-top: 0; - margin-bottom: 0; -} - -/* - Header -*****************/ -#banner { - margin: 0 auto; - padding: 2.5em 0 0 0; -} - - /* Banner */ - #banner h1 {font-size: 3.571em; line-height: 0;} - #banner h1 a:link, #banner h1 a:visited { - color: #000305; - display: block; - font-weight: bold; - margin: 0 0 .6em .2em; - text-decoration: none; - } - #banner h1 a:hover, #banner h1 a:active { - background: none; - color: #C74350; - text-shadow: none; - } - - #banner h1 strong {font-size: 0.36em; font-weight: normal;} - - /* Main Nav */ - #banner nav { - background: #000305; - font-size: 1.143em; - height: 40px; - line-height: 30px; - margin: 0 auto 2em auto; - padding: 0; - text-align: center; - width: 800px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - #banner nav ul {list-style: none; margin: 0 auto; width: 800px;} - #banner nav li {float: left; display: inline; margin: 0;} - - #banner nav a:link, #banner nav a:visited { - color: #fff; - display: inline-block; - height: 30px; - padding: 5px 1.5em; - text-decoration: none; - } - #banner nav a:hover, #banner nav a:active, - #banner nav .active a:link, #banner nav .active a:visited { - background: #C74451; - color: #fff; - text-shadow: none !important; - } - - #banner nav li:first-child a { - border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - -webkit-border-top-left-radius: 5px; - - border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - -webkit-border-bottom-left-radius: 5px; - } - -/* - Featured -*****************/ -#featured { - background: #fff; - margin-bottom: 2em; - overflow: hidden; - padding: 20px; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#featured figure { - border: 2px solid #eee; - float: right; - margin: 0.786em 2em 0 5em; - width: 248px; -} -#featured figure img {display: block; float: right;} - -#featured h2 {color: #C74451; font-size: 1.714em; margin-bottom: 0.333em;} -#featured h3 {font-size: 1.429em; margin-bottom: .5em;} - -#featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;} -#featured h3 a:hover, #featured h3 a:active {color: #fff;} - -/* - Body -*****************/ -#content { - background: #fff; - margin-bottom: 2em; - overflow: hidden; - padding: 20px 20px; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -/* - Extras -*****************/ -#extras {margin: 0 auto 3em auto; overflow: hidden;} - -#extras ul {list-style: none; margin: 0;} -#extras li {border-bottom: 1px solid #fff;} -#extras h2 { - color: #C74350; - font-size: 1.429em; - margin-bottom: .25em; - padding: 0 3px; -} - -#extras a:link, #extras a:visited { - color: #444; - display: block; - border-bottom: 1px solid #F4E3E3; - text-decoration: none; - padding: .3em .25em; -} - -#extras a:hover, #extras a:active {color: #fff;} - - /* Blogroll */ - #extras .blogroll { - float: left; - width: 615px; - } - - #extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;} - - /* Social */ - #extras .social { - float: right; - width: 175px; - } - - #extras div[class='social'] a { - background-repeat: no-repeat; - background-position: 3px 6px; - padding-left: 25px; - } - - /* Icons */ - .social a[href*='about.me'] {background-image: url('../images/icons/aboutme.png');} - .social a[href*='bitbucket.org'] {background-image: url('../images/icons/bitbucket.png');} - .social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');} - .social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');} - .social a[href*='gitorious.org'] {background-image: url('../images/icons/gitorious.png');} - .social a[href*='github.com'], - .social a[href*='git.io'] { - background-image: url('../images/icons/github.png'); - background-size: 16px 16px; - } - .social a[href*='gittip.com'] {background-image: url('../images/icons/gittip.png');} - .social a[href*='plus.google.com'] {background-image: url('../images/icons/google-plus.png');} - .social a[href*='groups.google.com'] {background-image: url('../images/icons/google-groups.png');} - .social a[href*='news.ycombinator.com'], - .social a[href*='hackernewsers.com'] {background-image: url('../images/icons/hackernews.png');} - .social a[href*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');} - .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.png');} - .social a[href*='reddit.com'] {background-image: url('../images/icons/reddit.png');} - .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');} - .social a[href*='slideshare.net'] {background-image: url('../images/icons/slideshare.png');} - .social a[href*='speakerdeck.com'] {background-image: url('../images/icons/speakerdeck.png');} - .social a[href*='stackoverflow.com'] {background-image: url('../images/icons/stackoverflow.png');} - .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');} - .social a[href*='vimeo.com'] {background-image: url('../images/icons/vimeo.png');} - .social a[href*='youtube.com'] {background-image: url('../images/icons/youtube.png');} - -/* - About -*****************/ -#about { - background: #fff; - font-style: normal; - margin-bottom: 2em; - overflow: hidden; - padding: 20px; - text-align: left; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#about .primary {float: left; width: 165px;} -#about .primary strong {color: #C64350; display: block; font-size: 1.286em;} -#about .photo {float: left; margin: 5px 20px;} - -#about .url:link, #about .url:visited {text-decoration: none;} - -#about .bio {float: right; width: 500px;} - -/* - Footer -*****************/ -#contentinfo {padding-bottom: 2em; text-align: right;} - -/***** Sections *****/ -/* Blog */ -.hentry { - display: block; - clear: both; - border-top: 1px solid #eee; - padding: 1.5em 0; -} -li:first-child .hentry, #content > .hentry {border: 0; margin: 0;} -#content > .hentry {padding: 1em 0;} -.hentry img{display : none ;} -.entry-title {font-size: 3em; margin-bottom: 10px; margin-top: 0;} -.entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;} -.entry-title a:visited {background-color: #fff;} - -.hentry .post-info * {font-style: normal;} - - /* Content */ - .hentry footer {margin-bottom: 2em;} - .hentry footer address {display: inline;} - #posts-list footer address {display: block;} - - /* Blog Index */ - #posts-list {list-style: none; margin: 0;} - #posts-list .hentry {padding-left: 10px; position: relative;} - - #posts-list footer { - left: 10px; - position: relative; - float: left; - top: 0.5em; - width: 190px; - } - - /* About the Author */ - #about-author { - background: #f9f9f9; - clear: both; - font-style: normal; - margin: 2em 0; - padding: 10px 20px 15px 20px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - #about-author strong { - color: #C64350; - clear: both; - display: block; - font-size: 1.429em; - } - - #about-author .photo {border: 1px solid #ddd; float: left; margin: 5px 1em 0 0;} - - /* Comments */ - #comments-list {list-style: none; margin: 0 1em;} - #comments-list blockquote { - background: #f8f8f8; - clear: both; - font-style: normal; - margin: 0; - padding: 15px 20px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - #comments-list footer {color: #888; padding: .5em 1em 0 0; text-align: right;} - - #comments-list li:nth-child(2n) blockquote {background: #F5f5f5;} - - /* Add a Comment */ - #add-comment label {clear: left; float: left; text-align: left; width: 150px;} - #add-comment input[type='text'], - #add-comment input[type='email'], - #add-comment input[type='url'] {float: left; width: 200px;} - - #add-comment textarea {float: left; height: 150px; width: 495px;} - - #add-comment p.req {clear: both; margin: 0 .5em 1em 0; text-align: right;} - - #add-comment input[type='submit'] {float: right; margin: 0 .5em;} - #add-comment * {margin-bottom: .5em;} diff --git a/pelican/tests/output/custom/theme/css/pygment.css b/pelican/tests/output/custom/theme/css/pygment.css deleted file mode 100644 index fdd056f6..00000000 --- a/pelican/tests/output/custom/theme/css/pygment.css +++ /dev/null @@ -1,205 +0,0 @@ -.hll { -background-color:#eee; -} -.c { -color:#408090; -font-style:italic; -} -.err { -border:1px solid #FF0000; -} -.k { -color:#007020; -font-weight:bold; -} -.o { -color:#666666; -} -.cm { -color:#408090; -font-style:italic; -} -.cp { -color:#007020; -} -.c1 { -color:#408090; -font-style:italic; -} -.cs { -background-color:#FFF0F0; -color:#408090; -} -.gd { -color:#A00000; -} -.ge { -font-style:italic; -} -.gr { -color:#FF0000; -} -.gh { -color:#000080; -font-weight:bold; -} -.gi { -color:#00A000; -} -.go { -color:#303030; -} -.gp { -color:#C65D09; -font-weight:bold; -} -.gs { -font-weight:bold; -} -.gu { -color:#800080; -font-weight:bold; -} -.gt { -color:#0040D0; -} -.kc { -color:#007020; -font-weight:bold; -} -.kd { -color:#007020; -font-weight:bold; -} -.kn { -color:#007020; -font-weight:bold; -} -.kp { -color:#007020; -} -.kr { -color:#007020; -font-weight:bold; -} -.kt { -color:#902000; -} -.m { -color:#208050; -} -.s { -color:#4070A0; -} -.na { -color:#4070A0; -} -.nb { -color:#007020; -} -.nc { -color:#0E84B5; -font-weight:bold; -} -.no { -color:#60ADD5; -} -.nd { -color:#555555; -font-weight:bold; -} -.ni { -color:#D55537; -font-weight:bold; -} -.ne { -color:#007020; -} -.nf { -color:#06287E; -} -.nl { -color:#002070; -font-weight:bold; -} -.nn { -color:#0E84B5; -font-weight:bold; -} -.nt { -color:#062873; -font-weight:bold; -} -.nv { -color:#BB60D5; -} -.ow { -color:#007020; -font-weight:bold; -} -.w { -color:#BBBBBB; -} -.mf { -color:#208050; -} -.mh { -color:#208050; -} -.mi { -color:#208050; -} -.mo { -color:#208050; -} -.sb { -color:#4070A0; -} -.sc { -color:#4070A0; -} -.sd { -color:#4070A0; -font-style:italic; -} -.s2 { -color:#4070A0; -} -.se { -color:#4070A0; -font-weight:bold; -} -.sh { -color:#4070A0; -} -.si { -color:#70A0D0; -font-style:italic; -} -.sx { -color:#C65D09; -} -.sr { -color:#235388; -} -.s1 { -color:#4070A0; -} -.ss { -color:#517918; -} -.bp { -color:#007020; -} -.vc { -color:#BB60D5; -} -.vg { -color:#BB60D5; -} -.vi { -color:#BB60D5; -} -.il { -color:#208050; -} diff --git a/pelican/tests/output/custom/theme/css/reset.css b/pelican/tests/output/custom/theme/css/reset.css deleted file mode 100644 index c88e6196..00000000 --- a/pelican/tests/output/custom/theme/css/reset.css +++ /dev/null @@ -1,52 +0,0 @@ -/* - Name: Reset Stylesheet - Description: Resets browser's default CSS - Author: Eric Meyer - Author URI: https://meyerweb.com/eric/tools/css/reset/ -*/ - -/* v1.0 | 20080212 */ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - background: transparent; - border: 0; - font-size: 100%; - margin: 0; - outline: 0; - padding: 0; - vertical-align: baseline; -} - -body {line-height: 1;} - -ol, ul {list-style: none;} - -blockquote, q {quotes: none;} - -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} - -/* remember to define focus styles! */ -:focus { - outline: 0; -} - -/* remember to highlight inserts somehow! */ -ins {text-decoration: none;} -del {text-decoration: line-through;} - -/* tables still need 'cellspacing="0"' in the markup */ -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file diff --git a/pelican/tests/output/custom/theme/css/typogrify.css b/pelican/tests/output/custom/theme/css/typogrify.css deleted file mode 100644 index 3bae4976..00000000 --- a/pelican/tests/output/custom/theme/css/typogrify.css +++ /dev/null @@ -1,3 +0,0 @@ -.caps {font-size:.92em;} -.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} -.dquo {margin-left:-.38em;} diff --git a/pelican/tests/output/custom/theme/css/wide.css b/pelican/tests/output/custom/theme/css/wide.css deleted file mode 100644 index 88fd59ce..00000000 --- a/pelican/tests/output/custom/theme/css/wide.css +++ /dev/null @@ -1,48 +0,0 @@ -@import url("main.css"); - -body { - font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; -} - -.post-info{ - display: none; -} - -#banner nav { - display: none; - -moz-border-radius: 0px; - margin-bottom: 20px; - overflow: hidden; - font-size: 1em; - background: #F5F4EF; -} - -#banner nav ul{ - padding-right: 50px; -} - -#banner nav li{ - float: right; - color: #000; -} - -#banner nav li a { - color: #000; -} - -#banner h1 { - margin-bottom: -18px; -} - -#featured, #extras { - padding: 50px; -} - -#featured { - padding-top: 20px; -} - -#extras { - padding-top: 0px; - padding-bottom: 0px; -} diff --git a/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.eot b/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.eot deleted file mode 100644 index b3b90dbc3ef34775a8689ab6a4494810c14c5a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20932 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 mb?#}R*%4j(VLYH*AKF5oS rn0PZ0T66rs0j%h=b^w~umnB; diff --git a/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.svg b/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.svg deleted file mode 100644 index a69669b5..00000000 --- a/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.svg +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.ttf b/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.ttf deleted file mode 100644 index 6f4feb02d14c849ba1fb7dc112243386b2ad8f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39168 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 diff --git a/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.woff2 b/pelican/tests/output/custom/theme/fonts/Yanone_Kaffeesatz_400.woff2 deleted file mode 100644 index 7b18f7ea49098fff3aac28a1feb0cecc429bb2ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18320 zcmV)KK)SzoPew8T0RR9107sAj5dZ)H0GaFn07okT0RR9100000000000000000000 z0000Qb{n549D+OsU;ufwyW4gH`|mHUcCAhbROf1%m(wg)Iz$ zBO9BBHSCy4;dTI2MCvzL6m?;f3q4^J3 zn?jvX8Rux$3dW)$94I=8FC$C<0{zJt^8&Yqj6l~elaNO@3y$q?#~9ZE+u6q*p|MYL zf5Ov$cS+$@+Ol@U=cvx=0DaJi{b#Dq%>RFP@4%qMoF1M5(#};1>mX%R&?y)?ce#cG zSr#tM^WTp>`?b$|h$V*TmQ*7{bWP&f8;Ne+HJT=AgaQfvzdt#({>=aaMWO(KKroS@ zkS*C8=IqU}yB~|{H_dHVc`vqGUfcZ|1cw343AOGTl8RZj_jmhCrPifv_QdTNK{9zl zq3Cy?M?46Hu0mS+A7CKh|LH7e68^uHG=}A~`3OL=ldjvXuQlMIfEJiXQt0&=pt(ga z`WBIlv5k$5TC-qH#fZ^TWzY&%V`JwlHtM%oujog#{cB5sYljsWKnB#25u~8@ z&UT$LMVY6rn!g4F6J-{iAx`^%Fwrs^BDA$R_4m9$NNmtEp(PsJS(4;yvUN z(DQybYGpe}V66h|&qwpGsuXe$<;ihL!Qdqe5Fo@#EJBtQ za(=gc$Fg_!*BzYb*E6X)l0X9O)*cW5zWm=&OpL^X2#6qJa)^>O#K;BWt|z3o-Vk5m zkVsJwlLSbTEJ%(#NP!ASjao>(7D$^mNQXWU1b{0LV6uz$$cFHdP+}viA3tP`4aPki@r?ivh4s98t zxJ7X@FcXP(9moBGC`LD-1tVMm3lSWBGC9&$dy-&0>k=@4N@0RU3TOs?8qrm_6`7X> z=yp8mYUv;0eGrX22~1-Qb``}YQc-b@jp)5nmar#QOwyVWa-^WvTnK}(ETwx96N40A zNfJwQSdNP=-tRfFCO@O^M>c&7BPjq_@+XDxcq1UL#_47dFG+%GCKfhg)a2X~flG`- zf`^Z>gMxsNXzdm-XCy8e9v(eFoKZlO5Wp-m7AQ84fGroz9RiqVK+NkyL-5uUsh8du zeE5*?<%cOiIITztlu~5U$X7_ktOB%32R$)p0dw!PBY@Uwg7&sSaHP zX75*MfraE22P`cO$SvEi$OuqB0 zA>G-;^rvGevK5pW3@bR5Al`4iP_dB&MgJ<^tnYBgsAwNntx∾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 diff --git a/pelican/tests/output/custom/theme/fonts/font.css b/pelican/tests/output/custom/theme/fonts/font.css deleted file mode 100644 index a9eb87e6..00000000 --- a/pelican/tests/output/custom/theme/fonts/font.css +++ /dev/null @@ -1,12 +0,0 @@ -@font-face { - font-family: 'Yanone Kaffeesatz'; - font-style: normal; - font-weight: 400; - src: - local('Yanone Kaffeesatz Regular'), - local('YanoneKaffeesatz-Regular'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ - url('Yanone_Kaffeesatz_400.woff') format('woff'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ - url('Yanone_Kaffeesatz_400.woff2') format('woff2'); -} diff --git a/pelican/tests/output/custom/theme/images/icons/aboutme.png b/pelican/tests/output/custom/theme/images/icons/aboutme.png deleted file mode 100644 index 600110f2f63811ebea40af1b943fded0275b6a39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 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 FV1ku*k$3ca`voa6f0k zeB{69k@N|?Km7UBZZ))YUHu=w|Mw?(E)O$?WixY_FPL7s$Pm-8fstds@^ATL%bUet yZgfGChJzsUtA%$MR;8+S88GxaEa+z7`Ew3v5re0zpUXO@geCxdur~kz diff --git a/pelican/tests/output/custom/theme/images/icons/github.png b/pelican/tests/output/custom/theme/images/icons/github.png deleted file mode 100644 index 5d9109deab2b3669c845845515f4d53ab5d6daa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)3g@6&i?1|w)NXSf84|8m&o+0 zUbR{k48>ZU#v6!wqi1V1r%EE$MYAT@gfEZ`ebJgG`3x?P75EOx(Rb}pK9^g49TLfP zG|6;$SGbAH zWw$>tFUyCTTU=}VL5$UQcykD>ruLPAMktgpS2)vHd2`;>>D~O#r0q^piwN%{Eu7xl ze_3-g6EyPr+mZ( z$~zD9`4D^$F>WOyU!f<&c%QI`>dHS@;3~xO7I+5=MISM;>bsLPrcC8T?Gyg2EhYt{Z#{?9|afq=U$pRKgVkaa6A5hOW zm~E0;qoMsELHiVUdq+qHW_!=pLlCuB&nsXkrlThcr&yqB2Ez}bh}WQodCMG=62#-T(jq diff --git a/pelican/tests/output/custom/theme/images/icons/gitorious.png b/pelican/tests/output/custom/theme/images/icons/gitorious.png deleted file mode 100644 index a6705d0f462b505be4d9a5a372743d206c141a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!O@L2`D?^o)dRwqYcev@q#DMvQ z*(*AHH`kW0om8=NO8&uVRmbKn*uQ@5(H+Zf?%R0x*ww37FTJ_{>eZ{eAD{pK|9`68 zWgnn9ah@)YAr*|ZCyp{U2QWBn{C>Cgf8^^ph2sKmrZ@0Db>47eliif`GZN3kOR|4E zp1HSr>(=i-J2K=SnYPGB*}QnjI%8UJ(Sx8gTe~DWM4fr0!yB diff --git a/pelican/tests/output/custom/theme/images/icons/gittip.png b/pelican/tests/output/custom/theme/images/icons/gittip.png deleted file mode 100644 index b9f67aaa32a0acd166d7271b3dbf9113717d3f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMfoB*E?S0J6}W0T-*4J5$~5D8`b z*u=V-n;Wh0%9W86%yoICmD^QXBJ+TuMeduj_mynB29_Kl1X*A2_&{r~^}-@kve zdYW2FGLG%r8Ru!aX~lxyzki)LushDvqC7Rcx2`zG-R$h~L;wH%fBfKXl#6k)zx}VD zKk}k|sxxDHYKs!Qtrkt~nbKapYTmR2Z<_=!t4|TTzXRRJSrX(I%%C#k)~^Ns|6P3T zwz~@CcuyC{kP61s^QK8h9R!*aGdC-5mQ6dy==6QR=MEp?G>PQz`~2?eFFMS(r+K1g zp!&qb32C!ZG_9s->U*tRla<=$@$cY?|5H+adAMETx@7!MusHjBPl?KXziQ+6?1D=V ze?2)-gt;N$>Wd8<>nsYyl^Lt{Fxgl%o_?@o{T-$+24C7lzi+*sf1s9QvY5Z$XS=Iy lUyMDUTPOc|vvcNeU4iM^B0ctPia>WVc)I$ztaD0e0syFMv7G<_ diff --git a/pelican/tests/output/custom/theme/images/icons/google-groups.png b/pelican/tests/output/custom/theme/images/icons/google-groups.png deleted file mode 100644 index bbd0a0fd41295e94081103efe82742a5c6411765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)wr?kW++e@xB+qT~SFYEF=HvR&ieDr#i-_xj} zRHo4+e;!+Noelr;cc?77Y;{c*CNr6Zes7m1^J^+M9sV--D^!{k1_1#;6aW?Y?FKU> z$wUFckfr-O)R-Be!K8BMN$?ljo<0akOpD)OEKI~9+x!b$boZC|3lK-`{C{xHEuU!d zCn!ydf)v}GF)B$#1SpIDL5ep&8ms%oIbw(Zf<>Eu zV{!X$x!~%@{^9sNR&mx%AN_fQnat#ZJ3j~K-$A9Q{GPt1rQRSFm;ow5sT2?@^QR4r zg$anDgeCx$iqb6h2iG6)ockYoL!0v;mgd!$p2~_@_rOO_1Na`l%Wwj6hQdz( O0000oJ)blrcs(C@6ijHhGjL zrFRi_0z}#gh+z_?jx?ulJ6ZEDq_MICdrx(I>4q_hBh(7t5P3nx z6N?eUwA{x^#MIz^w4#;vg#Q`{-|sTaZm+z|gUicmu%q_q_{S4K=37O~-YZFy$l zCeshS!0W4y4-;Rs{O>veK>w%APq})#_~VzlN~kv#Z!>>U^FI6esN%Y~QuIs1d#~iY zS5C<<$DO!3cexVMKA`VP&KrXDnvg`iD8?-qH)mw8u{$e0Ls5IrFnpzz@8B4^@ijQjs{a4Z+iYWeG zt$5N5AMVx+R~iI;l~A9E$d3ce%4xvm2W_r2NEe$slb&w_>f!(Z002ovPDHLkV1lnz B@09=m diff --git a/pelican/tests/output/custom/theme/images/icons/hackernews.png b/pelican/tests/output/custom/theme/images/icons/hackernews.png deleted file mode 100644 index 8e05e3ee207e114a96f3811f46f68d17d52fe80b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2771 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 Z0sz-j0)=#JDs2D&002ovPDHLkV1kM1SuX$p diff --git a/pelican/tests/output/custom/theme/images/icons/lastfm.png b/pelican/tests/output/custom/theme/images/icons/lastfm.png deleted file mode 100644 index 2eedd2daa1429ba026c0b3c81f200c7df55d199a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmV-O1GoH%P)KCJu$;;6i zN)?b2a3_#VfTsWs$6EHV5TGNlK%}w4u2N|o9mJtskW6u)FfMY|?6HLq0N~tSmCYiQ z2itn^l^G`qTae2D0xESFZh|%tXmDcRU;!-yQXzzdgu?j^sE-_`#F)I#a0AjAIORAv z?nua{5j_L2Xf^mv7?p>M&VsISuyh@C_u_&8Tdjpsq*G;#gR3rt3(wqpYJX|(pqnm- zVi_(t9gaQ}dWUeQ9S7b0nAMvJMjCC()%*h2T()P6`Q<<4KoQZ3;E)b@mqq9E^qzbJ^&kHt zb@z3sXYQl9ZY#2oD@eP!I~#uc8*V^AwupI;L7D|Jvi|(8qu0 z2LL$zBz)6?fx+w8bl#l{x;rm&{_hjrZqU60&R?r z_q^a%r%rJ@Z+x)Fd-;e{U-Iff*T}z9(5p5g3wcDXPJR3rG$+nsWZfoYCWAb*gT_Bo z7fg}|L9J&75r5f0ZeI>gIn5MAw<$RbKrq)K4wK5le| zR(k=@SlVyBWV*`avXNJ2NP$f#q_(8G+6X;MtJy>;4`+;2 znIjMBZmisPo~Hw3I)yO?atTx+i^wMNq>KkRoaf=R#1u=&Mhm*)MMoa?yQ=3?Z|U=o zU9OHh!itfmFwG$0g0M5@al}`~v399M8f%oORSV+K_KnG|j?V;kMf)2sF5LyF&y{nJ Sd8X6=0000 diff --git a/pelican/tests/output/custom/theme/images/icons/linkedin.png b/pelican/tests/output/custom/theme/images/icons/linkedin.png deleted file mode 100644 index 06a88016f191d1f7596e5d159eb9e3ef276b6ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)NJD$VFG5yq%r(;8zR}7Ydty&~ue@oPv z!go{cG`vvH)n(hYdJfur_4kM7-}`N$BLW71f|-O65QELNn>4;$_2zi#L7VQdUf*VG zc0B*xR8@Sfo>nmHN}+MDnqn5J#;f9g$TZW=OS!!C<4lU-jh|=cs;0XYW~;nhJEE0r zdMWpJ#bDNMT&}cGH>t7P-yM4W=hFCXaLv`alDWtkCwY0;!z58#z z#&T71?c1;2yXPjW|3Lt-K|fa>vgM24P7nS%my|*-?u{?k1z4y`Q@qLr7+I)}xOVW2 zJ3sxy0Crrjx2{T+o3K*EU*7;Otu&GVZhd>`xi2Rl`h0wRu?9M0pr|e$T%t()-9X(G zM?fxx1SUyc#XyCAwXc5_{TIPFaU$>TzBm6pmt%Vs1;7F00000 LNkvXXu0mjfHfAMI diff --git a/pelican/tests/output/custom/theme/images/icons/reddit.png b/pelican/tests/output/custom/theme/images/icons/reddit.png deleted file mode 100644 index d826d3e746a18b712db7a68746c0c523af802fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=KP)rn|{qWNU7Dgl~R~ zWNK}Sjg6(Fp|rEIpPrq2fPh0AJ zxy#GTfq{X3etxmY-Bn&^YHMt-t*g_~&)L`2qqxp^h?r+{fMacVpMN&`0001qNklWKP}*}Is^$| zQ}1hfWmjT2av-PYqbE!!n)oua2c5|Qn7a$5l#p|w6z7}`F{d?z0T5WQglfOLER+{E--Hu?5@wDUpV?F@=Mkg+ zN{1=uqDlzrnkbYp)J3q!I?Vn|_~M zVqi53FAJQ^xo7*4+R80OflZT^0WscTaBuO7ca6A_aA-H9M3Y@{DSLGBL)| zTym{{me}!*Z3962jmy>w<<#@)IsY9R%I3sYbB>~@mM@C5Ks~s4nX-}TW8S>D*g7F! hew!yYJnD{z;D0NLV2ni3qF(?2002ovPDHLkV1k{La&G_t diff --git a/pelican/tests/output/custom/theme/images/icons/slideshare.png b/pelican/tests/output/custom/theme/images/icons/slideshare.png deleted file mode 100644 index 9cbe8588e24976076e5fc3898fa97856122f6fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)YNn`_&)?H$|J+jM18jcAeNE5840mI#38{rmUny@9DE z#Xg@8y@9DE0*}W7yWQR+m>Mc@yWPA^!~YvlZXQ7Ti(&Z??RignZicC$0;ki-+teNz zN*Qw@h$6fTDiChi(;mQdV>IdC=QLyP(`3?fGmSD0E706p2ko0(Fn89&YPG`Qa4@$> zdhWPhszyk06L$T`#EcuEoIB7dp?k0q>OF&bXs#{9!Ot=1fBXlJ={G`9+@@d!27`fI z*^>PO`g==w@1W}FBwRnS8UK$h$DgmS5K-O+o6QEJ(Z~waYBd=2dOa)_3-qUlQ$o(J zM$*}Z*m~g-OePa_IvoOeR-jNQz{PlZ6lKDV2#PRA1rmt_T+Fw|P-fhVCCq=C0AY>_ z#9}czIyxxk)H|>~8V7Uy1sn}2#;nIlxE)_f_XF?+t*xyTxm-@(N8ncJn41xc#e6|8 dAc8(0=Pod^EtOP(ARYh!002ovPDHLkV1k4J!&(3U diff --git a/pelican/tests/output/custom/theme/images/icons/speakerdeck.png b/pelican/tests/output/custom/theme/images/icons/speakerdeck.png deleted file mode 100644 index 7281ec48b41095180a83d71eaf0b00c85116965b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)K92#E{?_PJ+8Tth@W(+a>28uk~_0`h`<(yY|`h z@3?AaV0?I7E@5C8LL5^B7?_#m1O5GLKL6{LaQ3ZN%$$19RhM^ilM4(QGb91Pk}#td z%#5L?Rn9&W7zkqrdeL$z%L))wjb8cZK2wtEL}mE*O&6H3%~&#zdHx68i}xJQZ+34dIdgm^E12V4($L!Sax!Q)0op z%%0y@llS*=IU_?ugf;+>a;DdHv`xcYwwSu^B5bgwWG8rbaUIq4<$P}6+C9-V(ZSGy!i4XI zBkkxgITji#coxBn7F*@>CvnH5Im-dI=x{a@nz|+mZz(oB8CqTLuD=F=p|2qrpWMi5G S=mtXo0000YRoeQcY09>#1xxKwS5F z8mlP6JGx3wQgxp~4T-?1`Rz0oPN3$iK>QzwU%sBkR`YrWi#XVjbZs+WxcmSb0KzU< z4R|<_pXuFnCY5*7ncLn>WBm*@=rz!g=9fLZ0#9?*eV!!i{{b4*NYE=UCUZ&x4QhHf zjrr}HsjUBBPiJ}aY9eRTvkFsE%bi<+hJ_q$)(X1QD;kN@ z$%`wz`8QVB1Z}9WYXRb&Kzt8~{{vn2e{DI?z%r-*E6ZK%Ff``oJb76HYP@>p``(Y0Zs!*!BjN>0I%aNVnQ8)X9Pc^Y zIsS936mToi>>TyPEkcc+2 z`5!z^ZFZ_O#v*`YvS&^RN+0_pGFvTxh}Lp2wqGagAdVyz;6#9udAenJvhWwC3QjN} ztg*<~69%xm!G(wSxK?V6H7%K70|sCIX&%<6rLrHmSw|10dx_{@95hn1(i_a}5^hC>VT?7YQHpjC*P~ez&J%_J0000< KMNUMnLSTY<*|#qM diff --git a/pelican/tests/output/custom/theme/images/icons/vimeo.png b/pelican/tests/output/custom/theme/images/icons/vimeo.png deleted file mode 100644 index 4b9d72127c574237090a2f5f2f7eb7be94a2b62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)K~#7FV*mo~S^J1YP}SCZ?(wd@Mi2p&f%E_|kV7PbYe1Nxz5O|y=nOth{(bt=TS6pPua;?J=e5) zBGkM)Pk5GtRBXBib(QPnRVW%@oC6PDyoRVi_QQr_=YS?+52c0sPeBv`1LxxFPe2CH z8{$R%ID<81>CXSCz@?@iUpz?mZ$MU^)He_47^%Sg0P#sgK~#7Fl~6T81W^oq2cX(5aX1R@6<62}xdAmT6>b%79aG~T97?pp zUBiU8?wcQZ@ytL(4yKyhs>_L_h@KZq&4RGqy&kuUuOC&N_n)+)st0x|+@BHFkRd@&PPEwb z&tB6>xX7cYComKsCfH0jmXR=>tbysq2Gd0WOmZB{y88Z3Wj9^}w-Gbm)y>{S4W9T7 zfp3d!a2x}~TiXWa<}BOO6S3ho2QJ^`nhs+IjSU!vHHb*~-y}#B5s^RLsrl%w&%5IQ O0000 - - - - - This is a super article ! - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - This is a super article !

    -
    - -
    -

    Some content here !

    -
    -

    This is a simple title

    -

    And here comes the cool stuff.

    -alternate text -alternate text -
    ->>> from ipdb import set_trace
    ->>> set_trace()
    -
    -

    → And now try with some utf8 hell: ééé

    -
    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom/unbelievable.html b/pelican/tests/output/custom/unbelievable.html deleted file mode 100644 index a103868e..00000000 --- a/pelican/tests/output/custom/unbelievable.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - Unbelievable ! - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Unbelievable !

    -
    - -
    -

    Or completely awesome. Depends the needs.

    -

    a root-relative link to markdown-article -a file-relative link to markdown-article

    -
    -

    Testing sourcecode directive

    -
    1
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -
    -
    -

    Testing another case

    -

    This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.

    -
    1
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -

    Lovely.

    -
    -
    -

    Testing more sourcecode directives

    -
     8def run(self):
    self.assert_has_content()
    10 try:
    lexer = get_lexer_by_name(self.arguments[0])
    12 except ValueError:
    # no lexer found - use the text one instead of an exception
    14 lexer = TextLexer()

    16 if ('linenos' in self.options and
    self.options['linenos'] not in ('table', 'inline')):
    18 self.options['linenos'] = 'table'

    20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
    if flag in self.options:
    22 self.options[flag] = True

    24 # noclasses should already default to False, but just in case...
    formatter = HtmlFormatter(noclasses=False, **self.options)
    26 parsed = highlight('\n'.join(self.content), lexer, formatter)
    return [nodes.raw('', parsed, format='html')]
    -

    Lovely.

    -
    -
    -

    Testing even more sourcecode directives

    -formatter = self.options and VARIANTS[self.options.keys()[0]] -

    Lovely.

    -
    -
    -

    Testing overriding config defaults

    -

    Even if the default is line numbers, we can override it here

    -
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -

    Lovely.

    -
    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/archives.html b/pelican/tests/output/custom_locale/archives.html deleted file mode 100644 index 66dbe94a..00000000 --- a/pelican/tests/output/custom_locale/archives.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - -
    -

    Archives for Alexis' log

    - -
    -
    30 novembre 2012
    -
    FILENAME_METADATA example
    -
    29 février 2012
    -
    Second article
    -
    20 avril 2011
    -
    A markdown powered article
    -
    17 février 2011
    -
    Article 1
    -
    17 février 2011
    -
    Article 2
    -
    17 février 2011
    -
    Article 3
    -
    02 décembre 2010
    -
    This is a super article !
    -
    20 octobre 2010
    -
    Oh yeah !
    -
    15 octobre 2010
    -
    Unbelievable !
    -
    14 mars 2010
    -
    The baz tag
    -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/author/alexis-metaireau.html b/pelican/tests/output/custom_locale/author/alexis-metaireau.html deleted file mode 100644 index 68054d97..00000000 --- a/pelican/tests/output/custom_locale/author/alexis-metaireau.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - Alexis' log - Alexis Métaireau - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -

    - Page 1 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/author/alexis-metaireau2.html b/pelican/tests/output/custom_locale/author/alexis-metaireau2.html deleted file mode 100644 index 16431fb9..00000000 --- a/pelican/tests/output/custom_locale/author/alexis-metaireau2.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - Alexis' log - Alexis Métaireau - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. - -
    3. - -
    4. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -

      There are comments.

      -
    5. -
    -

    - - « - Page 2 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/author/alexis-metaireau3.html b/pelican/tests/output/custom_locale/author/alexis-metaireau3.html deleted file mode 100644 index ab91c56a..00000000 --- a/pelican/tests/output/custom_locale/author/alexis-metaireau3.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Alexis' log - Alexis Métaireau - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. -
    -

    - - « - Page 3 / 3 -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/authors.html b/pelican/tests/output/custom_locale/authors.html deleted file mode 100644 index 84bd502e..00000000 --- a/pelican/tests/output/custom_locale/authors.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - Alexis' log - Authors - - - - - - - -Fork me on GitHub - - - -
    -

    Authors on Alexis' log

    - -
    - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/categories.html b/pelican/tests/output/custom_locale/categories.html deleted file mode 100644 index 24e83abf..00000000 --- a/pelican/tests/output/custom_locale/categories.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Alexis' log - Categories - - - - - - - -Fork me on GitHub - - -

    Categories on Alexis' log

    - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/category/bar.html b/pelican/tests/output/custom_locale/category/bar.html deleted file mode 100644 index f9d47948..00000000 --- a/pelican/tests/output/custom_locale/category/bar.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - Alexis' log - bar - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/category/cat1.html b/pelican/tests/output/custom_locale/category/cat1.html deleted file mode 100644 index 2bc756e6..00000000 --- a/pelican/tests/output/custom_locale/category/cat1.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - Alexis' log - cat1 - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/category/misc.html b/pelican/tests/output/custom_locale/category/misc.html deleted file mode 100644 index eb98db2a..00000000 --- a/pelican/tests/output/custom_locale/category/misc.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - Alexis' log - misc - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/category/yeah.html b/pelican/tests/output/custom_locale/category/yeah.html deleted file mode 100644 index 660c593c..00000000 --- a/pelican/tests/output/custom_locale/category/yeah.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - Alexis' log - yeah - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/drafts/a-draft-article-without-date.html b/pelican/tests/output/custom_locale/drafts/a-draft-article-without-date.html deleted file mode 100644 index c289ec72..00000000 --- a/pelican/tests/output/custom_locale/drafts/a-draft-article-without-date.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - A draft article without date - - - - - - - - -Fork me on GitHub - - -
    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/drafts/a-draft-article.html b/pelican/tests/output/custom_locale/drafts/a-draft-article.html deleted file mode 100644 index a166efdf..00000000 --- a/pelican/tests/output/custom_locale/drafts/a-draft-article.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - A draft article - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - A draft article

    -
    - -
    -

    This is a draft article, it should live under the /drafts/ folder and not be -listed anywhere else.

    - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/alexis-metaireau.atom.xml b/pelican/tests/output/custom_locale/feeds/alexis-metaireau.atom.xml deleted file mode 100644 index a2ee64e6..00000000 --- a/pelican/tests/output/custom_locale/feeds/alexis-metaireau.atom.xml +++ /dev/null @@ -1,74 +0,0 @@ - -Alexis' log - Alexis Métaireauhttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/<p>This is some article, in english</p> -A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/alexis-metaireau.rss.xml b/pelican/tests/output/custom_locale/feeds/alexis-metaireau.rss.xml deleted file mode 100644 index 6b360712..00000000 --- a/pelican/tests/output/custom_locale/feeds/alexis-metaireau.rss.xml +++ /dev/null @@ -1,29 +0,0 @@ - -Alexis' log - Alexis Métaireauhttp://blog.notmyidea.org/Sun, 17 Nov 2013 23:29:00 +0100FILENAME_METADATA examplehttp://blog.notmyidea.org/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Alexis MétaireauFri, 30 Nov 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/miscSecond articlehttp://blog.notmyidea.org/posts/2012/f%C3%A9vrier/29/second-article/<p>This is some article, in english</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/miscfoobarbazA markdown powered articlehttp://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Alexis MétaireauWed, 20 Apr 2011 00:00:00 +0200tag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/cat1Article 1http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-1/<p>Article 1</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/cat1Article 2http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-2/<p>Article 2</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/cat1Article 3http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-3/<p>Article 3</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/cat1This is a super article !http://blog.notmyidea.org/posts/2010/d%C3%A9cembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0100tag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/yeahfoobarfoobarOh yeah !http://blog.notmyidea.org/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/barohbaryeahUnbelievable !http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div>Alexis MétaireauFri, 15 Oct 2010 20:30:00 +0200tag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/miscThe baz taghttp://blog.notmyidea.org/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> -Alexis MétaireauSun, 14 Mar 2010 00:00:00 +0100tag:blog.notmyidea.org,2010-03-14:/tag/baz.htmlmisc \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/all-en.atom.xml b/pelican/tests/output/custom_locale/feeds/all-en.atom.xml deleted file mode 100644 index a768d4e6..00000000 --- a/pelican/tests/output/custom_locale/feeds/all-en.atom.xml +++ /dev/null @@ -1,74 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/<p>This is some article, in english</p> -A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/all-fr.atom.xml b/pelican/tests/output/custom_locale/feeds/all-fr.atom.xml deleted file mode 100644 index cfd6eeb2..00000000 --- a/pelican/tests/output/custom_locale/feeds/all-fr.atom.xml +++ /dev/null @@ -1,4 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/2012-02-29T00:00:00+01:00Deuxième article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -Trop bien !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/all.atom.xml b/pelican/tests/output/custom_locale/feeds/all.atom.xml deleted file mode 100644 index 4680594a..00000000 --- a/pelican/tests/output/custom_locale/feeds/all.atom.xml +++ /dev/null @@ -1,76 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/<p>This is some article, in english</p> -Deuxième article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/second-article-fr.html<p>Ceci est un article, en français.</p> -A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/<p>Article 3</p> -This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> -Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Trop bien !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/oh-yeah-fr.html<p>Et voila du contenu en français</p> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/all.rss.xml b/pelican/tests/output/custom_locale/feeds/all.rss.xml deleted file mode 100644 index dc4ef033..00000000 --- a/pelican/tests/output/custom_locale/feeds/all.rss.xml +++ /dev/null @@ -1,31 +0,0 @@ - -Alexis' loghttp://blog.notmyidea.org/Sun, 17 Nov 2013 23:29:00 +0100FILENAME_METADATA examplehttp://blog.notmyidea.org/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Alexis MétaireauFri, 30 Nov 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/miscSecond articlehttp://blog.notmyidea.org/posts/2012/f%C3%A9vrier/29/second-article/<p>This is some article, in english</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/miscfoobarbazDeuxième articlehttp://blog.notmyidea.org/second-article-fr.html<p>Ceci est un article, en français.</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/second-article-fr.htmlmiscfoobarbazA markdown powered articlehttp://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Alexis MétaireauWed, 20 Apr 2011 00:00:00 +0200tag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/cat1Article 1http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-1/<p>Article 1</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/cat1Article 2http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-2/<p>Article 2</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/cat1Article 3http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-3/<p>Article 3</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/cat1This is a super article !http://blog.notmyidea.org/posts/2010/d%C3%A9cembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0100tag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/yeahfoobarfoobarOh yeah !http://blog.notmyidea.org/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/barohbaryeahTrop bien !http://blog.notmyidea.org/oh-yeah-fr.html<p>Et voila du contenu en français</p> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/oh-yeah-fr.htmlmiscUnbelievable !http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div>Alexis MétaireauFri, 15 Oct 2010 20:30:00 +0200tag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/miscThe baz taghttp://blog.notmyidea.org/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> -Alexis MétaireauSun, 14 Mar 2010 00:00:00 +0100tag:blog.notmyidea.org,2010-03-14:/tag/baz.htmlmisc \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/bar.atom.xml b/pelican/tests/output/custom_locale/feeds/bar.atom.xml deleted file mode 100644 index d4467ea7..00000000 --- a/pelican/tests/output/custom_locale/feeds/bar.atom.xml +++ /dev/null @@ -1,8 +0,0 @@ - -Alexis' log - barhttp://blog.notmyidea.org/2010-10-20T10:14:00+02:00Oh yeah !2010-10-20T10:14:00+02:002010-10-20T10:14:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/bar.rss.xml b/pelican/tests/output/custom_locale/feeds/bar.rss.xml deleted file mode 100644 index d17d7703..00000000 --- a/pelican/tests/output/custom_locale/feeds/bar.rss.xml +++ /dev/null @@ -1,8 +0,0 @@ - -Alexis' log - barhttp://blog.notmyidea.org/Wed, 20 Oct 2010 10:14:00 +0200Oh yeah !http://blog.notmyidea.org/posts/2010/octobre/20/oh-yeah/<div class="section" id="why-not"> -<h2>Why not ?</h2> -<p>After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -</div> -Alexis MétaireauWed, 20 Oct 2010 10:14:00 +0200tag:blog.notmyidea.org,2010-10-20:/posts/2010/octobre/20/oh-yeah/barohbaryeah \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/cat1.atom.xml b/pelican/tests/output/custom_locale/feeds/cat1.atom.xml deleted file mode 100644 index 87a822e5..00000000 --- a/pelican/tests/output/custom_locale/feeds/cat1.atom.xml +++ /dev/null @@ -1,7 +0,0 @@ - -Alexis' log - cat1http://blog.notmyidea.org/2011-04-20T00:00:00+02:00A markdown powered article2011-04-20T00:00:00+02:002011-04-20T00:00:00+02:00Alexis Métaireautag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Article 12011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/<p>Article 1</p> -Article 22011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/<p>Article 2</p> -Article 32011-02-17T00:00:00+01:002011-02-17T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/<p>Article 3</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/cat1.rss.xml b/pelican/tests/output/custom_locale/feeds/cat1.rss.xml deleted file mode 100644 index 6b328fda..00000000 --- a/pelican/tests/output/custom_locale/feeds/cat1.rss.xml +++ /dev/null @@ -1,7 +0,0 @@ - -Alexis' log - cat1http://blog.notmyidea.org/Wed, 20 Apr 2011 00:00:00 +0200A markdown powered articlehttp://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/<p>You're mutually oblivious.</p> -<p><a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a root-relative link to unbelievable</a> -<a href="http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/">a file-relative link to unbelievable</a></p>Alexis MétaireauWed, 20 Apr 2011 00:00:00 +0200tag:blog.notmyidea.org,2011-04-20:/posts/2011/avril/20/a-markdown-powered-article/cat1Article 1http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-1/<p>Article 1</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-1/cat1Article 2http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-2/<p>Article 2</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-2/cat1Article 3http://blog.notmyidea.org/posts/2011/f%C3%A9vrier/17/article-3/<p>Article 3</p> -Alexis MétaireauThu, 17 Feb 2011 00:00:00 +0100tag:blog.notmyidea.org,2011-02-17:/posts/2011/février/17/article-3/cat1 \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/misc.atom.xml b/pelican/tests/output/custom_locale/feeds/misc.atom.xml deleted file mode 100644 index eb7a72f7..00000000 --- a/pelican/tests/output/custom_locale/feeds/misc.atom.xml +++ /dev/null @@ -1,49 +0,0 @@ - -Alexis' log - mischttp://blog.notmyidea.org/2012-11-30T00:00:00+01:00FILENAME_METADATA example2012-11-30T00:00:00+01:002012-11-30T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Second article2012-02-29T00:00:00+01:002012-02-29T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/<p>This is some article, in english</p> -Unbelievable !2010-10-15T20:30:00+02:002010-10-15T20:30:00+02:00Alexis Métaireautag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div><p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.</p> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table><p>Lovely.</p> -</div> -<div class="section" id="testing-more-sourcecode-directives"> -<h2>Testing more sourcecode directives</h2> -<div class="highlight"><pre><span></span><span id="foo-8"><a name="foo-8"></a><a href="#foo-8"><span class="linenos special"> 8</span></a><span class="testingk">def</span> <span class="testingnf">run</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingp">):</span><br></span><span id="foo-9"><a name="foo-9"></a><a href="#foo-9"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">assert_has_content</span><span class="testingp">()</span><br></span><span id="foo-10"><a name="foo-10"></a><a href="#foo-10"><span class="linenos special">10</span></a> <span class="testingk">try</span><span class="testingp">:</span><br></span><span id="foo-11"><a name="foo-11"></a><a href="#foo-11"><span class="linenos"> </span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">get_lexer_by_name</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">arguments</span><span class="testingp">[</span><span class="testingmi">0</span><span class="testingp">])</span><br></span><span id="foo-12"><a name="foo-12"></a><a href="#foo-12"><span class="linenos special">12</span></a> <span class="testingk">except</span> <span class="testingne">ValueError</span><span class="testingp">:</span><br></span><span id="foo-13"><a name="foo-13"></a><a href="#foo-13"><span class="linenos"> </span></a> <span class="testingc1"># no lexer found - use the text one instead of an exception</span><br></span><span id="foo-14"><a name="foo-14"></a><a href="#foo-14"><span class="linenos special">14</span></a> <span class="testingn">lexer</span> <span class="testingo">=</span> <span class="testingn">TextLexer</span><span class="testingp">()</span><br></span><span id="foo-15"><a name="foo-15"></a><a href="#foo-15"><span class="linenos"> </span></a><br></span><span id="foo-16"><a name="foo-16"></a><a href="#foo-16"><span class="linenos special">16</span></a> <span class="testingk">if</span> <span class="testingp">(</span><span class="testings1">&#39;linenos&#39;</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span> <span class="testingow">and</span><br></span><span id="foo-17"><a name="foo-17"></a><a href="#foo-17"><span class="linenos"> </span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingow">not</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;table&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;inline&#39;</span><span class="testingp">)):</span><br></span><span id="foo-18"><a name="foo-18"></a><a href="#foo-18"><span class="linenos special">18</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testings1">&#39;linenos&#39;</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testings1">&#39;table&#39;</span><br></span><span id="foo-19"><a name="foo-19"></a><a href="#foo-19"><span class="linenos"> </span></a><br></span><span id="foo-20"><a name="foo-20"></a><a href="#foo-20"><span class="linenos special">20</span></a> <span class="testingk">for</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingp">(</span><span class="testings1">&#39;nowrap&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;nobackground&#39;</span><span class="testingp">,</span> <span class="testings1">&#39;anchorlinenos&#39;</span><span class="testingp">):</span><br></span><span id="foo-21"><a name="foo-21"></a><a href="#foo-21"><span class="linenos"> </span></a> <span class="testingk">if</span> <span class="testingn">flag</span> <span class="testingow">in</span> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">:</span><br></span><span id="foo-22"><a name="foo-22"></a><a href="#foo-22"><span class="linenos special">22</span></a> <span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">[</span><span class="testingn">flag</span><span class="testingp">]</span> <span class="testingo">=</span> <span class="testingkc">True</span><br></span><span id="foo-23"><a name="foo-23"></a><a href="#foo-23"><span class="linenos"> </span></a><br></span><span id="foo-24"><a name="foo-24"></a><a href="#foo-24"><span class="linenos special">24</span></a> <span class="testingc1"># noclasses should already default to False, but just in case...</span><br></span><span id="foo-25"><a name="foo-25"></a><a href="#foo-25"><span class="linenos"> </span></a> <span class="testingn">formatter</span> <span class="testingo">=</span> <span class="testingn">HtmlFormatter</span><span class="testingp">(</span><span class="testingn">noclasses</span><span class="testingo">=</span><span class="testingkc">False</span><span class="testingp">,</span> <span class="testingo">**</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">options</span><span class="testingp">)</span><br></span><span id="foo-26"><a name="foo-26"></a><a href="#foo-26"><span class="linenos special">26</span></a> <span class="testingn">parsed</span> <span class="testingo">=</span> <span class="testingn">highlight</span><span class="testingp">(</span><span class="testings1">&#39;</span><span class="testingse">\n</span><span class="testings1">&#39;</span><span class="testingo">.</span><span class="testingn">join</span><span class="testingp">(</span><span class="testingbp">self</span><span class="testingo">.</span><span class="testingn">content</span><span class="testingp">),</span> <span class="testingn">lexer</span><span class="testingp">,</span> <span class="testingn">formatter</span><span class="testingp">)</span><br></span><span id="foo-27"><a name="foo-27"></a><a href="#foo-27"><span class="linenos"> </span></a> <span class="testingk">return</span> <span class="testingp">[</span><span class="testingn">nodes</span><span class="testingo">.</span><span class="testingn">raw</span><span class="testingp">(</span><span class="testings1">&#39;&#39;</span><span class="testingp">,</span> <span class="testingn">parsed</span><span class="testingp">,</span> <span class="testingnb">format</span><span class="testingo">=</span><span class="testings1">&#39;html&#39;</span><span class="testingp">)]</span><br></span></pre></div> -<p>Lovely.</p> -</div> -<div class="section" id="testing-even-more-sourcecode-directives"> -<h2>Testing even more sourcecode directives</h2> -<span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -<p>Lovely.</p> -</div> -<div class="section" id="testing-overriding-config-defaults"> -<h2>Testing overriding config defaults</h2> -<p>Even if the default is line numbers, we can override it here</p> -<div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -<p>Lovely.</p> -</div> -The baz tag2010-03-14T00:00:00+01:002010-03-14T00:00:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-03-14:/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/misc.rss.xml b/pelican/tests/output/custom_locale/feeds/misc.rss.xml deleted file mode 100644 index 6ac30929..00000000 --- a/pelican/tests/output/custom_locale/feeds/misc.rss.xml +++ /dev/null @@ -1,16 +0,0 @@ - -Alexis' log - mischttp://blog.notmyidea.org/Fri, 30 Nov 2012 00:00:00 +0100FILENAME_METADATA examplehttp://blog.notmyidea.org/posts/2012/novembre/30/filename_metadata-example/<p>Some cool stuff!</p> -Alexis MétaireauFri, 30 Nov 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-11-30:/posts/2012/novembre/30/filename_metadata-example/miscSecond articlehttp://blog.notmyidea.org/posts/2012/f%C3%A9vrier/29/second-article/<p>This is some article, in english</p> -Alexis MétaireauWed, 29 Feb 2012 00:00:00 +0100tag:blog.notmyidea.org,2012-02-29:/posts/2012/février/29/second-article/miscfoobarbazUnbelievable !http://blog.notmyidea.org/posts/2010/octobre/15/unbelievable/<p>Or completely awesome. Depends the needs.</p> -<p><a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a root-relative link to markdown-article</a> -<a class="reference external" href="http://blog.notmyidea.org/posts/2011/avril/20/a-markdown-powered-article/">a file-relative link to markdown-article</a></p> -<div class="section" id="testing-sourcecode-directive"> -<h2>Testing sourcecode directive</h2> -<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">formatter</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="ow">and</span> <span class="n">VARIANTS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">keys</span><span class="p">()[</span><span class="mi">0</span><span class="p">]]</span> -</pre></div> -</td></tr></table></div> -<div class="section" id="testing-another-case"> -<h2>Testing another case</h2> -<p>This will now have a line number in 'custom' since it's the default in -pelican.conf, it will …</p></div>Alexis MétaireauFri, 15 Oct 2010 20:30:00 +0200tag:blog.notmyidea.org,2010-10-15:/posts/2010/octobre/15/unbelievable/miscThe baz taghttp://blog.notmyidea.org/tag/baz.html<p>This article overrides the listening of the articles under the <em>baz</em> tag.</p> -Alexis MétaireauSun, 14 Mar 2010 00:00:00 +0100tag:blog.notmyidea.org,2010-03-14:/tag/baz.htmlmisc \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/yeah.atom.xml b/pelican/tests/output/custom_locale/feeds/yeah.atom.xml deleted file mode 100644 index 6f2e5f82..00000000 --- a/pelican/tests/output/custom_locale/feeds/yeah.atom.xml +++ /dev/null @@ -1,16 +0,0 @@ - -Alexis' log - yeahhttp://blog.notmyidea.org/2013-11-17T23:29:00+01:00This is a super article !2010-12-02T10:14:00+01:002013-11-17T23:29:00+01:00Alexis Métaireautag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -<p>Some content here !</p> -<div class="section" id="this-is-a-simple-title"> -<h2>This is a simple title</h2> -<p>And here comes the cool <a class="reference external" href="http://books.couchdb.org/relax/design-documents/views">stuff</a>.</p> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi.jpg" style="width: 600px; height: 450px;" /> -<img alt="alternate text" src="http://blog.notmyidea.org/pictures/Sushi_Macro.jpg" style="width: 600px; height: 450px;" /> -<pre class="literal-block"> -&gt;&gt;&gt; from ipdb import set_trace -&gt;&gt;&gt; set_trace() -</pre> -<p>→ And now try with some utf8 hell: ééé</p> -</div> - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/feeds/yeah.rss.xml b/pelican/tests/output/custom_locale/feeds/yeah.rss.xml deleted file mode 100644 index b7fb81f8..00000000 --- a/pelican/tests/output/custom_locale/feeds/yeah.rss.xml +++ /dev/null @@ -1,4 +0,0 @@ - -Alexis' log - yeahhttp://blog.notmyidea.org/Sun, 17 Nov 2013 23:29:00 +0100This is a super article !http://blog.notmyidea.org/posts/2010/d%C3%A9cembre/02/this-is-a-super-article/<p class="first last">Multi-line metadata should be supported -as well as <strong>inline markup</strong>.</p> -Alexis MétaireauThu, 02 Dec 2010 10:14:00 +0100tag:blog.notmyidea.org,2010-12-02:/posts/2010/décembre/02/this-is-a-super-article/yeahfoobarfoobar \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/index.html b/pelican/tests/output/custom_locale/index.html deleted file mode 100644 index 6e0d632d..00000000 --- a/pelican/tests/output/custom_locale/index.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. - -
    3. -
    -

    - Page 1 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/index2.html b/pelican/tests/output/custom_locale/index2.html deleted file mode 100644 index 5ff21fac..00000000 --- a/pelican/tests/output/custom_locale/index2.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. - -
    3. - -
    4. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -

      There are comments.

      -
    5. -
    -

    - - « - Page 2 / 3 - » - -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/index3.html b/pelican/tests/output/custom_locale/index3.html deleted file mode 100644 index 45ea5a89..00000000 --- a/pelican/tests/output/custom_locale/index3.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - -
    -
      -
    1. - -
    2. -
    -

    - - « - Page 3 / 3 -

    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/jinja2_template.html b/pelican/tests/output/custom_locale/jinja2_template.html deleted file mode 100644 index 83b6e8e0..00000000 --- a/pelican/tests/output/custom_locale/jinja2_template.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - Alexis' log - - - - - - - -Fork me on GitHub - - - -Some text - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/oh-yeah-fr.html b/pelican/tests/output/custom_locale/oh-yeah-fr.html deleted file mode 100644 index 58859a3a..00000000 --- a/pelican/tests/output/custom_locale/oh-yeah-fr.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Trop bien ! - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Trop bien !

    -
    - -
    -

    Et voila du contenu en français

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/override/index.html b/pelican/tests/output/custom_locale/override/index.html deleted file mode 100644 index 5c273ed6..00000000 --- a/pelican/tests/output/custom_locale/override/index.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Override url/save_as - - - - - - - -Fork me on GitHub - - -
    -

    Override url/save_as

    - -

    Test page which overrides save_as and url so that this page will be generated -at a custom location.

    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/pages/this-is-a-test-hidden-page.html b/pelican/tests/output/custom_locale/pages/this-is-a-test-hidden-page.html deleted file mode 100644 index 91372822..00000000 --- a/pelican/tests/output/custom_locale/pages/this-is-a-test-hidden-page.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - This is a test hidden page - - - - - - - -Fork me on GitHub - - -
    -

    This is a test hidden page

    - -

    This is great for things like error(404) pages -Anyone can see this page but it's not linked to anywhere!

    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/pages/this-is-a-test-page.html b/pelican/tests/output/custom_locale/pages/this-is-a-test-page.html deleted file mode 100644 index eb779355..00000000 --- a/pelican/tests/output/custom_locale/pages/this-is-a-test-page.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - This is a test page - - - - - - - -Fork me on GitHub - - -
    -

    This is a test page

    - -

    Just an image.

    -alternate text -wrong path since 'images' folder does not exist - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/pictures/Fat_Cat.jpg b/pelican/tests/output/custom_locale/pictures/Fat_Cat.jpg deleted file mode 100644 index d8a96d356be94e782aaf36ba4e47168435b56338..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62675 zcmbTdbwE_j`|y31rMnv>mJVU*QgZ29I;BfMLK-9#1f+Ipq`L)_RwS2_?odDwq@^UR zclGxBeDB};zJEN=GrPll&Tvg!bFP^^d(G^x#b4_HsRm3P27o{yKn?u@er+)6ssy?^ z0f4$XFMtaG03kpE!T|8ll#h<2XeLIdmFP$g0s|m)`a9Btu>PbiXlD4!U1;Y1D}#Y% zVRTtSbc#YpD4HqJ=`=c0VEj|hZ<(wp3;+wAZlj~?Q_Meg;-VWU>&F2Y(Rl~xIFAVc zFe43hn7WoWnp`~{^;`p441~pngnp~=r_6s+RdsDW7O0@Ops)}C6%rPf7DB(pScFBS zMTDiHQUD7&0Dzv4tLH;?Z9oVrCIkQ&=+_^;e*Xa=Ku**@x^`aXl9H3Z@;*Lg18t^c+XaWB%ojXa*tvkpZD~$3Xm3|JUF7Nc=x-|3ote@}GQc zFaUu6<`bhC^Dk4Q8SAeMGn#Rb|Mchg_~HKL-`&Cc%j#&x|0~almJdbZ0KsS-1hRtANk)R82@7MzZm;pjQ=kt{1^W&kB^SZ=*E8c+X2n!doT3o z-b=9vi%N@$NsIomhyPFBZ=3vGRtH`7ce($R=lFY#&ia!N`&%z5TF>8d|FOs4_DzqD z{~1jYAyTw8-9qPR{8o_^k-RV<-@$q4_8q5qNx$o@O}pnowy{@;Ake=$Ju-+a)&7~@}zOZm?@ z7@(~R?_Z2h`A^y3mI^5Rx1QgZVp33L5m6CI5vYhTx|q0-h_Zx`n2;e{LIf%yfxa`k zaBT%Gmfxa(M&6nZJ(g(xPx^cAV*HtZa4AVN{pU`g7YB5}1;Bq-By9B6|KAEGi|*8a zRxo8W|9b@kVf-^2w9xq&fB75D|6IX-xALFW=RfJMf3LK^yNmAduN6QEz{SSK!N$VH z!NI}9!^J10BqAgrAfzLwAfaTUzs1Z%&&bFE5#(ZF<7a1ND!z9BZXBAe!rqH*=Ve_Vh zMk0!E*%cdmsNhpyAR=}?QF!>&G_-W|9GqO-JiMY};u4Zl(n`uIFjX~m4Ff|XV-r&| zb9)CzCubK|H{XYT{sDnO!H=Ir$2^UVi$|uWrDtSjW#<%^l$MoOR900ty?oW&(%RPE z(c9NQfEpYc9+{q*ots}+Tw31vxViOdd*}1+-pT3N`Nh}EtLvNJdV$a;@SpIHV*f9_ z$k2LWU}AzXaenIs!U#Y|Fc~Hmt1vdXfgDQPkLj$1Vc@LS^SOg-;C; z-QYO+t=b>W{`VA%`oGfbe<}7~y_Nw&Fxu|Pz+}K(V2fEi<4{Yt)l;I#;8pSiB@_NF z@s8ey{e?w$b}IIGk?H|Hhm52e{a*4`g^xI2EV(Se0zY-6!N?wC>i8xbm_jZ^rG=o6 z+&%Yqb;(Y>9$D_(n$9VOdXUy}mW6vg|ZVJx!0%qceSo($=Jm(xUCb50v_tLN z=x~phBXQo4Txflrx&3(Nti}bKgbwm$R;^!Z9k@GwHxD3J+2$S|`gy1zDV$UoPIlg1 z@vd9&oZ0?j^P+Mq`e>v<1|#8cJ7w5Q+4FOc=~?Px_)Q~RiLZuf045VTUuYb-L7GW8 z*4@2MaxXZawmVTB_yyoTr~~d|HN1<=l-!(;u~a|JC(%h~W#d?ns3c4d)w%&TJC{?c$Vz4xmO^^jg!lL@AA*w5yQ-F1Rzm58TbVutTVY`^ZXi&~WNLdSj`r|Y1|QQ;R=2v|KF`;`fQJS9 zmQ|Q%Ia-g>Eh{bG?H~SRz1ROl?$zxpMErE~RWbqeS*Q53A8jlCcZvBXk|-TgaDt=D za4JN73OnVB`}(QrBhEbP$yU3>B?xh*TMZCBdm>5AXBV%xC5+)lksE32kF7k@HxHF` z5VmhHj#$4dZ~Ox8To5zG!;gYP5(Kx|XMK0)5s@KYRi`@zWlkn0QEMQUCE_lb@spwMBp42u z$(1mn(ez98J6$@)^>Bnz%i=Q$9qh1Oom<7Zl@sg*WvX6wUX|BCLd#d0W zU|-O0V3uv_3~8lhB6%aOUELIMA%8Xi8!7&*K#VG=8pkm(L{+QQPCfW*?By1N`E>Jw~KL?&&PnIxv0c!oHOj>bI;&ClBlPRK_c z-RE1Zc$Hp~9)xL9`1uz=YMZ~VQUznT?ao%c6?zr<1V;-UQk7ltP{5XeDd|Z3MEWx zsAv2`Bly^*>5u!R>Mi3wSC;v@8rr5N?Szl~=hZ1AR7VTUeWm&3sW@S@kW_eWzLP`m z0g96Of)OQ_9DUuSI-NqKrWH%8Lepg;YRI5#zfkZ-1+aGYPq2*z7nrMMZ>4e&&nyJU z8fLAXCL~<$uSk`WdHez#$Z{VWV%8dU)L?<7xTv_I$yLm` zQjwLEM*@uvlaMam3$DOPWksZ0u~z(h?+GeLMkrz8;zf1sVmJ6!qBb5&;?jVN{6z{5 z=J~N!NGW;hY_MT~Jl~PE;hfU&z82OaQ$+WeT!XD8aa!X_Hfah8liV)g82dP%m>YvP zAL}Q(KJWQu#W8N+b_D;BAz?U8aQTiv4gs}P1sk=EOpXPKw|#8mJtY$|IM!-#K9+=w zz$eyjaH^g*=dO5#!hk@ZZIcwzF8C|es+Pd{J!}i*shWFM-!}ukaMgKdXg+Hju7k=7Dha?f7NfC&)YMT3fk4R&R)j-2`9QH8=Kr*~puysxMHP_fs#V9_7ki z>pdmcNZ!}q`*17l&Pkn9Z&s|*-XLSaNR4Zz_mX9l5Y3gYmO)C!_TjtW2#27fGFNqw zp*Zjz%kQ&>(yg33PL^SNebbv^iV7iK@`-9>fOM{3T}`IJr!S`V05cz_i+nfrmi-

    )n(M0K@w($Mad^U|4b&>Gs6u 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 diff --git a/pelican/tests/output/custom_locale/pictures/Sushi.jpg b/pelican/tests/output/custom_locale/pictures/Sushi.jpg deleted file mode 100644 index e49e5f0ab53461187c2cf61ebc1f3befdc937aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28992 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 V9RVclK)_SR8Zrq#de{_0|JgZd7T*8> diff --git a/pelican/tests/output/custom_locale/posts/2010/décembre/02/this-is-a-super-article/index.html b/pelican/tests/output/custom_locale/posts/2010/décembre/02/this-is-a-super-article/index.html deleted file mode 100644 index dee44f28..00000000 --- a/pelican/tests/output/custom_locale/posts/2010/décembre/02/this-is-a-super-article/index.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - This is a super article ! - - - - - - - - -Fork me on GitHub - -

    -
    -
    -
    -

    - This is a super article !

    -
    - -
    -

    Some content here !

    -
    -

    This is a simple title

    -

    And here comes the cool stuff.

    -alternate text -alternate text -
    ->>> from ipdb import set_trace
    ->>> set_trace()
    -
    -

    → And now try with some utf8 hell: ééé

    -
    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2010/octobre/15/unbelievable/index.html b/pelican/tests/output/custom_locale/posts/2010/octobre/15/unbelievable/index.html deleted file mode 100644 index 407d457f..00000000 --- a/pelican/tests/output/custom_locale/posts/2010/octobre/15/unbelievable/index.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - Unbelievable ! - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Unbelievable !

    -
    - -
    -

    Or completely awesome. Depends the needs.

    -

    a root-relative link to markdown-article -a file-relative link to markdown-article

    -
    -

    Testing sourcecode directive

    -
    1
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -
    -
    -

    Testing another case

    -

    This will now have a line number in 'custom' since it's the default in -pelican.conf, it will have nothing in default.

    -
    1
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -

    Lovely.

    -
    -
    -

    Testing more sourcecode directives

    -
     8def run(self):
    self.assert_has_content()
    10 try:
    lexer = get_lexer_by_name(self.arguments[0])
    12 except ValueError:
    # no lexer found - use the text one instead of an exception
    14 lexer = TextLexer()

    16 if ('linenos' in self.options and
    self.options['linenos'] not in ('table', 'inline')):
    18 self.options['linenos'] = 'table'

    20 for flag in ('nowrap', 'nobackground', 'anchorlinenos'):
    if flag in self.options:
    22 self.options[flag] = True

    24 # noclasses should already default to False, but just in case...
    formatter = HtmlFormatter(noclasses=False, **self.options)
    26 parsed = highlight('\n'.join(self.content), lexer, formatter)
    return [nodes.raw('', parsed, format='html')]
    -

    Lovely.

    -
    -
    -

    Testing even more sourcecode directives

    -formatter = self.options and VARIANTS[self.options.keys()[0]] -

    Lovely.

    -
    -
    -

    Testing overriding config defaults

    -

    Even if the default is line numbers, we can override it here

    -
    formatter = self.options and VARIANTS[self.options.keys()[0]]
    -
    -

    Lovely.

    -
    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html b/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html deleted file mode 100644 index 1bf74b57..00000000 --- a/pelican/tests/output/custom_locale/posts/2010/octobre/20/oh-yeah/index.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - Oh yeah ! - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Oh yeah !

    -
    - -
    -
    -

    Why not ?

    -

    After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

    -alternate text -
    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2011/avril/20/a-markdown-powered-article/index.html b/pelican/tests/output/custom_locale/posts/2011/avril/20/a-markdown-powered-article/index.html deleted file mode 100644 index 0f35847a..00000000 --- a/pelican/tests/output/custom_locale/posts/2011/avril/20/a-markdown-powered-article/index.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - A markdown powered article - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - A markdown powered article

    -
    - -
    -

    You're mutually oblivious.

    -

    a root-relative link to unbelievable -a file-relative link to unbelievable

    -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2011/février/17/article-1/index.html b/pelican/tests/output/custom_locale/posts/2011/février/17/article-1/index.html deleted file mode 100644 index 05418036..00000000 --- a/pelican/tests/output/custom_locale/posts/2011/février/17/article-1/index.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Article 1 - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Article 1

    -
    - -
    -

    Article 1

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2011/février/17/article-2/index.html b/pelican/tests/output/custom_locale/posts/2011/février/17/article-2/index.html deleted file mode 100644 index 8cb67749..00000000 --- a/pelican/tests/output/custom_locale/posts/2011/février/17/article-2/index.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Article 2 - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Article 2

    -
    - -
    -

    Article 2

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2011/février/17/article-3/index.html b/pelican/tests/output/custom_locale/posts/2011/février/17/article-3/index.html deleted file mode 100644 index 62423814..00000000 --- a/pelican/tests/output/custom_locale/posts/2011/février/17/article-3/index.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Article 3 - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Article 3

    -
    - -
    -

    Article 3

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2012/février/29/second-article/index.html b/pelican/tests/output/custom_locale/posts/2012/février/29/second-article/index.html deleted file mode 100644 index 615a7f30..00000000 --- a/pelican/tests/output/custom_locale/posts/2012/février/29/second-article/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Second article - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Second article

    -
    - -
    -

    This is some article, in english

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/posts/2012/novembre/30/filename_metadata-example/index.html b/pelican/tests/output/custom_locale/posts/2012/novembre/30/filename_metadata-example/index.html deleted file mode 100644 index 2213d174..00000000 --- a/pelican/tests/output/custom_locale/posts/2012/novembre/30/filename_metadata-example/index.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - FILENAME_METADATA example - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - FILENAME_METADATA example

    -
    - -
    -

    Some cool stuff!

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/robots.txt b/pelican/tests/output/custom_locale/robots.txt deleted file mode 100644 index 19a6e299..00000000 --- a/pelican/tests/output/custom_locale/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: /pictures diff --git a/pelican/tests/output/custom_locale/second-article-fr.html b/pelican/tests/output/custom_locale/second-article-fr.html deleted file mode 100644 index 3c21ef75..00000000 --- a/pelican/tests/output/custom_locale/second-article-fr.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Deuxième article - - - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - Deuxième article

    -
    - -
    -

    Ceci est un article, en français.

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tag/bar.html b/pelican/tests/output/custom_locale/tag/bar.html deleted file mode 100644 index aaa5fb0d..00000000 --- a/pelican/tests/output/custom_locale/tag/bar.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - Alexis' log - bar - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. - -
    2. -
      -

      Oh yeah !

      -
      - -
      -
      -

      Why not ?

      -

      After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! -YEAH !

      -alternate text -
      - - read more -

      There are comments.

      -
    3. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tag/baz.html b/pelican/tests/output/custom_locale/tag/baz.html deleted file mode 100644 index 9554bdd6..00000000 --- a/pelican/tests/output/custom_locale/tag/baz.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - The baz tag - - - - - - - - -Fork me on GitHub - - -
    -
    -
    -

    - The baz tag

    -
    - -
    -

    This article overrides the listening of the articles under the baz tag.

    - -
    -
    -

    Comments !

    -
    - - -
    - -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tag/foo.html b/pelican/tests/output/custom_locale/tag/foo.html deleted file mode 100644 index 15523248..00000000 --- a/pelican/tests/output/custom_locale/tag/foo.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - Alexis' log - foo - - - - - - - -Fork me on GitHub - - - - -
    -

    Other articles

    -
    -
      - -
    1. -
    -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tag/foobar.html b/pelican/tests/output/custom_locale/tag/foobar.html deleted file mode 100644 index 1393a76e..00000000 --- a/pelican/tests/output/custom_locale/tag/foobar.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - Alexis' log - foobar - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tag/oh.html b/pelican/tests/output/custom_locale/tag/oh.html deleted file mode 100644 index b6fe445f..00000000 --- a/pelican/tests/output/custom_locale/tag/oh.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Oh Oh Oh - - - - - - - -Fork me on GitHub - - -
    -

    Oh Oh Oh

    - -

    This page overrides the listening of the articles under the oh tag.

    - -
    -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tag/yeah.html b/pelican/tests/output/custom_locale/tag/yeah.html deleted file mode 100644 index 3953f1b7..00000000 --- a/pelican/tests/output/custom_locale/tag/yeah.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - Alexis' log - yeah - - - - - - - -Fork me on GitHub - - - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/tags.html b/pelican/tests/output/custom_locale/tags.html deleted file mode 100644 index cf932f97..00000000 --- a/pelican/tests/output/custom_locale/tags.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - Alexis' log - Tags - - - - - - - -Fork me on GitHub - - - -
    -

    Tags for Alexis' log

    - -
    - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/theme/css/fonts.css b/pelican/tests/output/custom_locale/theme/css/fonts.css deleted file mode 100644 index 56015076..00000000 --- a/pelican/tests/output/custom_locale/theme/css/fonts.css +++ /dev/null @@ -1,12 +0,0 @@ -@font-face { - font-family: 'Yanone Kaffeesatz'; - font-style: normal; - font-weight: 400; - src: - local('Yanone Kaffeesatz Regular'), - local('YanoneKaffeesatz-Regular'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ - url('../fonts/Yanone_Kaffeesatz_400.woff') format('woff'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ - url('../fonts/Yanone_Kaffeesatz_400.woff2') format('woff2'); -} diff --git a/pelican/tests/output/custom_locale/theme/css/main.css b/pelican/tests/output/custom_locale/theme/css/main.css deleted file mode 100644 index aaea9b81..00000000 --- a/pelican/tests/output/custom_locale/theme/css/main.css +++ /dev/null @@ -1,466 +0,0 @@ -/* - Name: Smashing HTML5 - Date: July 2009 - Description: Sample layout for HTML5 and CSS3 goodness. - Version: 1.0 - License: MIT - Licensed by: Smashing Media GmbH - Original author: Enrique Ramírez -*/ - -/* Imports */ -@import url("reset.css"); -@import url("pygment.css"); -@import url("typogrify.css"); -@import url("fonts.css"); - -/***** Global *****/ -/* Body */ -body { - background: #F5F4EF; - color: #000305; - font-size: 87.5%; /* Base font size: 14px */ - font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; - line-height: 1.429; - margin: 0; - padding: 0; - text-align: left; -} - -/* Headings */ -h1 {font-size: 2em } -h2 {font-size: 1.571em} /* 22px */ -h3 {font-size: 1.429em} /* 20px */ -h4 {font-size: 1.286em} /* 18px */ -h5 {font-size: 1.143em} /* 16px */ -h6 {font-size: 1em} /* 14px */ - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; - margin-bottom: .8em; - font-family: 'Yanone Kaffeesatz', arial, serif; -} - -h3, h4, h5, h6 { margin-top: .8em; } - -hr { border: 2px solid #EEEEEE; } - -/* Anchors */ -a {outline: 0;} -a img {border: 0px; text-decoration: none;} -a:link, a:visited { - color: #C74350; - padding: 0 1px; - text-decoration: underline; -} -a:hover, a:active { - background-color: #C74350; - color: #fff; - text-decoration: none; - text-shadow: 1px 1px 1px #333; -} - -h1 a:hover { - background-color: inherit -} - -/* Paragraphs */ -div.line-block, -p { margin-top: 1em; - margin-bottom: 1em;} - -strong, b {font-weight: bold;} -em, i {font-style: italic;} - -/* Lists */ -ul { - list-style: outside disc; - margin: 0em 0 0 1.5em; -} - -ol { - list-style: outside decimal; - margin: 0em 0 0 1.5em; -} - -li { margin-top: 0.5em; - margin-bottom: 1em; } - -.post-info { - float:right; - margin:10px; - padding:5px; -} - -.post-info p{ - margin-top: 1px; - margin-bottom: 1px; -} - -.readmore { float: right } - -dl {margin: 0 0 1.5em 0;} -dt {font-weight: bold;} -dd {margin-left: 1.5em;} - -pre{background-color: rgb(238, 238, 238); padding: 10px; margin: 10px; overflow: auto;} - -/* Quotes */ -blockquote { - margin: 20px; - font-style: italic; -} -cite {} - -q {} - -div.note { - float: right; - margin: 5px; - font-size: 85%; - max-width: 300px; -} - -/* Tables */ -table {margin: .5em auto 1.5em auto; width: 98%;} - - /* Thead */ - thead th {padding: .5em .4em; text-align: left;} - thead td {} - - /* Tbody */ - tbody td {padding: .5em .4em;} - tbody th {} - - tbody .alt td {} - tbody .alt th {} - - /* Tfoot */ - tfoot th {} - tfoot td {} - -/* HTML5 tags */ -header, section, footer, -aside, nav, article, figure { - display: block; -} - -/***** Layout *****/ -.body {clear: both; margin: 0 auto; width: 800px;} -img.right, figure.right, div.figure.align-right { - float: right; - margin: 0 0 2em 2em; -} -img.left, figure.left, div.figure.align-left { - float: left; - margin: 0 2em 2em 0; -} - -/* .rst support */ -div.figure img, figure img { /* to fill figure exactly */ - width: 100%; -} -div.figure p.caption, figure p.caption { /* margin provided by figure */ - margin-top: 0; - margin-bottom: 0; -} - -/* - Header -*****************/ -#banner { - margin: 0 auto; - padding: 2.5em 0 0 0; -} - - /* Banner */ - #banner h1 {font-size: 3.571em; line-height: 0;} - #banner h1 a:link, #banner h1 a:visited { - color: #000305; - display: block; - font-weight: bold; - margin: 0 0 .6em .2em; - text-decoration: none; - } - #banner h1 a:hover, #banner h1 a:active { - background: none; - color: #C74350; - text-shadow: none; - } - - #banner h1 strong {font-size: 0.36em; font-weight: normal;} - - /* Main Nav */ - #banner nav { - background: #000305; - font-size: 1.143em; - height: 40px; - line-height: 30px; - margin: 0 auto 2em auto; - padding: 0; - text-align: center; - width: 800px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - #banner nav ul {list-style: none; margin: 0 auto; width: 800px;} - #banner nav li {float: left; display: inline; margin: 0;} - - #banner nav a:link, #banner nav a:visited { - color: #fff; - display: inline-block; - height: 30px; - padding: 5px 1.5em; - text-decoration: none; - } - #banner nav a:hover, #banner nav a:active, - #banner nav .active a:link, #banner nav .active a:visited { - background: #C74451; - color: #fff; - text-shadow: none !important; - } - - #banner nav li:first-child a { - border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - -webkit-border-top-left-radius: 5px; - - border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - -webkit-border-bottom-left-radius: 5px; - } - -/* - Featured -*****************/ -#featured { - background: #fff; - margin-bottom: 2em; - overflow: hidden; - padding: 20px; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#featured figure { - border: 2px solid #eee; - float: right; - margin: 0.786em 2em 0 5em; - width: 248px; -} -#featured figure img {display: block; float: right;} - -#featured h2 {color: #C74451; font-size: 1.714em; margin-bottom: 0.333em;} -#featured h3 {font-size: 1.429em; margin-bottom: .5em;} - -#featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;} -#featured h3 a:hover, #featured h3 a:active {color: #fff;} - -/* - Body -*****************/ -#content { - background: #fff; - margin-bottom: 2em; - overflow: hidden; - padding: 20px 20px; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -/* - Extras -*****************/ -#extras {margin: 0 auto 3em auto; overflow: hidden;} - -#extras ul {list-style: none; margin: 0;} -#extras li {border-bottom: 1px solid #fff;} -#extras h2 { - color: #C74350; - font-size: 1.429em; - margin-bottom: .25em; - padding: 0 3px; -} - -#extras a:link, #extras a:visited { - color: #444; - display: block; - border-bottom: 1px solid #F4E3E3; - text-decoration: none; - padding: .3em .25em; -} - -#extras a:hover, #extras a:active {color: #fff;} - - /* Blogroll */ - #extras .blogroll { - float: left; - width: 615px; - } - - #extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;} - - /* Social */ - #extras .social { - float: right; - width: 175px; - } - - #extras div[class='social'] a { - background-repeat: no-repeat; - background-position: 3px 6px; - padding-left: 25px; - } - - /* Icons */ - .social a[href*='about.me'] {background-image: url('../images/icons/aboutme.png');} - .social a[href*='bitbucket.org'] {background-image: url('../images/icons/bitbucket.png');} - .social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');} - .social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');} - .social a[href*='gitorious.org'] {background-image: url('../images/icons/gitorious.png');} - .social a[href*='github.com'], - .social a[href*='git.io'] { - background-image: url('../images/icons/github.png'); - background-size: 16px 16px; - } - .social a[href*='gittip.com'] {background-image: url('../images/icons/gittip.png');} - .social a[href*='plus.google.com'] {background-image: url('../images/icons/google-plus.png');} - .social a[href*='groups.google.com'] {background-image: url('../images/icons/google-groups.png');} - .social a[href*='news.ycombinator.com'], - .social a[href*='hackernewsers.com'] {background-image: url('../images/icons/hackernews.png');} - .social a[href*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');} - .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.png');} - .social a[href*='reddit.com'] {background-image: url('../images/icons/reddit.png');} - .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');} - .social a[href*='slideshare.net'] {background-image: url('../images/icons/slideshare.png');} - .social a[href*='speakerdeck.com'] {background-image: url('../images/icons/speakerdeck.png');} - .social a[href*='stackoverflow.com'] {background-image: url('../images/icons/stackoverflow.png');} - .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');} - .social a[href*='vimeo.com'] {background-image: url('../images/icons/vimeo.png');} - .social a[href*='youtube.com'] {background-image: url('../images/icons/youtube.png');} - -/* - About -*****************/ -#about { - background: #fff; - font-style: normal; - margin-bottom: 2em; - overflow: hidden; - padding: 20px; - text-align: left; - width: 760px; - - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#about .primary {float: left; width: 165px;} -#about .primary strong {color: #C64350; display: block; font-size: 1.286em;} -#about .photo {float: left; margin: 5px 20px;} - -#about .url:link, #about .url:visited {text-decoration: none;} - -#about .bio {float: right; width: 500px;} - -/* - Footer -*****************/ -#contentinfo {padding-bottom: 2em; text-align: right;} - -/***** Sections *****/ -/* Blog */ -.hentry { - display: block; - clear: both; - border-top: 1px solid #eee; - padding: 1.5em 0; -} -li:first-child .hentry, #content > .hentry {border: 0; margin: 0;} -#content > .hentry {padding: 1em 0;} -.hentry img{display : none ;} -.entry-title {font-size: 3em; margin-bottom: 10px; margin-top: 0;} -.entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;} -.entry-title a:visited {background-color: #fff;} - -.hentry .post-info * {font-style: normal;} - - /* Content */ - .hentry footer {margin-bottom: 2em;} - .hentry footer address {display: inline;} - #posts-list footer address {display: block;} - - /* Blog Index */ - #posts-list {list-style: none; margin: 0;} - #posts-list .hentry {padding-left: 10px; position: relative;} - - #posts-list footer { - left: 10px; - position: relative; - float: left; - top: 0.5em; - width: 190px; - } - - /* About the Author */ - #about-author { - background: #f9f9f9; - clear: both; - font-style: normal; - margin: 2em 0; - padding: 10px 20px 15px 20px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - #about-author strong { - color: #C64350; - clear: both; - display: block; - font-size: 1.429em; - } - - #about-author .photo {border: 1px solid #ddd; float: left; margin: 5px 1em 0 0;} - - /* Comments */ - #comments-list {list-style: none; margin: 0 1em;} - #comments-list blockquote { - background: #f8f8f8; - clear: both; - font-style: normal; - margin: 0; - padding: 15px 20px; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - #comments-list footer {color: #888; padding: .5em 1em 0 0; text-align: right;} - - #comments-list li:nth-child(2n) blockquote {background: #F5f5f5;} - - /* Add a Comment */ - #add-comment label {clear: left; float: left; text-align: left; width: 150px;} - #add-comment input[type='text'], - #add-comment input[type='email'], - #add-comment input[type='url'] {float: left; width: 200px;} - - #add-comment textarea {float: left; height: 150px; width: 495px;} - - #add-comment p.req {clear: both; margin: 0 .5em 1em 0; text-align: right;} - - #add-comment input[type='submit'] {float: right; margin: 0 .5em;} - #add-comment * {margin-bottom: .5em;} diff --git a/pelican/tests/output/custom_locale/theme/css/pygment.css b/pelican/tests/output/custom_locale/theme/css/pygment.css deleted file mode 100644 index fdd056f6..00000000 --- a/pelican/tests/output/custom_locale/theme/css/pygment.css +++ /dev/null @@ -1,205 +0,0 @@ -.hll { -background-color:#eee; -} -.c { -color:#408090; -font-style:italic; -} -.err { -border:1px solid #FF0000; -} -.k { -color:#007020; -font-weight:bold; -} -.o { -color:#666666; -} -.cm { -color:#408090; -font-style:italic; -} -.cp { -color:#007020; -} -.c1 { -color:#408090; -font-style:italic; -} -.cs { -background-color:#FFF0F0; -color:#408090; -} -.gd { -color:#A00000; -} -.ge { -font-style:italic; -} -.gr { -color:#FF0000; -} -.gh { -color:#000080; -font-weight:bold; -} -.gi { -color:#00A000; -} -.go { -color:#303030; -} -.gp { -color:#C65D09; -font-weight:bold; -} -.gs { -font-weight:bold; -} -.gu { -color:#800080; -font-weight:bold; -} -.gt { -color:#0040D0; -} -.kc { -color:#007020; -font-weight:bold; -} -.kd { -color:#007020; -font-weight:bold; -} -.kn { -color:#007020; -font-weight:bold; -} -.kp { -color:#007020; -} -.kr { -color:#007020; -font-weight:bold; -} -.kt { -color:#902000; -} -.m { -color:#208050; -} -.s { -color:#4070A0; -} -.na { -color:#4070A0; -} -.nb { -color:#007020; -} -.nc { -color:#0E84B5; -font-weight:bold; -} -.no { -color:#60ADD5; -} -.nd { -color:#555555; -font-weight:bold; -} -.ni { -color:#D55537; -font-weight:bold; -} -.ne { -color:#007020; -} -.nf { -color:#06287E; -} -.nl { -color:#002070; -font-weight:bold; -} -.nn { -color:#0E84B5; -font-weight:bold; -} -.nt { -color:#062873; -font-weight:bold; -} -.nv { -color:#BB60D5; -} -.ow { -color:#007020; -font-weight:bold; -} -.w { -color:#BBBBBB; -} -.mf { -color:#208050; -} -.mh { -color:#208050; -} -.mi { -color:#208050; -} -.mo { -color:#208050; -} -.sb { -color:#4070A0; -} -.sc { -color:#4070A0; -} -.sd { -color:#4070A0; -font-style:italic; -} -.s2 { -color:#4070A0; -} -.se { -color:#4070A0; -font-weight:bold; -} -.sh { -color:#4070A0; -} -.si { -color:#70A0D0; -font-style:italic; -} -.sx { -color:#C65D09; -} -.sr { -color:#235388; -} -.s1 { -color:#4070A0; -} -.ss { -color:#517918; -} -.bp { -color:#007020; -} -.vc { -color:#BB60D5; -} -.vg { -color:#BB60D5; -} -.vi { -color:#BB60D5; -} -.il { -color:#208050; -} diff --git a/pelican/tests/output/custom_locale/theme/css/reset.css b/pelican/tests/output/custom_locale/theme/css/reset.css deleted file mode 100644 index c88e6196..00000000 --- a/pelican/tests/output/custom_locale/theme/css/reset.css +++ /dev/null @@ -1,52 +0,0 @@ -/* - Name: Reset Stylesheet - Description: Resets browser's default CSS - Author: Eric Meyer - Author URI: https://meyerweb.com/eric/tools/css/reset/ -*/ - -/* v1.0 | 20080212 */ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - background: transparent; - border: 0; - font-size: 100%; - margin: 0; - outline: 0; - padding: 0; - vertical-align: baseline; -} - -body {line-height: 1;} - -ol, ul {list-style: none;} - -blockquote, q {quotes: none;} - -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} - -/* remember to define focus styles! */ -:focus { - outline: 0; -} - -/* remember to highlight inserts somehow! */ -ins {text-decoration: none;} -del {text-decoration: line-through;} - -/* tables still need 'cellspacing="0"' in the markup */ -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file diff --git a/pelican/tests/output/custom_locale/theme/css/typogrify.css b/pelican/tests/output/custom_locale/theme/css/typogrify.css deleted file mode 100644 index 3bae4976..00000000 --- a/pelican/tests/output/custom_locale/theme/css/typogrify.css +++ /dev/null @@ -1,3 +0,0 @@ -.caps {font-size:.92em;} -.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} -.dquo {margin-left:-.38em;} diff --git a/pelican/tests/output/custom_locale/theme/css/wide.css b/pelican/tests/output/custom_locale/theme/css/wide.css deleted file mode 100644 index 88fd59ce..00000000 --- a/pelican/tests/output/custom_locale/theme/css/wide.css +++ /dev/null @@ -1,48 +0,0 @@ -@import url("main.css"); - -body { - font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; -} - -.post-info{ - display: none; -} - -#banner nav { - display: none; - -moz-border-radius: 0px; - margin-bottom: 20px; - overflow: hidden; - font-size: 1em; - background: #F5F4EF; -} - -#banner nav ul{ - padding-right: 50px; -} - -#banner nav li{ - float: right; - color: #000; -} - -#banner nav li a { - color: #000; -} - -#banner h1 { - margin-bottom: -18px; -} - -#featured, #extras { - padding: 50px; -} - -#featured { - padding-top: 20px; -} - -#extras { - padding-top: 0px; - padding-bottom: 0px; -} diff --git a/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.eot b/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.eot deleted file mode 100644 index b3b90dbc3ef34775a8689ab6a4494810c14c5a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20932 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 mb?#}R*%4j(VLYH*AKF5oS rn0PZ0T66rs0j%h=b^w~umnB; diff --git a/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.svg b/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.svg deleted file mode 100644 index a69669b5..00000000 --- a/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.svg +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.ttf b/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.ttf deleted file mode 100644 index 6f4feb02d14c849ba1fb7dc112243386b2ad8f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39168 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 diff --git a/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.woff2 b/pelican/tests/output/custom_locale/theme/fonts/Yanone_Kaffeesatz_400.woff2 deleted file mode 100644 index 7b18f7ea49098fff3aac28a1feb0cecc429bb2ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18320 zcmV)KK)SzoPew8T0RR9107sAj5dZ)H0GaFn07okT0RR9100000000000000000000 z0000Qb{n549D+OsU;ufwyW4gH`|mHUcCAhbROf1%m(wg)Iz$ zBO9BBHSCy4;dTI2MCvzL6m?;f3q4^J3 zn?jvX8Rux$3dW)$94I=8FC$C<0{zJt^8&Yqj6l~elaNO@3y$q?#~9ZE+u6q*p|MYL zf5Ov$cS+$@+Ol@U=cvx=0DaJi{b#Dq%>RFP@4%qMoF1M5(#};1>mX%R&?y)?ce#cG zSr#tM^WTp>`?b$|h$V*TmQ*7{bWP&f8;Ne+HJT=AgaQfvzdt#({>=aaMWO(KKroS@ zkS*C8=IqU}yB~|{H_dHVc`vqGUfcZ|1cw343AOGTl8RZj_jmhCrPifv_QdTNK{9zl zq3Cy?M?46Hu0mS+A7CKh|LH7e68^uHG=}A~`3OL=ldjvXuQlMIfEJiXQt0&=pt(ga z`WBIlv5k$5TC-qH#fZ^TWzY&%V`JwlHtM%oujog#{cB5sYljsWKnB#25u~8@ z&UT$LMVY6rn!g4F6J-{iAx`^%Fwrs^BDA$R_4m9$NNmtEp(PsJS(4;yvUN z(DQybYGpe}V66h|&qwpGsuXe$<;ihL!Qdqe5Fo@#EJBtQ za(=gc$Fg_!*BzYb*E6X)l0X9O)*cW5zWm=&OpL^X2#6qJa)^>O#K;BWt|z3o-Vk5m zkVsJwlLSbTEJ%(#NP!ASjao>(7D$^mNQXWU1b{0LV6uz$$cFHdP+}viA3tP`4aPki@r?ivh4s98t zxJ7X@FcXP(9moBGC`LD-1tVMm3lSWBGC9&$dy-&0>k=@4N@0RU3TOs?8qrm_6`7X> z=yp8mYUv;0eGrX22~1-Qb``}YQc-b@jp)5nmar#QOwyVWa-^WvTnK}(ETwx96N40A zNfJwQSdNP=-tRfFCO@O^M>c&7BPjq_@+XDxcq1UL#_47dFG+%GCKfhg)a2X~flG`- zf`^Z>gMxsNXzdm-XCy8e9v(eFoKZlO5Wp-m7AQ84fGroz9RiqVK+NkyL-5uUsh8du zeE5*?<%cOiIITztlu~5U$X7_ktOB%32R$)p0dw!PBY@Uwg7&sSaHP zX75*MfraE22P`cO$SvEi$OuqB0 zA>G-;^rvGevK5pW3@bR5Al`4iP_dB&MgJ<^tnYBgsAwNntx∾P~=b*KcHfZKD^fBV5)4P(SI74H_XenEXLUPoA49=@uUN`C883RD!QZZdrl}BKC3Qbe#S8OQO{nhzMKs(fHx$ZFAQK20ERb3Ah9r% zO`o%%CY$5^)dO&FS!`|^A2$;aR*MiI%YZqBW-j4#c~C}TBu5B|ksQg9j^jYg6~;nQ zCIL%g7a$~YO*l?UWdWB3Wn_U^NQqd;0;xF3kQ#CJ$k5k7M3QF_aseP75+c4^YrRdl z5n>`XVj~{nBOYK@WZ{0$H|&8+mJQf@hK%xIwX{poN<~LPTVzl-UxKb-q2={uM}`eV zhRYgid7BKu)Ih+y>02MMk_S9M&qZq$#~APJOUXBpSWaKv{N-*MShO91K6?ve$rqz+ zzz(#5oAjVS4C1?wBT@^(=+0zi5slea&tGh*WtLkyXsg%TU}IpjEz{d!m)-W*YoGlN zI0X}K;)sC=#6d)oX?e$4k~rx$h>b8u5h4(Y2!JdaUqKA&B}mMf{(;0ujD#G$WkD>2 zlWhJS=XeZ~A_*6H39>*0m-q*gaKbYX7x568S zZ{C*#wpbG}0bpD<2mqLj8$<>Hzz`&t%Qc+A8sKyHizwt50ldd;l7X*Vn~s5leh7(D z^oQzPePL~Y4Wt;zbNkPm$Stv8HExnMZ09a3(*E%aRKmr zD1UaA_es_Yih_f{FbF@ONqTqfqZ|h40suh2!@U3~Q#nMlWe6xhRuFfCkG&9pfVw00RIR7NB(aB9$p#Neq!JLf$WE&`{UnB2%yuRBb*25oQY0BDOej}krkFW;)-il zhK0;*CoOOv$)#4CZyC9UI%u&&jydeOyKZ>u zra`v5WSd)Fxb1=|rh4SE>*jiFvcYzkX@*&rV`E_AV&UKsl9P~<(bLeZEL6BC31Y>GmnluU3^59oDpIUmi8IQyXw;-xrz%}sRM=v( zJ@(oy*D@J|nYGsmR{_w}uKoXC>NtJd|B61z&AThLItx4r$bM70V=q-IAMiyrB)KwY%K(S~%mofB@EshwGui;1`RITfJyj;!zRYAq z`dJ29|J5=<`rtlq?#zc`=14H*L{_!Ak&P*i|W zz#tMd5DPk(2nI-m4oC$POa%*MLbtJoQ0~c2T|e-GoapJ~IBCYFW=1H!&)d!rfj|B_ zM;jNzG-l)!C?yI(p(qT6qX-mgLaV(DW&V0x4;*y+D>yU>_$it#mFUj zaR@&Y6<8KzO1C1{>^j*4b7)L9LAY_>Lm3aqpU!1Gwu=%4gRvbipg0kRkXxHTPl?vm z^es|4r+{yopxV(~c@(t&Xxy|tfe_MxnC?AkGd{bVI893f=F;i+e9m#?a?;ez3EAM! zXN-<&*Pr9dPRdM9?$iW#7R_2jqJmMW=f|ki7g;=$(Jf;+nDIoYu{g<9JZt7)@hsM> z_#RW(jUJSjqu&HNbxKF_6k)9`es8K^5zNA1y zpw7sUkhv-Uj4O*)lUfHnBDP%k4xeZule;qb;B(B0HN?-H1T^M9*73`b)s3AlT*);p zTZx%lhwt7K;^i9_U;ca5H?*|QJqU6F?@gT!{f^lS9&;hrrN}0Pn)hFF&+Lq>`jstw znSYw(DMrh^p5!@FQDE0Pj_K5{4Rz*Rs=oM(K(qi);a2Izy}^S!fAp6?a`&SsI!vDMkpG?$NKo>HcRkhbs*&1m#61R z>(faEbc*pn>N8opn8EYOAgl>;)DvwanJ*^SZ;a3PmfOq85>W`VBtj*dkP4OFA)HL8 zY!hvFI;_0gydjE z8g^lnt}zT?l4{z8S^Aqp2^McHDj!BuFNvM289x~D=i2+WS(`GqrFIt~iR>NX;Ltk4 zamQ)a>Rjql>Ut5r6bAn!_-sS59TZFG8{2bwL6Z{!IK_d!jWFc?8)F^D> zkocAABq7cl*`-&_W@X0~?BNOsYX4i7`(Jx9=o0|^0G)KdV6{Qyq`w(DW{?6|cd z1jG=68Y(zM6}0QHVdUB}~YkNo&wT=QV0fcF)o>0GnY??&Ncm@t1+rh%zNLS)veSayu4 zn31^{6#x?!F?g}+y8$xswq+%9T$UeFx8bQHDj&S$nNM_u7c+D@dKb!0lo9-5w>Q;7 z#$n48%)2LR0t!Q8Ks4d|6oLTRBoS%=+~I^bi)@?a3v*fglJ8tRQ$}VHGk{|>sIx#r zMgdS2?4F~}bX?|*8RSWAHXl&%=YS*~9_Q->>PU4FeZPTBoK^OEh6XITrpTZnFMp}i z+H8TEFG-TU@EA9R9k|mFammeVZ<3njq2Z{Np}et__=jV?@_2TZxWgFo$5Oe z4&MnOCjKnad(nh{+fQ^?o!_*pO_hNYBSUnuWzc?shm5?NRg#lcJw*{-1JaygPYi~m zPEf}0Bj>n4ayxRKI7vN@yD8Josh@nRYNXI-%H=e@1h}AC%OZZ4d6VH*rbxgs$sdjq zP>^nAOw+_rsJYW=fVn-qE0irmJ}fs{8Q7H5U6n7z zc!Aik0d`pxxvL$qLy-tVa&3eYCnA8HnC$H7I1X`g{qj1R;+z2T z&N#+$Y$TfQ1LN(Ay>MaBo)y$mh~6bA$X!RKM}*>(B^8h%OjF~i+GSfFE1wD^u zq+4FfK^m--)&R~BvlzXo5)&(cW0^j{EuTUsFr_^uUWW8!xOF=e+|Q0Kz{dlsViCO zL9)`SFR61?BB|?X&}J*JO5$PR(eWu((!HEXBntg;~TRJxaMEVRRi^X+EFX_2rJ!!;{R)Df%7 zKMTYlI%n?wJ_UR1vbV)0CIdr4Yuq-eMN$jzf*xrZ?ms9gC$`+f% zL~)8Z^sRVHhK3zPb~orSq0{75?Q?KUQtnL6p{YsK_u@bQ(=wFC5>1`ErL4duJ~Zd0 zs(37^uGXw*HJ;S1#&)Koy57ekbXIpgo{HT!QHb_)yJ-r28Edciy-QSt0ld)eklc9+OSeasrmg$4jm~=Z02fFzLCk%ly6)j2 zD=L?5A~TXUgbhrFDh!nLCq}AdEs|?7dH|tP7V}9C|IEvVe*sqk?Fc>4Ibbd5@{7iT z6Qtq+i?z?3hzOG)R*SXIUMQ#|x89ugbMnmPCR2tP`a>{kE}!UAH3*dRpp8NU<7IpU zdP}z08gcu2!n0kpVTbYj70D@&-{Pl6z1tp>7?FM|HW0M zuLI6OsQ`UKdst(d>cqr_0{An4%*8|aXKy^qaLUy!^9m0rP(gKuxa^riINC}sKFrB< zD=Ihp38NR-7}#(K6g*amP!HfA8-iC{wxbN(Lor5WTljzj(#-HL`CWDgnHN);hM|Qt z4GoZ91>{NDSJvP_!Od@!JWeK&A|U7Q+9)8_wkNhGl=Pie3E2u@Km4i z&mugSl0O8{k9|clQ3L-2`)aG!>C(JeFaY{;+y+t&jdFLG;kTmyJ1cu;pss03mtOL| znI=BtaMv&Mc>Iws4O3vY=ZY5_4+{EUIc9!AGKY*^mpu_nz!I|qnAI6~Pxl!3;Z(N@ z(x#wG5atf%z&xAf41;$6H)!jUBO-;Lqcx4-s9e$UE*Rq&%PXi5dQshXB#&7?Co&4l z2Ijcx2t14`G(%~<4AJVts$$i>?v5g&cQU@) zX+eR74MAOgf3l{J!ig5xl;ri9X?^dPKwX zV~P<_d%~n8^9aUKSr()V6KkBrw{<3nC1r3^PJVCRA~Q(mB1Xe zye$dcsR`OeB;N=-WDkMNAT?;1Pf3~1%LRmzm*Y=eZI@pXG}IE>#S7#;exatQp$g1v z!is*ypPCC2H8|(n8QTh+@=9RXvNcOIJkbe<=GEhGY1eSSdCQsv%(e>qk;P3TS@vF( zunH(7AEIQwndgGk6D**U8sh@DBZam}i+kE+o(XJYqB;%_IiOBeLa*{Ng|5?=Wcwoi zm;c!!4Rb>0GKFt87&zCj7XI~rw6OGX@WLWC;-e6~UXOiQ);NW=-(59=_( zP<6Zxd}^{bIyDVqhMMCKs0W&iZuW>XcMujV%(71f$WltEv;AU2Z_S# zfuGwU7V$Wt(p6fg;2G%xlahN#1*TZ)P7|W-EtekF_eLNKC7-T)*CKFxB-7AGVK{sG zD^?Iw^z@uk_kysOuAdd_o8HYyOp3MrRRo31ff&5ctv zWXWwysqnp|%pZD`x8-2#DMnICWC$o0sA5jy>H;zc*j37dIpXEw2jIF@6F6cfPYLL( zgg$AgjoFiarKK&|e$+H$dYL|`)ubS5ZM|X6V+ThPcV_@Iws$cX7fo}y2fE~!096yv z*0Ftujg`u0IEiXij6Mw$AVTyb=$UnR=)t(@qVZ35Fi7@l_MtDSbgOrYS1Ko5P9_O> zWAL5OM;A3H4AA-X}pUp>Ado=TiKzIN%?>}9mxSQ|8-RKszz62SSF z{|@^>dUOr=o6XBDJ4ByhiO2Z|OK{P&=zQ?xopsviLhzWkxRE2Gd zkfrlkW^C!cp8C$?hClpCZ(n=@sDMZm|R(bFr?-n0^)KTNsnWVW6{F z=%Sg2+@*t3-o3M>d!ai~MV4T)WUOboY;TU;Fn3-S<05t8a1p-h3{TD%d^44zm5g?* zk{znacL}9V7?IRr46~`tUA*>5T=0zlyf7POO${j_icEw>F>A=%Xs-*k$xh?I)j?+BS_x3+cDl~SuyEvHE7#9w4 zg4@iHa0}<)x5e~r2o82Q$d<0f&Al4Wpp{`2eR#e=WMrWD+v6(wzCqb5eB)I)F_=>5 z=C_?kk-SMlccF*{dsj}mOPrUuvhU`BXh^t)doY@=e5>d>K_K0UXg?O;axfLr1^!kI zK0n3(G>ZBK84&LpVS;5F)DuE5S2cM*n z7@NS07H#=?;8%`=KC?T6yK(8zw`Hv+S3WwX0rJL*!ut2X_-f1;y05Mt(NWFgp2H5! z3ZYv^dEfjym0wcRQB@t_!S#CZkTOW6I$LZD=v-1IQl^mZLG<8I=5x#1w4V=3-0*ezqJXbgK5BwkA@ zw7i6b2f064`Q{Wd`9=Yxvz4>mU5eL8E%UeTNL+0LFwuYp!|-72Kr?0q zCgg08^+9bD7pH~n@u}g916UGkuWDwWbT2TuRYQyxQ=j8%f>Vg-Xb`9qYO;?YvysEG zWCd<^nlru*rn6NbJ+RjJIOs4U+t5g>hsigCF$k8QG@oiCXVJ0`C(TK!1liWt&b0_f zA}UcUt2B-rBp3x%gpmR6fNNO=>lNzc`KNJw1)<}%P&oD-YY_p@Ui=-WmpD4Woj*Yb zOK{kh?-f(b<9hHI*r^W%wEf)eu$X8-qji!n#GYDIX1AmzZ1QrRuy_u5-A)Q__m??n zwQ-#(>3MA7JO_|KH$Mrp2gEd9Z>lPaV}D^Otx|zP{}>HlqrWMVjBqXH1H;Nqc8-qa zlB{5WidBDkQ7PiTHXClWaTU`?@z39 z6yVFWz8))(HH$?&_+$nmb)zJyOF+Y(3^TU=MYBzw#v zUv(RM^RD2-e|@6N(o#6R@LdPS{kJA~_U|_qM{cPs$?03(n=|Cp&@d)VDX)DCh}*vA zld^%I#j=eVy%x%or|7mcUK*#pCBt@Eov3WcIaihnHJ63iL?2V9vhaoB(oV%(mqgva z%{Tc@M_eM_QNxn8NuAMUl|?o_sE?iMKVqe#Yha0KwWSVw{I6K$$cK`I%oKAW6`coh zY>TaeW~fw|CZ*O^UR+viPE~NW2w%mBUO#Fo%g^%=_jJ!CF=>dZoXnuRD4W9FkAYJx zU}wwz4E<;ELY~p2QSfu&{m*pKm~XCM z6yksO(^Ys}y!(rA%r1UFa50xvlMZ?7AqdQ35eMFk%*Qe33bJR(Sz6yRsk`SG-u_3Z zSFZ;^Brt}JVTNNnV@K6^M=i329j z{x^VT5?j0;8^7cv)Y>vON#m{IaqDVw^Em83es8S@=woVy!xH(SC4sJ33>kb=#j{Y+ zwP4kHb`UW}t}B9xBI^mSeKa+U=w@$GD8`uyE`;ejKo1fO(NJis~-7b41*MiA~2W zT2ETuxDbqD13WIzm@h5ic+XtcK3q;MiSC>cWFHmqEGIUz>;<0+R}XOezZm&J5tr@Z z`FU%F07bFC`&(i(czcrO`{lwqG!x!5Bzr_#a7W&U{N5%ro-dBb^uvLMt93Ox9t#f~ zMbgy3u)`N>3rxL4D)k2TH^JAL(<)2|$cxE=8IJaSk7pb`TRdv(u1%V!{mwndv~QLe z-T9ur-7$|>s>q%C2AVR{kZ$V(lK>RX_CXCZdBkp*qU~ngfwpgjCs^3rIC~o7>-Mdq zy*Q^py_|tm3jZLWmcVA1=Q?J=E5P_7z(%fG%MEx$$k-CSHR$r0nPu@#{I(7O6 z8tc#@S^6+;m|^-R_U6o31zauabtq=*QH=^FY$WbysSZD4(I5}>uSv%?8!DOGoaO~; z)}MN75Iy17O$2oAPdSN$YHqz1!yP|e)zsb&<$xu;ujs8ktPXmSztLW8l2=g+{SDSy z3&+GUW%;oij{@*51Mrf_R2q~0w6RE00)?JCe31c;u976@mn<~?Wzz*XH8E#ic zuHT*F7H*>Pm8>iZRyHSUIchqOcIEQI=8YX`$*0{VRsZgDIvj-IriE`4ZUL;GE$Wp} z+-~9~fV+~5?B;l@)TD66MYhRn)t0tAArf9?dz=5kvgqguf}=Kkt=Ea!Dyieq&C*~& zeRf%4T~2y>Rs78)lZ_b+`SG$3mVD#07`b%e*#`h|mF#$yBpfE|7 zoo!06Ni$tY`uW)(FitZ_2l%v~S1hx@f!mo_uC+_WVH@ssjny2p!Nn95_uJT?qYk_z zqsl1-D<*#8;jwQKDIq*?A0}3jrSz52dms@lm&-*;G+_t2G_nD|l|bE34dF3BMQ*MF zOPEBkS<>GUEi*%QkFe>3_wevN3mmC37K8B3N<$J*4wj& zmoUJeU-Y-j#owP#*xH6eyx5n#vlL+6*uecIq84H|lX@WFl|OM{*QX||{}@Glv&9aS z0KaY#?H}|-+&qug@MECkZS&P}$nn6n7%1ZVNgaLNAn2vMjXki>RFHe#NG^y7zSk|@ zb8nN5^opFUBY#3+IBya7tT}99GLOBG!$`L;_KUa2&^_flLn5iR{k53T&nA9E(4=ta zmQpBRwjah>p+en2FQ0P2&*tjD9k-tJip-B6mr8m@MdQEHPdJFX?ba(a{TnK_!8Fk( z=uT;LpseVml~`fYm^uR;NG*q+ltg<%nm)2szP~OM(_4d|P8Vu_=g8!uI~ApXn0fkH z(mSg;?m(jW1P$XM%Z(13RnPY*CRd%Lz+EIdX9ExRBlCdA7|reF6N9Fwaz>O&|)kqbuO<)b;S1PBoTREESj%AlkACddi9TZ#gEQX zgwX}_NL_F@YhsPTWD$qKB}~DJ>rDU+_NRC;lNoCPhk2=iF5p z4<6XRPa-b!F!@CEJ#q~0a|8?1Pb1IRW1To{nN+?>f)n4gmdGcdr!!F4-w}?X=Ln(c z6zC6+UI?<5QBs4tOe$yx4W2*Dyuy?2LrkeYBuHP2c%ldIsED=v8T;g+-<$UKnLeMK zZhGYFK;Zbr>P*|iRn`16$%B_m;;}6GbXrNG(eZZcc-xHH(8$Lke66NO6EjVp`-YKJ zEZYg&CUL>Gk$9UQ?nWLs^(B9vv=J5AXlzEK42{h3I{K6a zv4w978LCjoj4Dg$5F+SUl!Y>wl(lf7#;Nk6qfV(1nLk6F8HG+N(&a2(oSdyH#K29p ziX+zgj7AjN*lcS&a+u)YqR=Xz#<4JZ(guYafGh2+!`AYQaIyX>Tj&sY4l1(V*n~zI znyd{74p^L=vv`p%s4lc9StHC;7wWPXsX2lSfd)gjmqkd+jC6$o_Wz%eSnpPrfB*-X*f1 z%G#cu7l-UC^_FkHK4l5}Jcy|@Gh~Ia*#*KWoCZQ6<_pf_3_x2&(9F4z2*%9H?P|md z-yrSFrRrWh8Q%Ay$+PbD(_BVJC5Ep)5AKNEm?3q-5~4?ZZ7#_M3Op|>Mj%hLMV1Xo zT(Gvtp_pLpA3qI!F)OycGwXbGSU82N6el;&@9pF=0-@u!NH9jGwM1hXoiY4g;b;rD zj9Vx;kM&2T_oqr+u-S89C#8!QOP%n`1v0jqKf<_(I@FbVHxrdA!a?GpoQ`8w?t-QY_FNZ3sj;--5p&W)-@<^0 z?}i?Sz#VXC+|Sk1ROTkoKulVh?U(8sq~oh}z=z+!fd@CrAC-Y~5CGF_LVPCvf zjAVqu-OY6kRpH`_uEv_SiYFdlPPQ@2vSMd}$zio-pp^lQ2=$Z!&eI}^yV6)oNocH& zpBM-FSCX6idj}&tz|oWD_WTsrE^HIV1))GF*71P?j3|yfM)@O>8zb}E6}T`AE1&>T zSRki$K=huryee^@M!{0tm6NzQVij2?P6q8D!@KWD-@v+B+1LVW^jv^W!r}WdUr`9K zUj_k;lWzq0^ElaZD;afQ^@{$dC}d9LKwjAOCx?42;a+Fd&-p$OLX&hp?AT0l=wjw2 z-HQbC1g(8-5afaC*V|cK8j;hcEIGL02@Dx;kA+5Vk80b&KvAa-P!TwfFcy5GGb;J^ z*VNjhx=*Vf0Z<)(KEkO|r%G7V5&{9tV3ZLmBa#_uvi!qEmne&LdV`!mW-(d`f=O-I zeke(U0G0XQM0MT+lOi&S01ox05Ci;<{DR76JWWbeC=}<+f9SiU1OSjqaXf6Y!vX^m zpk8o46;9s1_=A{V{HfFze=cX}OTO{2k0F+adP-vCA&HSu5+f&F4V4~?>PmM+b!E$m z>dIDyRJte3J#LC&M1e{qTctt(?EQL-JJ0meh2q2Bb=^seb$)7$XvgF-<-3<$H8 zAK2evAj1F-W zsCO`7BAl2tnx6K?a~WSgIMM`ZlGKU(Dwh7g*-|S5OOuqsw(jBd_1ifar?B7@pz*LF zI1C|bqo-lO^gd(#^z$=aL~(w0%9pb`HUXfg1CdZDi3(AazPprB!X) zxdJp<%bmfPP&GOscPb`;O_HzGd~n6r4nEjTc|ia!&1ih>jXIw1w6ko#ZGu(?X@b-# zO%1ej*++!Tbz>jGeK zZN&z#r7qKr0It;u`V_$4+Qh5X%tcGlj0A4Ys3(3v#a*qc4YcjI<<;dvIw5Tm&jt~? z!b}R%329UAS^9&SREa_`1RR?`zK(;m9IjlovHi7YP{Y;_pW@%PgMZ=o)j*U%`GRXp zOJ08ARUYouWvKRyd!1lAs{UbpCn$u-ZGoU_f`f3r!R%BpfaHbWsuTWUDfP-ut())S ze}8iqjb7DvqPkb03|10yNqJUKAQa7r@G0)60sz!Sn61yCPbxJwb!qk`=JaaYsJnnH z8Phz&kit@rJEi~--XcQJkX6)gRTogKsVe)NMj4Ly_P!N-ZXV| z9Ab@4RB<$}ylw)fu4mPfM#M)M%Sd&1qJ&-HDJvfCM3x&jsoLfV7&w2oSZxk!N$_5S1Tv&qgQc?OmAN+ z>7jI6ZUwh`K>EhtiZ@?WJorz$I;4?wa7Tv#R=h~n^mz@)@-U5uCdzADLfU=1BMqsW zK$x|5Ii2UX>6U9#CMvZu|DjSx=7Dx&8(Ni+(B4iI8Va?aW? zqK$KMB`v^vz64c_<)_|9pKe~W;fyu)7$1%RGaW}k_!d}r1)vAKhup%{m6+PArz_)e zngPsiW{qGVw9O@Bmgn=^=*<^3<5O%7v#a9w7+8me6`j0}`u=~uo83)G z9p|>XS;*`Gj4Z2z7V_h%E3wAULCAo|hZ;7~k%Oy=WSg)%Twn!ocNCW@Nr2}DAckM9 z+$0P(vscy=p7|_~#`a#O7A)grNE412Ae-QYXbU%Dy=a$=c80&;jJ&)fbM*=%*T7m6 zN<5MTATbHarsk2hf?M@sYnxr$kWif*>9WNDa4c)Q5J>6FYeRibsbkL5XWv$(<7k^0 zFy9}4o4xs>)?mPMcwdkb9J8yjD?hvBd?r0g8H?G1)G)t&c3^t(T;_F)s~rcmsbL@p z%NcU|0LV1?z+2x3MxXu7OO7X6bnLWgO+yH)?}&)T|p7 z(J93|7ic)!!(H*!>MSN3%ucx4>?8at~Ov*f$8@bL!&Rfx`RrCCI^5%=O&maZ2#0M^f zRrL?Zx)fRm0}CF-`+6y*CBDfk>Ce_85NYIPk%c`TEZ?_i1&Z!-zT0sQu>0Lz9S?lV zH}eJ<)H+iR_uGA~Vc6VS_AQ_B!Zsvi>(k|py3`$it9)uY21YwtZ}iO6I}S5%B#HPh*%%6 z3CQ7i&7=olb@fsyThehwr><&>Ts3EN#hxQvvLgSwXbBedWxk6QAJ7yu6YelJuOS53 zJ+GJ0P;2UjdDT82&K;*lql`!R>>H!VYP8X=X2DK249RCBqmre_`$lq9enQ?sGU>hF z^XahPu3=6))(T4yvq+aCdfFxDEUC^Pa^A%50W(^oE0f7hB3&2QYx3LhnFkm%AL>D8 zh#Z$FgfFWN(i9-QNChb%VKO6FlPO_fP8wf3x8Kui-0dDP+Rzud2SY5Jcx%P{=HR7K z5&*D4y#riFy#ox^`8;)?kM_=8J3Ue57>!^PfcwE~je!0f_cN!>R=SL#zASA^ylMiN z=pVMTQnvZWG8`FIK#<2A45F!L1>l6R>IV4zcq=6W5w*nIjOu!%AsOL9_yC*?K;5@$ z!C5MZbizgd<)nT&G~^{xxeXW8QQ3Md_sLWCb)0AWMAuBNgwrvC5!1T~lNK63;KLB8arQ2^k8g`at+;?89 z(24ntJkwO}CkQazZW@Y|qRAT>IcMbeO@H(?@l!`#=H5GOv>V#Hp7mAOn@ zHTtysH_?(GN{8yH!!bqX>SH&oZ>z0}tzS=ZR?P?^^3_vEx=(wxXElCM=9r1|;{qD& z733DQv}r~4iM9fnzcXUl;ye{y=}G|MHMmDG-xXULa`v3RkJedUK`1X)L zNK%|7`vVBqFoAIQkCs2>_khZo z5_cZjO!PlJ>X&+>vb?B_lHar`gds!ztfFZyLKlY%9S_}zT5O||)p9YXj)JqYnB~On zfNvAWaacw;L9*&a%eio4Yx=>E&1K_A;0&W_?DS>p-c}p2;&Z5V&I@EJAD}UkOrN~^ zU!-72yoLL1{y8>T`Y8Al+vkDsH3InGf^T%i6Vr6%@fVq`iox5v=YeMJ((^I-g|nMA!=5eD$M|9eo0EgJ>Uao?e$ z?*+UsA`gq(mP`woIfkwyb?;*g&?d28H#O983HU{lfXuylT1-RDZMYq~dU%_}z|=X? zS%U*IU2~Nz5$r>0hM>o@>b&iGF+XnCbVbQocA$Zez{f#1b^1g zqt_5r3)!e{^16!Zz9+eKgCm=1KcUEzIG`$l4-_m6Oy_g4eQ&hi_8IRGdrUjboxlwv>5s{%zDCwPQvL24OD z@g@dF3N?+>NI&O(-qa0+7UEKJ-GbL=pz6e89BKy|X5f9fZ>HPFpNQ*Ue@Oinq|60b zXzwj%=CBoPv)>>9v&bRKk%jw`QSGpL(3Ev9of#glQv_x8Is;;Kpie2I2Js26Acd!K zUsUM(0RF+BP9o14?I58LL}u88anpE;P;S`|0ZRw8_?nPXu+gk2afMRHh?}$)`GfhVFxETENfi`WA(N^2k&v>d{(2xe(W;NGyq5YXUiVT?CWD=K zzk79cmOHs!&L?8Ri#&umEOQ5S@96DkCu)($A#D7+PdwW-P!=0SRjJ}YmrD72(9vc; z`8NvjSAjrErF1b6dhB+UXELB^PJCfD>U;GDfjD&-3|g2(-2sG>So-IFt4hxq*7@Px zs~1q=TOlgJDC4&FP#?$0?F7O<`W(t(q(~H!$H(+~Ana;uXewuj>ap#5?|4@QH$9yX#;{9KRA^wZ4$|g^-^-lb-v(wyC68jk2%<(9_&Dx zMo(&)E#Fe-u6NQkK06&C-6!LoQNuS~C|@1` zhFIWG$_URo+-b!Bl(eeIl1~0*UgL^(L^%?Ka_LQRCj|}kn_Q4*_Aoy?4N0b8oXO?< zP;-a?V~!zgLO~MeGec9)(Et!i%{XD7J^Fy-?uCJy%zq8`N<`6hs?0u4n#)PQs^I`6 z#1oP5NM|~-WGrM!cU$3;#8yg|j)k`Aq8#>I*^Npwg3`p;Z)up?O%IG zpMUu(p<5UeRylDxxg?F{E-;kKE{p_mjX0NDZ_ozIV76ry0H(jy*dba?TnICaQ+&82 z0pKfX?@M3D(%wo51(isfN-jWnS_|&Cj5@8@+14vt-BOGikC~M?sX-=h9!3U{riebN zt4MGU;*s900QP$$Gg+o`wf+-iG-dj7wSh|l-2vO*8vF$I&L)Mq*1^p>@X=S@w#xvn zFTI1-o=Xh=O4s`9w1Joz!ZIxFk2{-XE`fb)NHdHp+*2lT=?OE3D5dS6-S`RQISGQw z$E}LQpUH6U>OwgtnK5IyW-)zY=nBKRga&8@T{(4}>13N>rn;SDI_K=qH3K;Y4H!3v zBTe@$vCaVihgOs8AWAf@ySjTI**n<5eu@J|M>sK8nSMJ~XHOb0!mz-~I9AWO4T;B1 zXHw1)t0ft%tC|xV!6|v|wQqxM6re4X+s8JH+sJybnz(!0i&DxLf6=<5 zW05){92h?_n?{kyGC7emr0lZeOSV6vb3&WhE@tnoV_!F3D>v z*Q$nD6EAK&U~XSo;!#69jK(IdSIVtaHx0z?B>K5a7X687~)IQtpaLHrUA9yWa_TS3UJ|)io8a|E9ww{k-8X z?6(+BuS%U-3x$hNFVbsK8VLJ(YZNVpNvs=Mv}xBWE+oWD2m=x&>5!~bAANOMq@PVv zyq79Xx=}J@>TjSy2FQ{vN3OSa%L@~+5E~9UWS;rqfRv2Ef=ZJ0h zQ(|F1d)n#Rj!78ZCcukGB%4BADbl1C8HPzR0{um5$n1J2f zRO;5$S=+?@i!ew++BPUmxBKZqMzgx-kuY!4f@$kc|PLTXu_WCrl>67#lv&%hP z_bhv~-OKM?Ka6hrRo4#=5C?`Ps0Rw;YssQaM(%p5|6dH~1(9=SeYPRJvHx}8>$T9{ fo9oM&U7xI%SSvT^|0Ky@#oqjLqwfJr6#xJLuFT?~ diff --git a/pelican/tests/output/custom_locale/theme/fonts/font.css b/pelican/tests/output/custom_locale/theme/fonts/font.css deleted file mode 100644 index a9eb87e6..00000000 --- a/pelican/tests/output/custom_locale/theme/fonts/font.css +++ /dev/null @@ -1,12 +0,0 @@ -@font-face { - font-family: 'Yanone Kaffeesatz'; - font-style: normal; - font-weight: 400; - src: - local('Yanone Kaffeesatz Regular'), - local('YanoneKaffeesatz-Regular'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ - url('Yanone_Kaffeesatz_400.woff') format('woff'), - /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ - url('Yanone_Kaffeesatz_400.woff2') format('woff2'); -} diff --git a/pelican/tests/output/custom_locale/theme/images/icons/aboutme.png b/pelican/tests/output/custom_locale/theme/images/icons/aboutme.png deleted file mode 100644 index 600110f2f63811ebea40af1b943fded0275b6a39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 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 FV1ku*k$3ca`voa6f0k zeB{69k@N|?Km7UBZZ))YUHu=w|Mw?(E)O$?WixY_FPL7s$Pm-8fstds@^ATL%bUet yZgfGChJzsUtA%$MR;8+S88GxaEa+z7`Ew3v5re0zpUXO@geCxdur~kz diff --git a/pelican/tests/output/custom_locale/theme/images/icons/github.png b/pelican/tests/output/custom_locale/theme/images/icons/github.png deleted file mode 100644 index 5d9109deab2b3669c845845515f4d53ab5d6daa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)3g@6&i?1|w)NXSf84|8m&o+0 zUbR{k48>ZU#v6!wqi1V1r%EE$MYAT@gfEZ`ebJgG`3x?P75EOx(Rb}pK9^g49TLfP zG|6;$SGbAH zWw$>tFUyCTTU=}VL5$UQcykD>ruLPAMktgpS2)vHd2`;>>D~O#r0q^piwN%{Eu7xl ze_3-g6EyPr+mZ( z$~zD9`4D^$F>WOyU!f<&c%QI`>dHS@;3~xO7I+5=MISM;>bsLPrcC8T?Gyg2EhYt{Z#{?9|afq=U$pRKgVkaa6A5hOW zm~E0;qoMsELHiVUdq+qHW_!=pLlCuB&nsXkrlThcr&yqB2Ez}bh}WQodCMG=62#-T(jq diff --git a/pelican/tests/output/custom_locale/theme/images/icons/gitorious.png b/pelican/tests/output/custom_locale/theme/images/icons/gitorious.png deleted file mode 100644 index a6705d0f462b505be4d9a5a372743d206c141a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!O@L2`D?^o)dRwqYcev@q#DMvQ z*(*AHH`kW0om8=NO8&uVRmbKn*uQ@5(H+Zf?%R0x*ww37FTJ_{>eZ{eAD{pK|9`68 zWgnn9ah@)YAr*|ZCyp{U2QWBn{C>Cgf8^^ph2sKmrZ@0Db>47eliif`GZN3kOR|4E zp1HSr>(=i-J2K=SnYPGB*}QnjI%8UJ(Sx8gTe~DWM4fr0!yB diff --git a/pelican/tests/output/custom_locale/theme/images/icons/gittip.png b/pelican/tests/output/custom_locale/theme/images/icons/gittip.png deleted file mode 100644 index b9f67aaa32a0acd166d7271b3dbf9113717d3f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMfoB*E?S0J6}W0T-*4J5$~5D8`b z*u=V-n;Wh0%9W86%yoICmD^QXBJ+TuMeduj_mynB29_Kl1X*A2_&{r~^}-@kve zdYW2FGLG%r8Ru!aX~lxyzki)LushDvqC7Rcx2`zG-R$h~L;wH%fBfKXl#6k)zx}VD zKk}k|sxxDHYKs!Qtrkt~nbKapYTmR2Z<_=!t4|TTzXRRJSrX(I%%C#k)~^Ns|6P3T zwz~@CcuyC{kP61s^QK8h9R!*aGdC-5mQ6dy==6QR=MEp?G>PQz`~2?eFFMS(r+K1g zp!&qb32C!ZG_9s->U*tRla<=$@$cY?|5H+adAMETx@7!MusHjBPl?KXziQ+6?1D=V ze?2)-gt;N$>Wd8<>nsYyl^Lt{Fxgl%o_?@o{T-$+24C7lzi+*sf1s9QvY5Z$XS=Iy lUyMDUTPOc|vvcNeU4iM^B0ctPia>WVc)I$ztaD0e0syFMv7G<_ diff --git a/pelican/tests/output/custom_locale/theme/images/icons/google-groups.png b/pelican/tests/output/custom_locale/theme/images/icons/google-groups.png deleted file mode 100644 index bbd0a0fd41295e94081103efe82742a5c6411765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)wr?kW++e@xB+qT~SFYEF=HvR&ieDr#i-_xj} zRHo4+e;!+Noelr;cc?77Y;{c*CNr6Zes7m1^J^+M9sV--D^!{k1_1#;6aW?Y?FKU> z$wUFckfr-O)R-Be!K8BMN$?ljo<0akOpD)OEKI~9+x!b$boZC|3lK-`{C{xHEuU!d zCn!ydf)v}GF)B$#1SpIDL5ep&8ms%oIbw(Zf<>Eu zV{!X$x!~%@{^9sNR&mx%AN_fQnat#ZJ3j~K-$A9Q{GPt1rQRSFm;ow5sT2?@^QR4r zg$anDgeCx$iqb6h2iG6)ockYoL!0v;mgd!$p2~_@_rOO_1Na`l%Wwj6hQdz( O0000oJ)blrcs(C@6ijHhGjL zrFRi_0z}#gh+z_?jx?ulJ6ZEDq_MICdrx(I>4q_hBh(7t5P3nx z6N?eUwA{x^#MIz^w4#;vg#Q`{-|sTaZm+z|gUicmu%q_q_{S4K=37O~-YZFy$l zCeshS!0W4y4-;Rs{O>veK>w%APq})#_~VzlN~kv#Z!>>U^FI6esN%Y~QuIs1d#~iY zS5C<<$DO!3cexVMKA`VP&KrXDnvg`iD8?-qH)mw8u{$e0Ls5IrFnpzz@8B4^@ijQjs{a4Z+iYWeG zt$5N5AMVx+R~iI;l~A9E$d3ce%4xvm2W_r2NEe$slb&w_>f!(Z002ovPDHLkV1lnz B@09=m diff --git a/pelican/tests/output/custom_locale/theme/images/icons/hackernews.png b/pelican/tests/output/custom_locale/theme/images/icons/hackernews.png deleted file mode 100644 index 8e05e3ee207e114a96f3811f46f68d17d52fe80b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2771 zcmV;^3M}=BP)X+uL$Nkc;* zP;zf(X>4Tx07wm;mUmQB*%pV-y*Itk5+Wca^cs2zAksTX6$DXM^`x7XQc?|s+0 z08spb1j2M!0f022SQPH-!CVp(%f$Br7!UytSOLJ{W@ZFO_(THK{JlMynW#v{v-a*T zfMmPdEWc1DbJqWVks>!kBnAKqMb$PuekK>?0+ds;#ThdH1j_W4DKdsJG8Ul;qO2n0 z#IJ1jr{*iW$(WZWsE0n`c;fQ!l&-AnmjxZO1uWyz`0VP>&nP`#itsL#`S=Q!g`M=rU9)45( zJ;-|dRq-b5&z?byo>|{)?5r=n76A4nTALlSzLiw~v~31J<>9PP?;rs31pu_(obw)r zY+jPY;tVGXi|p)da{-@gE-UCa`=5eu%D;v=_nFJ?`&K)q7e9d`Nfk3?MdhZarb|T3 z%nS~f&t(1g5dY)AIcd$w!z`Siz!&j_=v7hZlnI21XuE|xfmo0(WD10T)!}~_HYW!e zew}L+XmwuzeT6wtxJd`dZ#@7*BLgIEKY9Xv>st^p3dp{^Xswa2bB{85{^$B13tWnB z;Y>jyQ|9&zk7RNsqAVGs--K+z0uqo1bf5|}fi5rtEMN^BfHQCd-XH*kfJhJnmIE$G z0%<@5vOzxB0181d*a3EfYH$G5fqKvcPJ%XY23!PJzzuK<41h;K3WmW;Fah3yX$XSw z5EY_9s*o0>51B&N5F1(uc|$=^I1~fLLy3?Ol0f;;Ca4%HgQ}rJP(Ab`bQ-z{U4#0d z2hboi2K@njgb|nm(_szR0JebHusa+GN5aeCM0gdP2N%HG;Yzp`J`T6S7vUT504#-H z!jlL<$Or?`Mpy_N@kBz9SR?@vA#0H$qyni$nvf2p8@Y{0k#Xb$28W?xm>3qu8RLgp zjNxKdVb)?wFx8l2m{v>|<~C*!GlBVnrDD~wrdTJeKXwT=5u1%I#8zOBU|X=4u>;s) z>^mF|$G{ol9B_WP7+f-LHLe7=57&&lfa}8z;U@8Tyei%l?}87(bMRt(A-)QK9Dg3) zj~~XrCy)tR1Z#p1A(kK{Y$Q|=8VKhI{e%(1G*N-5Pjn)N5P8I0VkxnX*g?EW941ba z6iJ387g8iCnY4jaNopcpCOsy-A(P2EWJhusSwLP-t|XrzUnLKcKTwn?CKOLf97RIe zPB}`sKzTrUL#0v;sBY9)s+hW+T2H-1eM)^VN0T#`^Oxhvt&^*fYnAJldnHel*Ozyf zUoM{~Um<@={-*r60#U(0!Bc^wuvVc);k3d%g-J!4qLpHZVwz%!VuRu}#Ze`^l7W)9 z5>Kf>>9Eozr6C$Z)1`URxU@~QI@)F0FdauXr2Es8>BaOP=)Lp_WhG@>R;lZ?BJkMlIuMhw8ApiF&yDYW2hFJ?fJhni{?u z85&g@mo&yT8JcdI$(rSw=QPK(Xj%)k1X|@<=e1rim6`6$RAwc!i#egKuI;BS(LSWz zt39n_sIypSqfWEV6J3%nTQ@-4i zi$R;gsG*9XzhRzXqv2yCs*$VFDx+GXJH|L;wsDH_KI2;^u!)^Xl1YupO;gy^-c(?^ z&$Q1BYvyPsG^;hc$D**@Sy`+`)}T4VJji^bd7Jqw3q6Zii=7tT7GEswEK@D(EFW1Z zSp`^awCb?>!`j4}Yh7b~$A)U-W3$et-R8BesV(1jzwLcHnq9En7Q0Tn&-M=XBKs!$ zF$X<|c!#|X_tWYh)GZit z(Q)Cp9CDE^WG;+fcyOWARoj*0TI>4EP1lX*cEoMO-Pk?Z{kZ!p4@(b`M~lalr<3Oz z&kJ6Nm#vN_+kA5{dW4@^Vjg_`q%qU1ULk& z3Fr!>1V#i_2R;ij2@(Z$1jE4r!MlPVFVbHmT+|iPIq0wy5aS{>yK?9ZAjVh%SOwMWgFjair&;wpi!{CU}&@N=Eg#~ zLQ&zpEzVmGY{hI9Z0+4-0xS$$Xe-OToc?Y*V;rTcf_ zb_jRe-RZjXSeas3UfIyD;9afd%<`i0x4T#DzE)vdabOQ=k7SRuGN`h>O0Q~1)u-yD z>VX=Mn&!Rgd$;YK+Q-}1zu#?t(*cbG#Ronf6db&N$oEidtwC+YVcg-Y!_VuY>bk#Y ze_ww@?MU&F&qswvrN_dLb=5o6*Egs)ls3YRlE$&)amR1{;Ppd$6RYV^Go!iq1UMl% z@#4q$AMc(FJlT1QeX8jv{h#)>&{~RGq1N2iiMFIRX?sk2-|2wUogK~{EkB$8eDsX= znVPf8XG_nK&J~=SIiGia@9y}|z3FhX{g&gcj=lwb=lWgyFW&aLedUh- zof`v-2Kw$UzI*>(+&$@i-u=-BsSjR1%z8NeX#HdC`Hh-Z(6xI-`hmHDqv!v)W&&nrf>M(RhcN6(D;jNN*%^u_SYjF;2ng}*8Ow)d6M ztDk;%`@Lsk$;9w$(d(H%O5UixIr`T2ZRcd@QN3Mg3?1|NsB>i~#tuXaD5J_o76e z$B4WD001vZL_t(|0b{@m1Qi$r!3;wKW??Xc(Sbz(%wQEZ41g$d6oINX6oxVw1@JNO Z0sz-j0)=#JDs2D&002ovPDHLkV1kM1SuX$p diff --git a/pelican/tests/output/custom_locale/theme/images/icons/lastfm.png b/pelican/tests/output/custom_locale/theme/images/icons/lastfm.png deleted file mode 100644 index 2eedd2daa1429ba026c0b3c81f200c7df55d199a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmV-O1GoH%P)KCJu$;;6i zN)?b2a3_#VfTsWs$6EHV5TGNlK%}w4u2N|o9mJtskW6u)FfMY|?6HLq0N~tSmCYiQ z2itn^l^G`qTae2D0xESFZh|%tXmDcRU;!-yQXzzdgu?j^sE-_`#F)I#a0AjAIORAv z?nua{5j_L2Xf^mv7?p>M&VsISuyh@C_u_&8Tdjpsq*G;#gR3rt3(wqpYJX|(pqnm- zVi_(t9gaQ}dWUeQ9S7b0nAMvJMjCC()%*h2T()P6`Q<<4KoQZ3;E)b@mqq9E^qzbJ^&kHt zb@z3sXYQl9ZY#2oD@eP!I~#uc8*V^AwupI;L7D|Jvi|(8qu0 z2LL$zBz)6?fx+w8bl#l{x;rm&{_hjrZqU60&R?r z_q^a%r%rJ@Z+x)Fd-;e{U-Iff*T}z9(5p5g3wcDXPJR3rG$+nsWZfoYCWAb*gT_Bo z7fg}|L9J&75r5f0ZeI>gIn5MAw<$RbKrq)K4wK5le| zR(k=@SlVyBWV*`avXNJ2NP$f#q_(8G+6X;MtJy>;4`+;2 znIjMBZmisPo~Hw3I)yO?atTx+i^wMNq>KkRoaf=R#1u=&Mhm*)MMoa?yQ=3?Z|U=o zU9OHh!itfmFwG$0g0M5@al}`~v399M8f%oORSV+K_KnG|j?V;kMf)2sF5LyF&y{nJ Sd8X6=0000 diff --git a/pelican/tests/output/custom_locale/theme/images/icons/linkedin.png b/pelican/tests/output/custom_locale/theme/images/icons/linkedin.png deleted file mode 100644 index 06a88016f191d1f7596e5d159eb9e3ef276b6ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)NJD$VFG5yq%r(;8zR}7Ydty&~ue@oPv z!go{cG`vvH)n(hYdJfur_4kM7-}`N$BLW71f|-O65QELNn>4;$_2zi#L7VQdUf*VG zc0B*xR8@Sfo>nmHN}+MDnqn5J#;f9g$TZW=OS!!C<4lU-jh|=cs;0XYW~;nhJEE0r zdMWpJ#bDNMT&}cGH>t7P-yM4W=hFCXaLv`alDWtkCwY0;!z58#z z#&T71?c1;2yXPjW|3Lt-K|fa>vgM24P7nS%my|*-?u{?k1z4y`Q@qLr7+I)}xOVW2 zJ3sxy0Crrjx2{T+o3K*EU*7;Otu&GVZhd>`xi2Rl`h0wRu?9M0pr|e$T%t()-9X(G zM?fxx1SUyc#XyCAwXc5_{TIPFaU$>TzBm6pmt%Vs1;7F00000 LNkvXXu0mjfHfAMI diff --git a/pelican/tests/output/custom_locale/theme/images/icons/reddit.png b/pelican/tests/output/custom_locale/theme/images/icons/reddit.png deleted file mode 100644 index d826d3e746a18b712db7a68746c0c523af802fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=KP)rn|{qWNU7Dgl~R~ zWNK}Sjg6(Fp|rEIpPrq2fPh0AJ zxy#GTfq{X3etxmY-Bn&^YHMt-t*g_~&)L`2qqxp^h?r+{fMacVpMN&`0001qNklWKP}*}Is^$| zQ}1hfWmjT2av-PYqbE!!n)oua2c5|Qn7a$5l#p|w6z7}`F{d?z0T5WQglfOLER+{E--Hu?5@wDUpV?F@=Mkg+ zN{1=uqDlzrnkbYp)J3q!I?Vn|_~M zVqi53FAJQ^xo7*4+R80OflZT^0WscTaBuO7ca6A_aA-H9M3Y@{DSLGBL)| zTym{{me}!*Z3962jmy>w<<#@)IsY9R%I3sYbB>~@mM@C5Ks~s4nX-}TW8S>D*g7F! hew!yYJnD{z;D0NLV2ni3qF(?2002ovPDHLkV1k{La&G_t diff --git a/pelican/tests/output/custom_locale/theme/images/icons/slideshare.png b/pelican/tests/output/custom_locale/theme/images/icons/slideshare.png deleted file mode 100644 index 9cbe8588e24976076e5fc3898fa97856122f6fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)YNn`_&)?H$|J+jM18jcAeNE5840mI#38{rmUny@9DE z#Xg@8y@9DE0*}W7yWQR+m>Mc@yWPA^!~YvlZXQ7Ti(&Z??RignZicC$0;ki-+teNz zN*Qw@h$6fTDiChi(;mQdV>IdC=QLyP(`3?fGmSD0E706p2ko0(Fn89&YPG`Qa4@$> zdhWPhszyk06L$T`#EcuEoIB7dp?k0q>OF&bXs#{9!Ot=1fBXlJ={G`9+@@d!27`fI z*^>PO`g==w@1W}FBwRnS8UK$h$DgmS5K-O+o6QEJ(Z~waYBd=2dOa)_3-qUlQ$o(J zM$*}Z*m~g-OePa_IvoOeR-jNQz{PlZ6lKDV2#PRA1rmt_T+Fw|P-fhVCCq=C0AY>_ z#9}czIyxxk)H|>~8V7Uy1sn}2#;nIlxE)_f_XF?+t*xyTxm-@(N8ncJn41xc#e6|8 dAc8(0=Pod^EtOP(ARYh!002ovPDHLkV1k4J!&(3U diff --git a/pelican/tests/output/custom_locale/theme/images/icons/speakerdeck.png b/pelican/tests/output/custom_locale/theme/images/icons/speakerdeck.png deleted file mode 100644 index 7281ec48b41095180a83d71eaf0b00c85116965b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)K92#E{?_PJ+8Tth@W(+a>28uk~_0`h`<(yY|`h z@3?AaV0?I7E@5C8LL5^B7?_#m1O5GLKL6{LaQ3ZN%$$19RhM^ilM4(QGb91Pk}#td z%#5L?Rn9&W7zkqrdeL$z%L))wjb8cZK2wtEL}mE*O&6H3%~&#zdHx68i}xJQZ+34dIdgm^E12V4($L!Sax!Q)0op z%%0y@llS*=IU_?ugf;+>a;DdHv`xcYwwSu^B5bgwWG8rbaUIq4<$P}6+C9-V(ZSGy!i4XI zBkkxgITji#coxBn7F*@>CvnH5Im-dI=x{a@nz|+mZz(oB8CqTLuD=F=p|2qrpWMi5G S=mtXo0000YRoeQcY09>#1xxKwS5F z8mlP6JGx3wQgxp~4T-?1`Rz0oPN3$iK>QzwU%sBkR`YrWi#XVjbZs+WxcmSb0KzU< z4R|<_pXuFnCY5*7ncLn>WBm*@=rz!g=9fLZ0#9?*eV!!i{{b4*NYE=UCUZ&x4QhHf zjrr}HsjUBBPiJ}aY9eRTvkFsE%bi<+hJ_q$)(X1QD;kN@ z$%`wz`8QVB1Z}9WYXRb&Kzt8~{{vn2e{DI?z%r-*E6ZK%Ff``oJb76HYP@>p``(Y0Zs!*!BjN>0I%aNVnQ8)X9Pc^Y zIsS936mToi>>TyPEkcc+2 z`5!z^ZFZ_O#v*`YvS&^RN+0_pGFvTxh}Lp2wqGagAdVyz;6#9udAenJvhWwC3QjN} ztg*<~69%xm!G(wSxK?V6H7%K70|sCIX&%<6rLrHmSw|10dx_{@95hn1(i_a}5^hC>VT?7YQHpjC*P~ez&J%_J0000< KMNUMnLSTY<*|#qM diff --git a/pelican/tests/output/custom_locale/theme/images/icons/vimeo.png b/pelican/tests/output/custom_locale/theme/images/icons/vimeo.png deleted file mode 100644 index 4b9d72127c574237090a2f5f2f7eb7be94a2b62e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)K~#7FV*mo~S^J1YP}SCZ?(wd@Mi2p&f%E_|kV7PbYe1Nxz5O|y=nOth{(bt=TS6pPua;?J=e5) zBGkM)Pk5GtRBXBib(QPnRVW%@oC6PDyoRVi_QQr_=YS?+52c0sPeBv`1LxxFPe2CH z8{$R%ID<81>CXSCz@?@iUpz?mZ$MU^)He_47^%Sg0P#sgK~#7Fl~6T81W^oq2cX(5aX1R@6<62}xdAmT6>b%79aG~T97?pp zUBiU8?wcQZ@ytL(4yKyhs>_L_h@KZq&4RGqy&kuUuOC&N_n)+)st0x|+@BHFkRd@&PPEwb z&tB6>xX7cYComKsCfH0jmXR=>tbysq2Gd0WOmZB{y88Z3Wj9^}w-Gbm)y>{S4W9T7 zfp3d!a2x}~TiXWa<}BOO6S3ho2QJ^`nhs+IjSU!vHHb*~-y}#B5s^RLsrl%w&%5IQ O0000>> with temporary_folder() as d: - # do whatever you want - """ - tempdir = mkdtemp() - try: - yield tempdir - finally: - rmtree(tempdir) - - -def isplit(s, sep=None): - """Behaves like str.split but returns a generator instead of a list. - - >>> list(isplit('\tUse the force\n')) == '\tUse the force\n'.split() - True - >>> list(isplit('\tUse the force\n')) == ['Use', 'the', 'force'] - True - >>> (list(isplit('\tUse the force\n', "e")) - == '\tUse the force\n'.split("e")) - True - >>> list(isplit('Use the force', "e")) == 'Use the force'.split("e") - True - >>> list(isplit('Use the force', "e")) == ['Us', ' th', ' forc', ''] - True - - """ - sep, hardsep = r'\s+' if sep is None else re.escape(sep), sep is not None - exp, pos, length = re.compile(sep), 0, len(s) - while True: - m = exp.search(s, pos) - if not m: - if pos < length or hardsep: - # ^ mimic "split()": ''.split() returns [] - yield s[pos:] - break - start = m.start() - if pos < start or hardsep: - # ^ mimic "split()": includes trailing empty string - yield s[pos:start] - pos = m.end() - - -def mute(returns_output=False): - """Decorate a function that prints to stdout, intercepting the output. - If "returns_output" is True, the function will return a generator - yielding the printed lines instead of the return values. - - The decorator literally hijack sys.stdout during each function - execution, so be careful with what you apply it to. - - >>> def numbers(): - print "42" - print "1984" - ... - >>> numbers() - 42 - 1984 - >>> mute()(numbers)() - >>> list(mute(True)(numbers)()) - ['42', '1984'] - - """ - - def decorator(func): - - @wraps(func) - def wrapper(*args, **kwargs): - - saved_stdout = sys.stdout - sys.stdout = StringIO() - - try: - out = func(*args, **kwargs) - if returns_output: - out = isplit(sys.stdout.getvalue().strip()) - finally: - sys.stdout = saved_stdout - - return out - - return wrapper - - return decorator - - -def get_article(title, content, **extra_metadata): - metadata = default_metadata(settings=DEFAULT_CONFIG) - metadata['title'] = title - if extra_metadata: - metadata.update(extra_metadata) - return Article(content, metadata=metadata) - - -def skipIfNoExecutable(executable): - """Skip test if `executable` is not found - - Tries to run `executable` with subprocess to make sure it's in the path, - and skips the tests if not found (if subprocess raises a `OSError`). - """ - - with open(os.devnull, 'w') as fnull: - try: - res = subprocess.call(executable, stdout=fnull, stderr=fnull) - except OSError: - res = None - - if res is None: - return unittest.skip('{} executable not found'.format(executable)) - - return lambda func: func - - -def module_exists(module_name): - """Test if a module is importable.""" - - try: - __import__(module_name) - except ImportError: - return False - else: - return True - - -def locale_available(locale_): - old_locale = locale.setlocale(locale.LC_TIME) - - try: - locale.setlocale(locale.LC_TIME, str(locale_)) - except locale.Error: - return False - else: - locale.setlocale(locale.LC_TIME, old_locale) - return True - - -def can_symlink(): - res = True - try: - with temporary_folder() as f: - os.symlink( - f, - os.path.join(f, 'symlink') - ) - except OSError: - res = False - return res - - -def get_settings(**kwargs): - """Provide tweaked setting dictionaries for testing - - Set keyword arguments to override specific settings. - """ - settings = DEFAULT_CONFIG.copy() - for key, value in kwargs.items(): - settings[key] = value - return settings - - -def get_context(settings=None, **kwargs): - context = settings.copy() if settings else {} - context['generated_content'] = {} - context['static_links'] = set() - context['static_content'] = {} - context.update(kwargs) - return context - - -class LogCountHandler(BufferingHandler): - """Capturing and counting logged messages.""" - - def __init__(self, capacity=1000): - super().__init__(capacity) - - def count_logs(self, msg=None, level=None): - return len([ - rec - for rec - in self.buffer - if (msg is None or re.match(msg, rec.getMessage())) and - (level is None or rec.levelno == level) - ]) - - def count_formatted_logs(self, msg=None, level=None): - return len([ - rec - for rec - in self.buffer - if (msg is None or re.search(msg, self.format(rec))) and - (level is None or rec.levelno == level) - ]) - - -class LoggedTestCase(unittest.TestCase): - """A test case that captures log messages.""" - - def setUp(self): - super().setUp() - self._logcount_handler = LogCountHandler() - logging.getLogger().addHandler(self._logcount_handler) - - def tearDown(self): - logging.getLogger().removeHandler(self._logcount_handler) - super().tearDown() - - def assertLogCountEqual(self, count=None, msg=None, **kwargs): - actual = self._logcount_handler.count_logs(msg=msg, **kwargs) - self.assertEqual( - actual, count, - msg='expected {} occurrences of {!r}, but found {}'.format( - count, msg, actual)) diff --git a/pelican/tests/test_cache.py b/pelican/tests/test_cache.py deleted file mode 100644 index 564f1d31..00000000 --- a/pelican/tests/test_cache.py +++ /dev/null @@ -1,279 +0,0 @@ -import os -from shutil import rmtree -from tempfile import mkdtemp -from unittest.mock import MagicMock - -from pelican.generators import ArticlesGenerator, PagesGenerator -from pelican.tests.support import get_context, get_settings, unittest - - -CUR_DIR = os.path.dirname(__file__) -CONTENT_DIR = os.path.join(CUR_DIR, 'content') - - -class TestCache(unittest.TestCase): - - def setUp(self): - self.temp_cache = mkdtemp(prefix='pelican_cache.') - - def tearDown(self): - rmtree(self.temp_cache) - - def _get_cache_enabled_settings(self): - settings = get_settings() - settings['CACHE_CONTENT'] = True - settings['LOAD_CONTENT_CACHE'] = True - settings['CACHE_PATH'] = self.temp_cache - return settings - - def test_generator_caching(self): - """Test that cached and uncached content is same in generator level""" - settings = self._get_cache_enabled_settings() - settings['CONTENT_CACHING_LAYER'] = 'generator' - settings['PAGE_PATHS'] = ['TestPages'] - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['READERS'] = {'asc': None} - context = get_context(settings) - - def sorted_titles(items): - return sorted(item.title for item in items) - - # Articles - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - uncached_articles = sorted_titles(generator.articles) - uncached_drafts = sorted_titles(generator.drafts) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - cached_articles = sorted_titles(generator.articles) - cached_drafts = sorted_titles(generator.drafts) - - self.assertEqual(uncached_articles, cached_articles) - self.assertEqual(uncached_drafts, cached_drafts) - - # Pages - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - uncached_pages = sorted_titles(generator.pages) - uncached_hidden_pages = sorted_titles(generator.hidden_pages) - uncached_draft_pages = sorted_titles(generator.draft_pages) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - cached_pages = sorted_titles(generator.pages) - cached_hidden_pages = sorted_titles(generator.hidden_pages) - cached_draft_pages = sorted_titles(generator.draft_pages) - - self.assertEqual(uncached_pages, cached_pages) - self.assertEqual(uncached_hidden_pages, cached_hidden_pages) - self.assertEqual(uncached_draft_pages, cached_draft_pages) - - def test_reader_caching(self): - """Test that cached and uncached content is same in reader level""" - settings = self._get_cache_enabled_settings() - settings['CONTENT_CACHING_LAYER'] = 'reader' - settings['PAGE_PATHS'] = ['TestPages'] - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['READERS'] = {'asc': None} - context = get_context(settings) - - def sorted_titles(items): - return sorted(item.title for item in items) - - # Articles - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - uncached_articles = sorted_titles(generator.articles) - uncached_drafts = sorted_titles(generator.drafts) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - cached_articles = sorted_titles(generator.articles) - cached_drafts = sorted_titles(generator.drafts) - - self.assertEqual(uncached_articles, cached_articles) - self.assertEqual(uncached_drafts, cached_drafts) - - # Pages - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - uncached_pages = sorted_titles(generator.pages) - uncached_hidden_pages = sorted_titles(generator.hidden_pages) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - cached_pages = sorted_titles(generator.pages) - cached_hidden_pages = sorted_titles(generator.hidden_pages) - - self.assertEqual(uncached_pages, cached_pages) - self.assertEqual(uncached_hidden_pages, cached_hidden_pages) - - def test_article_object_caching(self): - """Test Article objects caching at the generator level""" - settings = self._get_cache_enabled_settings() - settings['CONTENT_CACHING_LAYER'] = 'generator' - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['READERS'] = {'asc': None} - context = get_context(settings) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - self.assertTrue(hasattr(generator, '_cache')) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.readers.read_file = MagicMock() - generator.generate_context() - """ - 6 files don't get cached because they were not valid - - article_with_attributes_containing_double_quotes.html - - article_with_comments.html - - article_with_null_attributes.html - - 2012-11-30_md_w_filename_meta#foo-bar.md - - empty.md - - empty_with_bom.md - """ - self.assertEqual(generator.readers.read_file.call_count, 6) - - def test_article_reader_content_caching(self): - """Test raw article content caching at the reader level""" - settings = self._get_cache_enabled_settings() - settings['READERS'] = {'asc': None} - context = get_context(settings) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - self.assertTrue(hasattr(generator.readers, '_cache')) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - readers = generator.readers.readers - for reader in readers.values(): - reader.read = MagicMock() - generator.generate_context() - for reader in readers.values(): - self.assertEqual(reader.read.call_count, 0) - - def test_article_ignore_cache(self): - """Test that all the articles are read again when not loading cache - - used in --ignore-cache or autoreload mode""" - settings = self._get_cache_enabled_settings() - settings['READERS'] = {'asc': None} - context = get_context(settings) - - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.readers.read_file = MagicMock() - generator.generate_context() - self.assertTrue(hasattr(generator, '_cache_open')) - orig_call_count = generator.readers.read_file.call_count - - settings['LOAD_CONTENT_CACHE'] = False - generator = ArticlesGenerator( - context=context.copy(), settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.readers.read_file = MagicMock() - generator.generate_context() - self.assertEqual( - generator.readers.read_file.call_count, - orig_call_count) - - def test_page_object_caching(self): - """Test Page objects caching at the generator level""" - settings = self._get_cache_enabled_settings() - settings['CONTENT_CACHING_LAYER'] = 'generator' - settings['PAGE_PATHS'] = ['TestPages'] - settings['READERS'] = {'asc': None} - context = get_context(settings) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - self.assertTrue(hasattr(generator, '_cache')) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.readers.read_file = MagicMock() - generator.generate_context() - """ - 1 File doesn't get cached because it was not valid - - bad_page.rst - """ - self.assertEqual(generator.readers.read_file.call_count, 1) - - def test_page_reader_content_caching(self): - """Test raw page content caching at the reader level""" - settings = self._get_cache_enabled_settings() - settings['PAGE_PATHS'] = ['TestPages'] - settings['READERS'] = {'asc': None} - context = get_context(settings) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - self.assertTrue(hasattr(generator.readers, '_cache')) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - readers = generator.readers.readers - for reader in readers.values(): - reader.read = MagicMock() - generator.generate_context() - for reader in readers.values(): - self.assertEqual(reader.read.call_count, 0) - - def test_page_ignore_cache(self): - """Test that all the pages are read again when not loading cache - - used in --ignore_cache or autoreload mode""" - settings = self._get_cache_enabled_settings() - settings['PAGE_PATHS'] = ['TestPages'] - settings['READERS'] = {'asc': None} - context = get_context(settings) - - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.readers.read_file = MagicMock() - generator.generate_context() - self.assertTrue(hasattr(generator, '_cache_open')) - orig_call_count = generator.readers.read_file.call_count - - settings['LOAD_CONTENT_CACHE'] = False - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.readers.read_file = MagicMock() - generator.generate_context() - self.assertEqual( - generator.readers.read_file.call_count, - orig_call_count) diff --git a/pelican/tests/test_contents.py b/pelican/tests/test_contents.py deleted file mode 100644 index 32012d4f..00000000 --- a/pelican/tests/test_contents.py +++ /dev/null @@ -1,1038 +0,0 @@ -import datetime -import locale -import logging -import os.path -from posixpath import join as posix_join -from sys import platform - -from jinja2.utils import generate_lorem_ipsum - -from pelican.contents import Article, Author, Category, Page, Static -from pelican.plugins.signals import content_object_init -from pelican.settings import DEFAULT_CONFIG -from pelican.tests.support import (LoggedTestCase, get_context, get_settings, - unittest) -from pelican.utils import (path_to_url, posixize_path, truncate_html_words) - - -# generate one paragraph, enclosed with

    -TEST_CONTENT = str(generate_lorem_ipsum(n=1)) -TEST_SUMMARY = generate_lorem_ipsum(n=1, html=False) - - -class TestBase(LoggedTestCase): - - def setUp(self): - super().setUp() - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.page_kwargs = { - 'content': TEST_CONTENT, - 'context': { - 'localsiteurl': '', - 'generated_content': {}, - 'static_content': {}, - 'static_links': set() - }, - 'metadata': { - 'summary': TEST_SUMMARY, - 'title': 'foo bar', - 'author': Author('Blogger', DEFAULT_CONFIG), - }, - 'source_path': '/path/to/file/foo.ext' - } - self._disable_limit_filter() - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - self._enable_limit_filter() - - def _disable_limit_filter(self): - from pelican.contents import logger - logger.disable_filter() - - def _enable_limit_filter(self): - from pelican.contents import logger - logger.enable_filter() - - def _copy_page_kwargs(self): - # make a deep copy of page_kwargs - page_kwargs = {key: self.page_kwargs[key] for key in self.page_kwargs} - for key in page_kwargs: - if not isinstance(page_kwargs[key], dict): - break - page_kwargs[key] = { - subkey: page_kwargs[key][subkey] for subkey in page_kwargs[key] - } - - return page_kwargs - - -class TestPage(TestBase): - def test_use_args(self): - # Creating a page with arguments passed to the constructor should use - # them to initialise object's attributes. - metadata = {'foo': 'bar', 'foobar': 'baz', 'title': 'foobar', } - page = Page(TEST_CONTENT, metadata=metadata, - context={'localsiteurl': ''}) - for key, value in metadata.items(): - self.assertTrue(hasattr(page, key)) - self.assertEqual(value, getattr(page, key)) - self.assertEqual(page.content, TEST_CONTENT) - - def test_mandatory_properties(self): - # If the title is not set, must throw an exception. - page = Page('content') - self.assertFalse(page._has_valid_mandatory_properties()) - self.assertLogCountEqual( - count=1, - msg="Skipping .*: could not find information about 'title'", - level=logging.ERROR) - page = Page('content', metadata={'title': 'foobar'}) - self.assertTrue(page._has_valid_mandatory_properties()) - - def test_summary_from_metadata(self): - # If a :summary: metadata is given, it should be used - page = Page(**self.page_kwargs) - self.assertEqual(page.summary, TEST_SUMMARY) - - def test_summary_max_length(self): - # If a :SUMMARY_MAX_LENGTH: is set, and there is no other summary, - # generated summary should not exceed the given length. - page_kwargs = self._copy_page_kwargs() - settings = get_settings() - page_kwargs['settings'] = settings - del page_kwargs['metadata']['summary'] - settings['SUMMARY_MAX_LENGTH'] = None - page = Page(**page_kwargs) - self.assertEqual(page.summary, TEST_CONTENT) - settings['SUMMARY_MAX_LENGTH'] = 10 - page = Page(**page_kwargs) - self.assertEqual(page.summary, truncate_html_words(TEST_CONTENT, 10)) - settings['SUMMARY_MAX_LENGTH'] = 0 - page = Page(**page_kwargs) - self.assertEqual(page.summary, '') - - def test_summary_end_suffix(self): - # If a :SUMMARY_END_SUFFIX: is set, and there is no other summary, - # generated summary should contain the specified marker at the end. - page_kwargs = self._copy_page_kwargs() - settings = get_settings() - page_kwargs['settings'] = settings - del page_kwargs['metadata']['summary'] - settings['SUMMARY_END_SUFFIX'] = 'test_marker' - settings['SUMMARY_MAX_LENGTH'] = 10 - page = Page(**page_kwargs) - self.assertEqual(page.summary, truncate_html_words(TEST_CONTENT, 10, - 'test_marker')) - self.assertIn('test_marker', page.summary) - - def test_summary_get_summary_warning(self): - """calling ._get_summary() should issue a warning""" - page_kwargs = self._copy_page_kwargs() - page = Page(**page_kwargs) - self.assertEqual(page.summary, TEST_SUMMARY) - self.assertEqual(page._get_summary(), TEST_SUMMARY) - self.assertLogCountEqual( - count=1, - msg=r"_get_summary\(\) has been deprecated since 3\.6\.4\. " - "Use the summary decorator instead", - level=logging.WARNING) - - def test_slug(self): - page_kwargs = self._copy_page_kwargs() - settings = get_settings() - page_kwargs['settings'] = settings - settings['SLUGIFY_SOURCE'] = "title" - page = Page(**page_kwargs) - self.assertEqual(page.slug, 'foo-bar') - settings['SLUGIFY_SOURCE'] = "basename" - page = Page(**page_kwargs) - self.assertEqual(page.slug, 'foo') - - # test slug from title with unicode and case - - inputs = ( - # (title, expected, preserve_case, use_unicode) - ('指導書', 'zhi-dao-shu', False, False), - ('指導書', 'Zhi-Dao-Shu', True, False), - ('指導書', '指導書', False, True), - ('指導書', '指導書', True, True), - ('Çığ', 'cig', False, False), - ('Çığ', 'Cig', True, False), - ('Çığ', 'çığ', False, True), - ('Çığ', 'Çığ', True, True), - ) - - settings = get_settings() - page_kwargs = self._copy_page_kwargs() - page_kwargs['settings'] = settings - - for title, expected, preserve_case, use_unicode in inputs: - settings['SLUGIFY_PRESERVE_CASE'] = preserve_case - settings['SLUGIFY_USE_UNICODE'] = use_unicode - page_kwargs['metadata']['title'] = title - page = Page(**page_kwargs) - self.assertEqual(page.slug, expected, - (title, preserve_case, use_unicode)) - - def test_defaultlang(self): - # If no lang is given, default to the default one. - page = Page(**self.page_kwargs) - self.assertEqual(page.lang, DEFAULT_CONFIG['DEFAULT_LANG']) - - # it is possible to specify the lang in the metadata infos - self.page_kwargs['metadata'].update({'lang': 'fr', }) - page = Page(**self.page_kwargs) - self.assertEqual(page.lang, 'fr') - - def test_save_as(self): - # If a lang is not the default lang, save_as should be set - # accordingly. - - # if a title is defined, save_as should be set - page = Page(**self.page_kwargs) - self.assertEqual(page.save_as, "pages/foo-bar.html") - - # if a language is defined, save_as should include it accordingly - self.page_kwargs['metadata'].update({'lang': 'fr', }) - page = Page(**self.page_kwargs) - self.assertEqual(page.save_as, "pages/foo-bar-fr.html") - - def test_relative_source_path(self): - # 'relative_source_path' should be the relative path - # from 'PATH' to 'source_path' - page_kwargs = self._copy_page_kwargs() - - # If 'source_path' is None, 'relative_source_path' should - # also return None - page_kwargs['source_path'] = None - page = Page(**page_kwargs) - self.assertIsNone(page.relative_source_path) - - page_kwargs = self._copy_page_kwargs() - settings = get_settings() - full_path = page_kwargs['source_path'] - - settings['PATH'] = os.path.dirname(full_path) - page_kwargs['settings'] = settings - page = Page(**page_kwargs) - - # if 'source_path' is set, 'relative_source_path' should - # return the relative path from 'PATH' to 'source_path' - self.assertEqual( - page.relative_source_path, - os.path.relpath( - full_path, - os.path.dirname(full_path) - )) - - def test_metadata_url_format(self): - # Arbitrary metadata should be passed through url_format() - page = Page(**self.page_kwargs) - self.assertIn('summary', page.url_format.keys()) - page.metadata['directory'] = 'test-dir' - page.settings = get_settings(PAGE_SAVE_AS='{directory}/{slug}') - self.assertEqual(page.save_as, 'test-dir/foo-bar') - - def test_datetime(self): - # If DATETIME is set to a tuple, it should be used to override LOCALE - dt = datetime.datetime(2015, 9, 13) - - page_kwargs = self._copy_page_kwargs() - - # set its date to dt - page_kwargs['metadata']['date'] = dt - page = Page(**page_kwargs) - - # page.locale_date is a unicode string in both python2 and python3 - dt_date = dt.strftime(DEFAULT_CONFIG['DEFAULT_DATE_FORMAT']) - - self.assertEqual(page.locale_date, dt_date) - page_kwargs['settings'] = get_settings() - - # I doubt this can work on all platforms ... - if platform == "win32": - locale = 'jpn' - else: - locale = 'ja_JP.utf8' - page_kwargs['settings']['DATE_FORMATS'] = {'jp': (locale, - '%Y-%m-%d(%a)')} - page_kwargs['metadata']['lang'] = 'jp' - - import locale as locale_module - try: - page = Page(**page_kwargs) - self.assertEqual(page.locale_date, '2015-09-13(\u65e5)') - except locale_module.Error: - # The constructor of ``Page`` will try to set the locale to - # ``ja_JP.utf8``. But this attempt will failed when there is no - # such locale in the system. You can see which locales there are - # in your system with ``locale -a`` command. - # - # Until we find some other method to test this functionality, we - # will simply skip this test. - unittest.skip("There is no locale %s in this system." % locale) - - def test_template(self): - # Pages default to page, metadata overwrites - default_page = Page(**self.page_kwargs) - self.assertEqual('page', default_page.template) - page_kwargs = self._copy_page_kwargs() - page_kwargs['metadata']['template'] = 'custom' - custom_page = Page(**page_kwargs) - self.assertEqual('custom', custom_page.template) - - def test_signal(self): - def receiver_test_function(sender): - receiver_test_function.has_been_called = True - pass - receiver_test_function.has_been_called = False - - content_object_init.connect(receiver_test_function) - self.assertIn( - receiver_test_function, - content_object_init.receivers_for(Page)) - - self.assertFalse(receiver_test_function.has_been_called) - Page(**self.page_kwargs) - self.assertTrue(receiver_test_function.has_been_called) - - def test_get_content(self): - # Test that the content is updated with the relative links to - # filenames, tags and categories. - settings = get_settings() - args = self.page_kwargs.copy() - args['settings'] = settings - - # Tag - args['content'] = ('A simple test, with a ' - 'link') - page = Page(**args) - content = page.get_content('http://notmyidea.org') - self.assertEqual( - content, - ('A simple test, with a ' - 'link')) - - # Category - args['content'] = ('A simple test, with a ' - 'link') - page = Page(**args) - content = page.get_content('http://notmyidea.org') - self.assertEqual( - content, - ('A simple test, with a ' - 'link')) - - def test_intrasite_link(self): - cls_name = '_DummyArticle' - article = type(cls_name, (object,), {'url': 'article.html'}) - - args = self.page_kwargs.copy() - args['settings'] = get_settings() - args['source_path'] = 'content' - args['context']['generated_content'] = {'article.rst': article} - - # Classic intrasite link via filename - args['content'] = ( - 'A simple test, with a ' - 'link' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a ' - 'link' - ) - - # fragment - args['content'] = ( - 'A simple test, with a ' - 'link' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a ' - 'link' - ) - - # query - args['content'] = ( - 'A simple test, with a ' - 'link' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a ' - 'link' - ) - - # combination - args['content'] = ( - 'A simple test, with a ' - 'link' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a ' - 'link' - ) - - # also test for summary in metadata - parsed = ( - 'A simple summary test, with a ' - 'link' - ) - linked = ( - 'A simple summary test, with a ' - 'link' - ) - args['settings']['FORMATTED_FIELDS'] = ['summary', 'custom'] - args['metadata']['summary'] = parsed - args['metadata']['custom'] = parsed - args['context']['localsiteurl'] = 'http://notmyidea.org' - p = Page(**args) - # This is called implicitly from all generators and Pelican.run() once - # all files are processed. Here we process just one page so it needs - # to be called explicitly. - p.refresh_metadata_intersite_links() - self.assertEqual(p.summary, linked) - self.assertEqual(p.custom, linked) - - def test_intrasite_link_more(self): - cls_name = '_DummyAsset' - - args = self.page_kwargs.copy() - args['settings'] = get_settings() - args['source_path'] = 'content' - args['context']['static_content'] = { - 'images/poster.jpg': - type(cls_name, (object,), {'url': 'images/poster.jpg'}), - 'assets/video.mp4': - type(cls_name, (object,), {'url': 'assets/video.mp4'}), - 'images/graph.svg': - type(cls_name, (object,), {'url': 'images/graph.svg'}), - } - args['context']['generated_content'] = { - 'reference.rst': - type(cls_name, (object,), {'url': 'reference.html'}), - } - - # video.poster - args['content'] = ( - 'There is a video with poster ' - '' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'There is a video with poster ' - '' - ) - - # object.data - args['content'] = ( - 'There is a svg object ' - '' - '' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'There is a svg object ' - '' - '' - ) - - # blockquote.cite - args['content'] = ( - 'There is a blockquote with cite attribute ' - '

    blah blah
    ' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'There is a blockquote with cite attribute ' - '
    ' - 'blah blah' - '
    ' - ) - - def test_intrasite_link_absolute(self): - """Test that absolute URLs are merged properly.""" - - args = self.page_kwargs.copy() - args['settings'] = get_settings( - STATIC_URL='http://static.cool.site/{path}', - ARTICLE_URL='http://blog.cool.site/{slug}.html') - args['source_path'] = 'content' - args['context']['static_content'] = { - 'images/poster.jpg': - Static('', settings=args['settings'], - source_path='images/poster.jpg'), - } - args['context']['generated_content'] = { - 'article.rst': - Article('', settings=args['settings'], metadata={ - 'slug': 'article', 'title': 'Article'}) - } - - # Article link will go to blog - args['content'] = ( - 'Article' - ) - content = Page(**args).get_content('http://cool.site') - self.assertEqual( - content, - 'Article' - ) - - # Page link will go to the main site - args['content'] = ( - 'Index' - ) - content = Page(**args).get_content('http://cool.site') - self.assertEqual( - content, - 'Index' - ) - - # Image link will go to static - args['content'] = ( - '' - ) - content = Page(**args).get_content('http://cool.site') - self.assertEqual( - content, - '' - ) - - def test_intrasite_link_escape(self): - article = type( - '_DummyArticle', (object,), {'url': 'article-spaces.html'}) - asset = type( - '_DummyAsset', (object,), {'url': 'name@example.com'}) - - args = self.page_kwargs.copy() - args['settings'] = get_settings() - args['source_path'] = 'content' - args['context']['generated_content'] = {'article spaces.rst': article} - args['context']['static_content'] = {'name@example.com': asset} - - expected_output = ( - 'A simple test with a ' - 'link ' - 'file' - ) - - # not escaped - args['content'] = ( - 'A simple test with a ' - 'link ' - 'file' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual(content, expected_output) - - # html escaped - args['content'] = ( - 'A simple test with a ' - 'link ' - 'file' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual(content, expected_output) - - # url escaped - args['content'] = ( - 'A simple test with a ' - 'link ' - 'file' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual(content, expected_output) - - # html and url escaped - args['content'] = ( - 'A simple test with a ' - 'link ' - 'file' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual(content, expected_output) - - def test_intrasite_link_markdown_spaces(self): - cls_name = '_DummyArticle' - article = type(cls_name, (object,), {'url': 'article-spaces.html'}) - - args = self.page_kwargs.copy() - args['settings'] = get_settings() - args['source_path'] = 'content' - args['context']['generated_content'] = {'article spaces.rst': article} - - # An intrasite link via filename with %20 as a space - args['content'] = ( - 'A simple test, with a ' - 'link' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a ' - 'link' - ) - - def test_intrasite_link_source_and_generated(self): - """Test linking both to the source and the generated article - """ - cls_name = '_DummyAsset' - - args = self.page_kwargs.copy() - args['settings'] = get_settings() - args['source_path'] = 'content' - args['context']['generated_content'] = { - 'article.rst': type(cls_name, (object,), {'url': 'article.html'})} - args['context']['static_content'] = { - 'article.rst': type(cls_name, (object,), {'url': 'article.rst'})} - - args['content'] = ( - 'A simple test, with a link to an' - 'article and its' - 'source' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a link to an' - 'article and its' - 'source' - ) - - def test_intrasite_link_to_static_content_with_filename(self): - """Test linking to a static resource with deprecated {filename} - """ - cls_name = '_DummyAsset' - - args = self.page_kwargs.copy() - args['settings'] = get_settings() - args['source_path'] = 'content' - args['context']['static_content'] = { - 'poster.jpg': - type(cls_name, (object,), {'url': 'images/poster.jpg'})} - - args['content'] = ( - 'A simple test, with a link to a' - 'poster' - ) - content = Page(**args).get_content('http://notmyidea.org') - self.assertEqual( - content, - 'A simple test, with a link to a' - 'poster' - ) - - def test_multiple_authors(self): - """Test article with multiple authors.""" - args = self.page_kwargs.copy() - content = Page(**args) - assert content.authors == [content.author] - args['metadata'].pop('author') - args['metadata']['authors'] = [Author('First Author', DEFAULT_CONFIG), - Author('Second Author', DEFAULT_CONFIG)] - content = Page(**args) - assert content.authors - assert content.author == content.authors[0] - - -class TestArticle(TestBase): - def test_template(self): - # Articles default to article, metadata overwrites - default_article = Article(**self.page_kwargs) - self.assertEqual('article', default_article.template) - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['template'] = 'custom' - custom_article = Article(**article_kwargs) - self.assertEqual('custom', custom_article.template) - - def test_slugify_category_author(self): - settings = get_settings() - settings['SLUG_REGEX_SUBSTITUTIONS'] = [ - (r'C#', 'csharp'), - (r'[^\w\s-]', ''), - (r'(?u)\A\s*', ''), - (r'(?u)\s*\Z', ''), - (r'[-\s]+', '-'), - ] - settings['ARTICLE_URL'] = '{author}/{category}/{slug}/' - settings['ARTICLE_SAVE_AS'] = '{author}/{category}/{slug}/index.html' - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['author'] = Author("O'Brien", settings) - article_kwargs['metadata']['category'] = Category( - 'C# & stuff', settings) - article_kwargs['metadata']['title'] = 'fnord' - article_kwargs['settings'] = settings - article = Article(**article_kwargs) - self.assertEqual(article.url, 'obrien/csharp-stuff/fnord/') - self.assertEqual( - article.save_as, 'obrien/csharp-stuff/fnord/index.html') - - def test_slugify_with_author_substitutions(self): - settings = get_settings() - settings['AUTHOR_REGEX_SUBSTITUTIONS'] = [ - ('Alexander Todorov', 'atodorov'), - ('Krasimir Tsonev', 'krasimir'), - (r'[^\w\s-]', ''), - (r'(?u)\A\s*', ''), - (r'(?u)\s*\Z', ''), - (r'[-\s]+', '-'), - ] - settings['ARTICLE_URL'] = 'blog/{author}/{slug}/' - settings['ARTICLE_SAVE_AS'] = 'blog/{author}/{slug}/index.html' - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['author'] = Author('Alexander Todorov', - settings) - article_kwargs['metadata']['title'] = 'fnord' - article_kwargs['settings'] = settings - article = Article(**article_kwargs) - self.assertEqual(article.url, 'blog/atodorov/fnord/') - self.assertEqual(article.save_as, 'blog/atodorov/fnord/index.html') - - def test_slugify_category_with_dots(self): - settings = get_settings() - settings['CATEGORY_REGEX_SUBSTITUTIONS'] = [ - ('Fedora QA', 'fedora.qa'), - ] - settings['ARTICLE_URL'] = '{category}/{slug}/' - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['category'] = Category('Fedora QA', - settings) - article_kwargs['metadata']['title'] = 'This Week in Fedora QA' - article_kwargs['settings'] = settings - article = Article(**article_kwargs) - self.assertEqual(article.url, 'fedora.qa/this-week-in-fedora-qa/') - - def test_valid_save_as_detects_breakout(self): - settings = get_settings() - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['slug'] = '../foo' - article_kwargs['settings'] = settings - article = Article(**article_kwargs) - self.assertFalse(article._has_valid_save_as()) - - def test_valid_save_as_detects_breakout_to_root(self): - settings = get_settings() - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['slug'] = '/foo' - article_kwargs['settings'] = settings - article = Article(**article_kwargs) - self.assertFalse(article._has_valid_save_as()) - - def test_valid_save_as_passes_valid(self): - settings = get_settings() - article_kwargs = self._copy_page_kwargs() - article_kwargs['metadata']['slug'] = 'foo' - article_kwargs['settings'] = settings - article = Article(**article_kwargs) - self.assertTrue(article._has_valid_save_as()) - - -class TestStatic(LoggedTestCase): - - def setUp(self): - super().setUp() - self.settings = get_settings( - STATIC_SAVE_AS='{path}', - STATIC_URL='{path}', - PAGE_SAVE_AS=os.path.join('outpages', '{slug}.html'), - PAGE_URL='outpages/{slug}.html') - self.context = get_context(self.settings) - - self.static = Static(content=None, metadata={}, settings=self.settings, - source_path=posix_join('dir', 'foo.jpg'), - context=self.context) - - self.context['static_content'][self.static.source_path] = self.static - - def tearDown(self): - pass - - def test_attach_to_same_dir(self): - """attach_to() overrides a static file's save_as and url. - """ - page = Page( - content="fake page", - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'fakepage.md')) - self.static.attach_to(page) - - expected_save_as = os.path.join('outpages', 'foo.jpg') - self.assertEqual(self.static.save_as, expected_save_as) - self.assertEqual(self.static.url, path_to_url(expected_save_as)) - - def test_attach_to_parent_dir(self): - """attach_to() preserves dirs inside the linking document dir. - """ - page = Page(content="fake page", metadata={'title': 'fakepage'}, - settings=self.settings, source_path='fakepage.md') - self.static.attach_to(page) - - expected_save_as = os.path.join('outpages', 'dir', 'foo.jpg') - self.assertEqual(self.static.save_as, expected_save_as) - self.assertEqual(self.static.url, path_to_url(expected_save_as)) - - def test_attach_to_other_dir(self): - """attach_to() ignores dirs outside the linking document dir. - """ - page = Page(content="fake page", - metadata={'title': 'fakepage'}, settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md')) - self.static.attach_to(page) - - expected_save_as = os.path.join('outpages', 'foo.jpg') - self.assertEqual(self.static.save_as, expected_save_as) - self.assertEqual(self.static.url, path_to_url(expected_save_as)) - - def test_attach_to_ignores_subsequent_calls(self): - """attach_to() does nothing when called a second time. - """ - page = Page(content="fake page", - metadata={'title': 'fakepage'}, settings=self.settings, - source_path=os.path.join('dir', 'fakepage.md')) - - self.static.attach_to(page) - - otherdir_settings = self.settings.copy() - otherdir_settings.update(dict( - PAGE_SAVE_AS=os.path.join('otherpages', '{slug}.html'), - PAGE_URL='otherpages/{slug}.html')) - otherdir_page = Page( - content="other page", - metadata={'title': 'otherpage'}, - settings=otherdir_settings, - source_path=os.path.join('dir', 'otherpage.md')) - - self.static.attach_to(otherdir_page) - - otherdir_save_as = os.path.join('otherpages', 'foo.jpg') - self.assertNotEqual(self.static.save_as, otherdir_save_as) - self.assertNotEqual(self.static.url, path_to_url(otherdir_save_as)) - - def test_attach_to_does_nothing_after_save_as_referenced(self): - """attach_to() does nothing if the save_as was already referenced. - (For example, by a {static} link an a document processed earlier.) - """ - original_save_as = self.static.save_as - - page = Page( - content="fake page", - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'fakepage.md')) - self.static.attach_to(page) - - self.assertEqual(self.static.save_as, original_save_as) - self.assertEqual(self.static.url, path_to_url(original_save_as)) - - def test_attach_to_does_nothing_after_url_referenced(self): - """attach_to() does nothing if the url was already referenced. - (For example, by a {static} link an a document processed earlier.) - """ - original_url = self.static.url - - page = Page( - content="fake page", - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'fakepage.md')) - self.static.attach_to(page) - - self.assertEqual(self.static.save_as, self.static.source_path) - self.assertEqual(self.static.url, original_url) - - def test_attach_to_does_not_override_an_override(self): - """attach_to() does not override paths that were overridden elsewhere. - (For example, by the user with EXTRA_PATH_METADATA) - """ - customstatic = Static( - content=None, - metadata=dict(save_as='customfoo.jpg', url='customfoo.jpg'), - settings=self.settings, - source_path=os.path.join('dir', 'foo.jpg'), - context=self.settings.copy()) - - page = Page( - content="fake page", - metadata={'title': 'fakepage'}, settings=self.settings, - source_path=os.path.join('dir', 'fakepage.md')) - - customstatic.attach_to(page) - - self.assertEqual(customstatic.save_as, 'customfoo.jpg') - self.assertEqual(customstatic.url, 'customfoo.jpg') - - def test_attach_link_syntax(self): - """{attach} link syntax triggers output path override & url replacement. - """ - html = 'link' - page = Page( - content=html, - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertNotEqual( - content, html, - "{attach} link syntax did not trigger URL replacement.") - - expected_save_as = os.path.join('outpages', 'foo.jpg') - self.assertEqual(self.static.save_as, expected_save_as) - self.assertEqual(self.static.url, path_to_url(expected_save_as)) - - def test_tag_link_syntax(self): - "{tag} link syntax triggers url replacement." - - html = 'link' - page = Page( - content=html, - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertNotEqual(content, html) - - def test_category_link_syntax(self): - "{category} link syntax triggers url replacement." - - html = 'link' - page = Page( - content=html, - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertNotEqual(content, html) - - def test_author_link_syntax(self): - "{author} link syntax triggers url replacement." - - html = 'link' - page = Page( - content=html, - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertNotEqual(content, html) - - def test_index_link_syntax(self): - "{index} link syntax triggers url replacement." - - html = 'link' - page = Page( - content=html, - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertNotEqual(content, html) - - expected_html = ('link') - self.assertEqual(content, expected_html) - - def test_unknown_link_syntax(self): - "{unknown} link syntax should trigger warning." - - html = 'link' - page = Page(content=html, - metadata={'title': 'fakepage'}, settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertEqual(content, html) - self.assertLogCountEqual( - count=1, - msg="Replacement Indicator 'unknown' not recognized, " - "skipping replacement", - level=logging.WARNING) - - def test_link_to_unknown_file(self): - "{filename} link to unknown file should trigger warning." - - html = 'link' - page = Page(content=html, - metadata={'title': 'fakepage'}, settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertEqual(content, html) - self.assertLogCountEqual( - count=1, - msg="Unable to find 'foo', skipping url replacement.", - level=logging.WARNING) - - def test_index_link_syntax_with_spaces(self): - """{index} link syntax triggers url replacement - with spaces around the equal sign.""" - - html = 'link' - page = Page( - content=html, - metadata={'title': 'fakepage'}, - settings=self.settings, - source_path=os.path.join('dir', 'otherdir', 'fakepage.md'), - context=self.context) - content = page.get_content('') - - self.assertNotEqual(content, html) - - expected_html = ('link') - self.assertEqual(content, expected_html) - - def test_not_save_as_draft(self): - """Static.save_as is not affected by draft status.""" - - static = Static( - content=None, - metadata=dict(status='draft',), - settings=self.settings, - source_path=os.path.join('dir', 'foo.jpg'), - context=self.settings.copy()) - - expected_save_as = posixize_path(os.path.join('dir', 'foo.jpg')) - self.assertEqual(static.status, 'draft') - self.assertEqual(static.save_as, expected_save_as) - self.assertEqual(static.url, path_to_url(expected_save_as)) diff --git a/pelican/tests/test_generators.py b/pelican/tests/test_generators.py deleted file mode 100644 index 0a4a8fdc..00000000 --- a/pelican/tests/test_generators.py +++ /dev/null @@ -1,1244 +0,0 @@ -import locale -import os -import sys -from shutil import copy, rmtree -from tempfile import mkdtemp -from unittest.mock import MagicMock - -from pelican.generators import (ArticlesGenerator, Generator, PagesGenerator, - PelicanTemplateNotFound, StaticGenerator, - TemplatePagesGenerator) -from pelican.tests.support import (can_symlink, get_context, get_settings, - unittest) -from pelican.writers import Writer - - -CUR_DIR = os.path.dirname(__file__) -CONTENT_DIR = os.path.join(CUR_DIR, 'content') - - -class TestGenerator(unittest.TestCase): - def setUp(self): - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.settings = get_settings() - self.settings['READERS'] = {'asc': None} - self.generator = Generator(self.settings.copy(), self.settings, - CUR_DIR, self.settings['THEME'], None) - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_include_path(self): - self.settings['IGNORE_FILES'] = {'ignored1.rst', 'ignored2.rst'} - - filename = os.path.join(CUR_DIR, 'content', 'article.rst') - include_path = self.generator._include_path - self.assertTrue(include_path(filename)) - self.assertTrue(include_path(filename, extensions=('rst',))) - self.assertFalse(include_path(filename, extensions=('md',))) - - ignored_file = os.path.join(CUR_DIR, 'content', 'ignored1.rst') - self.assertFalse(include_path(ignored_file)) - - def test_get_files_exclude(self): - """Test that Generator.get_files() properly excludes directories. - """ - # We use our own Generator so we can give it our own content path - generator = Generator( - context=self.settings.copy(), - settings=self.settings, - path=os.path.join(CUR_DIR, 'nested_content'), - theme=self.settings['THEME'], output_path=None) - - filepaths = generator.get_files(paths=['maindir']) - found_files = {os.path.basename(f) for f in filepaths} - expected_files = {'maindir.md', 'subdir.md'} - self.assertFalse( - expected_files - found_files, - "get_files() failed to find one or more files") - - # Test string as `paths` argument rather than list - filepaths = generator.get_files(paths='maindir') - found_files = {os.path.basename(f) for f in filepaths} - expected_files = {'maindir.md', 'subdir.md'} - self.assertFalse( - expected_files - found_files, - "get_files() failed to find one or more files") - - filepaths = generator.get_files(paths=[''], exclude=['maindir']) - found_files = {os.path.basename(f) for f in filepaths} - self.assertNotIn( - 'maindir.md', found_files, - "get_files() failed to exclude a top-level directory") - self.assertNotIn( - 'subdir.md', found_files, - "get_files() failed to exclude a subdir of an excluded directory") - - filepaths = generator.get_files( - paths=[''], - exclude=[os.path.join('maindir', 'subdir')]) - found_files = {os.path.basename(f) for f in filepaths} - self.assertNotIn( - 'subdir.md', found_files, - "get_files() failed to exclude a subdirectory") - - filepaths = generator.get_files(paths=[''], exclude=['subdir']) - found_files = {os.path.basename(f) for f in filepaths} - self.assertIn( - 'subdir.md', found_files, - "get_files() excluded a subdirectory by name, ignoring its path") - - def test_custom_jinja_environment(self): - """ - Test that setting the JINJA_ENVIRONMENT - properly gets set from the settings config - """ - settings = get_settings() - comment_start_string = 'abc' - comment_end_string = '/abc' - settings['JINJA_ENVIRONMENT'] = { - 'comment_start_string': comment_start_string, - 'comment_end_string': comment_end_string - } - generator = Generator(settings.copy(), settings, - CUR_DIR, settings['THEME'], None) - self.assertEqual(comment_start_string, - generator.env.comment_start_string) - self.assertEqual(comment_end_string, - generator.env.comment_end_string) - - def test_theme_overrides(self): - """ - Test that the THEME_TEMPLATES_OVERRIDES configuration setting is - utilized correctly in the Generator. - """ - override_dirs = (os.path.join(CUR_DIR, 'theme_overrides', 'level1'), - os.path.join(CUR_DIR, 'theme_overrides', 'level2')) - self.settings['THEME_TEMPLATES_OVERRIDES'] = override_dirs - generator = Generator( - context=self.settings.copy(), - settings=self.settings, - path=CUR_DIR, - theme=self.settings['THEME'], - output_path=None) - - filename = generator.get_template('article').filename - self.assertEqual(override_dirs[0], os.path.dirname(filename)) - self.assertEqual('article.html', os.path.basename(filename)) - - filename = generator.get_template('authors').filename - self.assertEqual(override_dirs[1], os.path.dirname(filename)) - self.assertEqual('authors.html', os.path.basename(filename)) - - filename = generator.get_template('taglist').filename - self.assertEqual(os.path.join(self.settings['THEME'], 'templates'), - os.path.dirname(filename)) - self.assertNotIn(os.path.dirname(filename), override_dirs) - self.assertEqual('taglist.html', os.path.basename(filename)) - - def test_simple_prefix(self): - """ - Test `!simple` theme prefix. - """ - filename = self.generator.get_template('!simple/authors').filename - expected_path = os.path.join( - os.path.dirname(CUR_DIR), 'themes', 'simple', 'templates') - self.assertEqual(expected_path, os.path.dirname(filename)) - self.assertEqual('authors.html', os.path.basename(filename)) - - def test_theme_prefix(self): - """ - Test `!theme` theme prefix. - """ - filename = self.generator.get_template('!theme/authors').filename - expected_path = os.path.join( - os.path.dirname(CUR_DIR), 'themes', 'notmyidea', 'templates') - self.assertEqual(expected_path, os.path.dirname(filename)) - self.assertEqual('authors.html', os.path.basename(filename)) - - def test_bad_prefix(self): - """ - Test unknown/bad theme prefix throws exception. - """ - self.assertRaises(PelicanTemplateNotFound, self.generator.get_template, - '!UNKNOWN/authors') - - -class TestArticlesGenerator(unittest.TestCase): - - @classmethod - def setUpClass(cls): - settings = get_settings() - settings['DEFAULT_CATEGORY'] = 'Default' - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['READERS'] = {'asc': None} - settings['CACHE_CONTENT'] = False - context = get_context(settings) - - cls.generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - cls.generator.generate_context() - cls.articles = cls.distill_articles(cls.generator.articles) - cls.drafts = cls.distill_articles(cls.generator.drafts) - cls.hidden_articles = cls.distill_articles(cls.generator.hidden_articles) - - def setUp(self): - self.temp_cache = mkdtemp(prefix='pelican_cache.') - - def tearDown(self): - rmtree(self.temp_cache) - - @staticmethod - def distill_articles(articles): - return [[article.title, article.status, article.category.name, - article.template] for article in articles] - - def test_generate_feeds(self): - settings = get_settings() - settings['CACHE_PATH'] = self.temp_cache - generator = ArticlesGenerator( - context=settings, settings=settings, - path=None, theme=settings['THEME'], output_path=None) - writer = MagicMock() - generator.generate_feeds(writer) - writer.write_feed.assert_called_with([], settings, - 'feeds/all.atom.xml', - 'feeds/all.atom.xml') - - generator = ArticlesGenerator( - context=settings, settings=get_settings(FEED_ALL_ATOM=None), - path=None, theme=settings['THEME'], output_path=None) - writer = MagicMock() - generator.generate_feeds(writer) - self.assertFalse(writer.write_feed.called) - - def test_generate_feeds_override_url(self): - settings = get_settings() - settings['CACHE_PATH'] = self.temp_cache - settings['FEED_ALL_ATOM_URL'] = 'feeds/atom/all/' - generator = ArticlesGenerator( - context=settings, settings=settings, - path=None, theme=settings['THEME'], output_path=None) - writer = MagicMock() - generator.generate_feeds(writer) - writer.write_feed.assert_called_with([], settings, - 'feeds/all.atom.xml', - 'feeds/atom/all/') - - def test_generate_context(self): - articles_expected = [ - ['Article title', 'published', 'Default', 'article'], - ['Article with markdown and summary metadata multi', 'published', - 'Default', 'article'], - ['Article with markdown and nested summary metadata', 'published', - 'Default', 'article'], - ['Article with markdown and summary metadata single', 'published', - 'Default', 'article'], - ['Article with markdown containing footnotes', 'published', - 'Default', 'article'], - ['Article with template', 'published', 'Default', 'custom'], - ['Metadata tags as list!', 'published', 'Default', 'article'], - ['Rst with filename metadata', 'published', 'yeah', 'article'], - ['One -, two --, three --- dashes!', 'published', 'Default', - 'article'], - ['One -, two --, three --- dashes!', 'published', 'Default', - 'article'], - ['Test Markdown extensions', 'published', 'Default', 'article'], - ['Test markdown File', 'published', 'test', 'article'], - ['Test md File', 'published', 'test', 'article'], - ['Test mdown File', 'published', 'test', 'article'], - ['Test metadata duplicates', 'published', 'test', 'article'], - ['Test mkd File', 'published', 'test', 'article'], - ['This is a super article !', 'published', 'Yeah', 'article'], - ['This is a super article !', 'published', 'Yeah', 'article'], - ['Article with Nonconformant HTML meta tags', 'published', - 'Default', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'yeah', 'article'], - ['This is a super article !', 'published', 'Default', 'article'], - ['Article with an inline SVG', 'published', 'Default', 'article'], - ['This is an article with category !', 'published', 'yeah', - 'article'], - ['This is an article with multiple authors!', 'published', - 'Default', 'article'], - ['This is an article with multiple authors!', 'published', - 'Default', 'article'], - ['This is an article with multiple authors in list format!', - 'published', 'Default', 'article'], - ['This is an article with multiple authors in lastname, ' - 'firstname format!', 'published', 'Default', 'article'], - ['This is an article without category !', 'published', 'Default', - 'article'], - ['This is an article without category !', 'published', - 'TestCategory', 'article'], - ['An Article With Code Block To Test Typogrify Ignore', - 'published', 'Default', 'article'], - ['マックOS X 10.8でパイソンとVirtualenvをインストールと設定', - 'published', '指導書', 'article'], - ] - self.assertEqual(sorted(articles_expected), sorted(self.articles)) - - def test_articles_draft(self): - draft_articles_expected = [ - ['Draft article', 'draft', 'Default', 'article'], - ] - self.assertEqual(sorted(draft_articles_expected), sorted(self.drafts)) - - def test_articles_hidden(self): - hidden_articles_expected = [ - ['Hidden article', 'hidden', 'Default', 'article'], - ] - self.assertEqual(sorted(hidden_articles_expected), sorted(self.hidden_articles)) - - def test_generate_categories(self): - # test for name - # categories are grouped by slug; if two categories have the same slug - # but different names they will be grouped together, the first one in - # terms of process order will define the name for that category - categories = [cat.name for cat, _ in self.generator.categories] - categories_alternatives = ( - sorted(['Default', 'TestCategory', 'Yeah', 'test', '指導書']), - sorted(['Default', 'TestCategory', 'yeah', 'test', '指導書']), - ) - self.assertIn(sorted(categories), categories_alternatives) - # test for slug - categories = [cat.slug for cat, _ in self.generator.categories] - categories_expected = ['default', 'testcategory', 'yeah', 'test', - 'zhi-dao-shu'] - self.assertEqual(sorted(categories), sorted(categories_expected)) - - def test_do_not_use_folder_as_category(self): - settings = get_settings() - settings['DEFAULT_CATEGORY'] = 'Default' - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['USE_FOLDER_AS_CATEGORY'] = False - settings['CACHE_PATH'] = self.temp_cache - settings['READERS'] = {'asc': None} - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - # test for name - # categories are grouped by slug; if two categories have the same slug - # but different names they will be grouped together, the first one in - # terms of process order will define the name for that category - categories = [cat.name for cat, _ in generator.categories] - categories_alternatives = ( - sorted(['Default', 'Yeah', 'test', '指導書']), - sorted(['Default', 'yeah', 'test', '指導書']), - ) - self.assertIn(sorted(categories), categories_alternatives) - # test for slug - categories = [cat.slug for cat, _ in generator.categories] - categories_expected = ['default', 'yeah', 'test', 'zhi-dao-shu'] - self.assertEqual(sorted(categories), sorted(categories_expected)) - - def test_direct_templates_save_as_url_default(self): - - settings = get_settings() - settings['CACHE_PATH'] = self.temp_cache - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=None, theme=settings['THEME'], output_path=None) - write = MagicMock() - generator.generate_direct_templates(write) - write.assert_called_with("archives.html", - generator.get_template("archives"), context, - articles=generator.articles, - dates=generator.dates, blog=True, - template_name='archives', - page_name='archives', url="archives.html") - - def test_direct_templates_save_as_url_modified(self): - - settings = get_settings() - settings['DIRECT_TEMPLATES'] = ['archives'] - settings['ARCHIVES_SAVE_AS'] = 'archives/index.html' - settings['ARCHIVES_URL'] = 'archives/' - settings['CACHE_PATH'] = self.temp_cache - generator = ArticlesGenerator( - context=settings, settings=settings, - path=None, theme=settings['THEME'], output_path=None) - write = MagicMock() - generator.generate_direct_templates(write) - write.assert_called_with("archives/index.html", - generator.get_template("archives"), settings, - articles=generator.articles, - dates=generator.dates, blog=True, - template_name='archives', - page_name='archives/index', - url="archives/") - - def test_direct_templates_save_as_false(self): - - settings = get_settings() - settings['DIRECT_TEMPLATES'] = ['archives'] - settings['ARCHIVES_SAVE_AS'] = False - settings['CACHE_PATH'] = self.temp_cache - generator = ArticlesGenerator( - context=settings, settings=settings, - path=None, theme=settings['THEME'], output_path=None) - write = MagicMock() - generator.generate_direct_templates(write) - self.assertEqual(write.call_count, 0) - - def test_per_article_template(self): - """ - Custom template articles get the field but standard/unset are None - """ - custom_template = ['Article with template', 'published', 'Default', - 'custom'] - standard_template = ['This is a super article !', 'published', 'Yeah', - 'article'] - self.assertIn(custom_template, self.articles) - self.assertIn(standard_template, self.articles) - - def test_period_in_timeperiod_archive(self): - """ - Test that the context of a generated period_archive is passed - 'period' : a tuple of year, month, day according to the time period - """ - old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - settings = get_settings() - - settings['YEAR_ARCHIVE_SAVE_AS'] = 'posts/{date:%Y}/index.html' - settings['YEAR_ARCHIVE_URL'] = 'posts/{date:%Y}/' - settings['CACHE_PATH'] = self.temp_cache - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - write = MagicMock() - generator.generate_period_archives(write) - dates = [d for d in generator.dates if d.date.year == 1970] - articles = [d for d in generator.articles if d.date.year == 1970] - self.assertEqual(len(dates), 1) - # among other things it must have at least been called with this - context["period"] = (1970,) - context["period_num"] = (1970,) - write.assert_called_with("posts/1970/index.html", - generator.get_template("period_archives"), - context, blog=True, articles=articles, - dates=dates, template_name='period_archives', - url="posts/1970/", - all_articles=generator.articles) - - settings['MONTH_ARCHIVE_SAVE_AS'] = \ - 'posts/{date:%Y}/{date:%b}/index.html' - settings['MONTH_ARCHIVE_URL'] = \ - 'posts/{date:%Y}/{date:%b}/' - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - write = MagicMock() - generator.generate_period_archives(write) - dates = [d for d in generator.dates - if d.date.year == 1970 and d.date.month == 1] - articles = [d for d in generator.articles - if d.date.year == 1970 and d.date.month == 1] - self.assertEqual(len(dates), 1) - context["period"] = (1970, "January") - context["period_num"] = (1970, 1) - # among other things it must have at least been called with this - write.assert_called_with("posts/1970/Jan/index.html", - generator.get_template("period_archives"), - context, blog=True, articles=articles, - dates=dates, template_name='period_archives', - url="posts/1970/Jan/", - all_articles=generator.articles) - - settings['DAY_ARCHIVE_SAVE_AS'] = \ - 'posts/{date:%Y}/{date:%b}/{date:%d}/index.html' - settings['DAY_ARCHIVE_URL'] = \ - 'posts/{date:%Y}/{date:%b}/{date:%d}/' - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - write = MagicMock() - generator.generate_period_archives(write) - dates = [ - d for d in generator.dates if - d.date.year == 1970 and - d.date.month == 1 and - d.date.day == 1 - ] - articles = [ - d for d in generator.articles if - d.date.year == 1970 and - d.date.month == 1 and - d.date.day == 1 - ] - self.assertEqual(len(dates), 1) - context["period"] = (1970, "January", 1) - context["period_num"] = (1970, 1, 1) - # among other things it must have at least been called with this - write.assert_called_with("posts/1970/Jan/01/index.html", - generator.get_template("period_archives"), - context, blog=True, articles=articles, - dates=dates, template_name='period_archives', - url="posts/1970/Jan/01/", - all_articles=generator.articles) - locale.setlocale(locale.LC_ALL, old_locale) - - def test_nonexistent_template(self): - """Attempt to load a non-existent template""" - settings = get_settings() - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=None, theme=settings['THEME'], output_path=None) - self.assertRaises(Exception, generator.get_template, "not_a_template") - - def test_generate_authors(self): - """Check authors generation.""" - authors = [author.name for author, _ in self.generator.authors] - authors_expected = sorted( - ['Alexis Métaireau', 'Author, First', 'Author, Second', - 'First Author', 'Second Author']) - self.assertEqual(sorted(authors), authors_expected) - # test for slug - authors = [author.slug for author, _ in self.generator.authors] - authors_expected = ['alexis-metaireau', 'author-first', - 'author-second', 'first-author', 'second-author'] - self.assertEqual(sorted(authors), sorted(authors_expected)) - - def test_standard_metadata_in_default_metadata(self): - settings = get_settings() - settings['CACHE_CONTENT'] = False - settings['DEFAULT_CATEGORY'] = 'Default' - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['DEFAULT_METADATA'] = (('author', 'Blogger'), - # category will be ignored in favor of - # DEFAULT_CATEGORY - ('category', 'Random'), - ('tags', 'general, untagged')) - context = get_context(settings) - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - - authors = sorted([author.name for author, _ in generator.authors]) - authors_expected = sorted(['Alexis Métaireau', 'Blogger', - 'Author, First', 'Author, Second', - 'First Author', 'Second Author']) - self.assertEqual(authors, authors_expected) - - categories = sorted([category.name - for category, _ in generator.categories]) - categories_expected = [ - sorted(['Default', 'TestCategory', 'yeah', 'test', '指導書']), - sorted(['Default', 'TestCategory', 'Yeah', 'test', '指導書'])] - self.assertIn(categories, categories_expected) - - tags = sorted([tag.name for tag in generator.tags]) - tags_expected = sorted(['bar', 'foo', 'foobar', 'general', 'untagged', - 'パイソン', 'マック']) - self.assertEqual(tags, tags_expected) - - def test_article_order_by(self): - settings = get_settings() - settings['DEFAULT_CATEGORY'] = 'Default' - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['ARTICLE_ORDER_BY'] = 'title' - context = get_context(settings) - - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - - expected = [ - 'An Article With Code Block To Test Typogrify Ignore', - 'Article title', - 'Article with Nonconformant HTML meta tags', - 'Article with an inline SVG', - 'Article with markdown and nested summary metadata', - 'Article with markdown and summary metadata multi', - 'Article with markdown and summary metadata single', - 'Article with markdown containing footnotes', - 'Article with template', - 'Metadata tags as list!', - 'One -, two --, three --- dashes!', - 'One -, two --, three --- dashes!', - 'Rst with filename metadata', - 'Test Markdown extensions', - 'Test markdown File', - 'Test md File', - 'Test mdown File', - 'Test metadata duplicates', - 'Test mkd File', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is a super article !', - 'This is an article with category !', - ('This is an article with multiple authors in lastname, ' - 'firstname format!'), - 'This is an article with multiple authors in list format!', - 'This is an article with multiple authors!', - 'This is an article with multiple authors!', - 'This is an article without category !', - 'This is an article without category !', - 'マックOS X 10.8でパイソンとVirtualenvをインストールと設定'] - - articles = [article.title for article in generator.articles] - self.assertEqual(articles, expected) - - # reversed title - settings = get_settings() - settings['DEFAULT_CATEGORY'] = 'Default' - settings['DEFAULT_DATE'] = (1970, 1, 1) - settings['ARTICLE_ORDER_BY'] = 'reversed-title' - context = get_context(settings) - - generator = ArticlesGenerator( - context=context, settings=settings, - path=CONTENT_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - - articles = [article.title for article in generator.articles] - self.assertEqual(articles, list(reversed(expected))) - - -class TestPageGenerator(unittest.TestCase): - # Note: Every time you want to test for a new field; Make sure the test - # pages in "TestPages" have all the fields Add it to distilled in - # distill_pages Then update the assertEqual in test_generate_context - # to match expected - - def setUp(self): - self.temp_cache = mkdtemp(prefix='pelican_cache.') - - def tearDown(self): - rmtree(self.temp_cache) - - def distill_pages(self, pages): - return [[page.title, page.status, page.template] for page in pages] - - def test_generate_context(self): - settings = get_settings() - settings['CACHE_PATH'] = self.temp_cache - settings['PAGE_PATHS'] = ['TestPages'] # relative to CUR_DIR - settings['DEFAULT_DATE'] = (1970, 1, 1) - context = get_context(settings) - - generator = PagesGenerator( - context=context, settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - pages = self.distill_pages(generator.pages) - hidden_pages = self.distill_pages(generator.hidden_pages) - draft_pages = self.distill_pages(generator.draft_pages) - - pages_expected = [ - ['This is a test page', 'published', 'page'], - ['This is a markdown test page', 'published', 'page'], - ['This is a test page with a preset template', 'published', - 'custom'], - ['Page with a bunch of links', 'published', 'page'], - ['Page with static links', 'published', 'page'], - ['A Page (Test) for sorting', 'published', 'page'], - ] - hidden_pages_expected = [ - ['This is a test hidden page', 'hidden', 'page'], - ['This is a markdown test hidden page', 'hidden', 'page'], - ['This is a test hidden page with a custom template', 'hidden', - 'custom'], - ] - draft_pages_expected = [ - ['This is a test draft page', 'draft', 'page'], - ['This is a markdown test draft page', 'draft', 'page'], - ['This is a test draft page with a custom template', 'draft', - 'custom'], - ] - - self.assertEqual(sorted(pages_expected), sorted(pages)) - self.assertEqual( - sorted(pages_expected), - sorted(self.distill_pages(generator.context['pages']))) - self.assertEqual(sorted(hidden_pages_expected), sorted(hidden_pages)) - self.assertEqual(sorted(draft_pages_expected), sorted(draft_pages)) - self.assertEqual( - sorted(hidden_pages_expected), - sorted(self.distill_pages(generator.context['hidden_pages']))) - self.assertEqual( - sorted(draft_pages_expected), - sorted(self.distill_pages(generator.context['draft_pages']))) - - def test_generate_sorted(self): - settings = get_settings() - settings['PAGE_PATHS'] = ['TestPages'] # relative to CUR_DIR - settings['CACHE_PATH'] = self.temp_cache - settings['DEFAULT_DATE'] = (1970, 1, 1) - context = get_context(settings) - - # default sort (filename) - pages_expected_sorted_by_filename = [ - ['This is a test page', 'published', 'page'], - ['This is a markdown test page', 'published', 'page'], - ['A Page (Test) for sorting', 'published', 'page'], - ['Page with a bunch of links', 'published', 'page'], - ['Page with static links', 'published', 'page'], - ['This is a test page with a preset template', 'published', - 'custom'], - ] - generator = PagesGenerator( - context=context, settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - pages = self.distill_pages(generator.pages) - self.assertEqual(pages_expected_sorted_by_filename, pages) - - # sort by title - pages_expected_sorted_by_title = [ - ['A Page (Test) for sorting', 'published', 'page'], - ['Page with a bunch of links', 'published', 'page'], - ['Page with static links', 'published', 'page'], - ['This is a markdown test page', 'published', 'page'], - ['This is a test page', 'published', 'page'], - ['This is a test page with a preset template', 'published', - 'custom'], - ] - settings['PAGE_ORDER_BY'] = 'title' - context = get_context(settings) - generator = PagesGenerator( - context=context.copy(), settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - pages = self.distill_pages(generator.pages) - self.assertEqual(pages_expected_sorted_by_title, pages) - - # sort by title reversed - pages_expected_sorted_by_title = [ - ['This is a test page with a preset template', 'published', - 'custom'], - ['This is a test page', 'published', 'page'], - ['This is a markdown test page', 'published', 'page'], - ['Page with static links', 'published', 'page'], - ['Page with a bunch of links', 'published', 'page'], - ['A Page (Test) for sorting', 'published', 'page'], - ] - settings['PAGE_ORDER_BY'] = 'reversed-title' - context = get_context(settings) - generator = PagesGenerator( - context=context, settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - pages = self.distill_pages(generator.pages) - self.assertEqual(pages_expected_sorted_by_title, pages) - - def test_tag_and_category_links_on_generated_pages(self): - """ - Test to ensure links of the form {tag}tagname and {category}catname - are generated correctly on pages - """ - settings = get_settings() - settings['PAGE_PATHS'] = ['TestPages'] # relative to CUR_DIR - settings['CACHE_PATH'] = self.temp_cache - settings['DEFAULT_DATE'] = (1970, 1, 1) - context = get_context(settings) - - generator = PagesGenerator( - context=context, settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - pages_by_title = {p.title: p for p in generator.pages} - - test_content = pages_by_title['Page with a bunch of links'].content - self.assertIn('', test_content) - self.assertIn('', test_content) - - def test_static_and_attach_links_on_generated_pages(self): - """ - Test to ensure links of the form {static}filename and {attach}filename - are included in context['static_links'] - """ - settings = get_settings() - settings['PAGE_PATHS'] = ['TestPages/page_with_static_links.md'] - settings['CACHE_PATH'] = self.temp_cache - settings['DEFAULT_DATE'] = (1970, 1, 1) - context = get_context(settings) - - generator = PagesGenerator( - context=context, settings=settings, - path=CUR_DIR, theme=settings['THEME'], output_path=None) - generator.generate_context() - - self.assertIn('pelican/tests/TestPages/image0.jpg', - context['static_links']) - self.assertIn('pelican/tests/TestPages/image1.jpg', - context['static_links']) - - -class TestTemplatePagesGenerator(unittest.TestCase): - - TEMPLATE_CONTENT = "foo: {{ foo }}" - - def setUp(self): - self.temp_content = mkdtemp(prefix='pelicantests.') - self.temp_output = mkdtemp(prefix='pelicantests.') - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - - def tearDown(self): - rmtree(self.temp_content) - rmtree(self.temp_output) - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_generate_output(self): - - settings = get_settings() - settings['STATIC_PATHS'] = ['static'] - settings['TEMPLATE_PAGES'] = { - 'template/source.html': 'generated/file.html' - } - - generator = TemplatePagesGenerator( - context={'foo': 'bar'}, settings=settings, - path=self.temp_content, theme='', output_path=self.temp_output) - - # create a dummy template file - template_dir = os.path.join(self.temp_content, 'template') - template_path = os.path.join(template_dir, 'source.html') - os.makedirs(template_dir) - with open(template_path, 'w') as template_file: - template_file.write(self.TEMPLATE_CONTENT) - - writer = Writer(self.temp_output, settings=settings) - generator.generate_output(writer) - - output_path = os.path.join(self.temp_output, 'generated', 'file.html') - - # output file has been generated - self.assertTrue(os.path.exists(output_path)) - - # output content is correct - with open(output_path) as output_file: - self.assertEqual(output_file.read(), 'foo: bar') - - -class TestStaticGenerator(unittest.TestCase): - - def setUp(self): - self.content_path = os.path.join(CUR_DIR, 'mixed_content') - self.temp_content = mkdtemp(prefix='testcontent.') - self.temp_output = mkdtemp(prefix='testoutput.') - self.settings = get_settings() - self.settings['PATH'] = self.temp_content - self.settings['STATIC_PATHS'] = ["static"] - self.settings['OUTPUT_PATH'] = self.temp_output - os.mkdir(os.path.join(self.temp_content, "static")) - self.startfile = os.path.join(self.temp_content, - "static", "staticfile") - self.endfile = os.path.join(self.temp_output, "static", "staticfile") - self.generator = StaticGenerator( - context=get_context(), - settings=self.settings, - path=self.temp_content, - theme="", - output_path=self.temp_output, - ) - - def tearDown(self): - rmtree(self.temp_content) - rmtree(self.temp_output) - - def set_ancient_mtime(self, path, timestamp=1): - os.utime(path, (timestamp, timestamp)) - - def test_theme_static_paths_dirs(self): - """Test that StaticGenerator properly copies also files mentioned in - TEMPLATE_STATIC_PATHS, not just directories.""" - settings = get_settings(PATH=self.content_path) - context = get_context(settings, staticfiles=[]) - - StaticGenerator( - context=context, settings=settings, - path=settings['PATH'], output_path=self.temp_output, - theme=settings['THEME']).generate_output(None) - - # The content of dirs listed in THEME_STATIC_PATHS (defaulting to - # "static") is put into the output - self.assertTrue(os.path.isdir(os.path.join(self.temp_output, - "theme/css/"))) - self.assertTrue(os.path.isdir(os.path.join(self.temp_output, - "theme/fonts/"))) - - def test_theme_static_paths_files(self): - """Test that StaticGenerator properly copies also files mentioned in - TEMPLATE_STATIC_PATHS, not just directories.""" - settings = get_settings( - PATH=self.content_path, - THEME_STATIC_PATHS=['static/css/fonts.css', 'static/fonts/'],) - context = get_context(settings, staticfiles=[]) - - StaticGenerator( - context=context, settings=settings, - path=settings['PATH'], output_path=self.temp_output, - theme=settings['THEME']).generate_output(None) - - # Only the content of dirs and files listed in THEME_STATIC_PATHS are - # put into the output, not everything from static/ - self.assertFalse(os.path.isdir(os.path.join(self.temp_output, - "theme/css/"))) - self.assertFalse(os.path.isdir(os.path.join(self.temp_output, - "theme/fonts/"))) - - self.assertTrue(os.path.isfile(os.path.join( - self.temp_output, "theme/Yanone_Kaffeesatz_400.eot"))) - self.assertTrue(os.path.isfile(os.path.join( - self.temp_output, "theme/Yanone_Kaffeesatz_400.svg"))) - self.assertTrue(os.path.isfile(os.path.join( - self.temp_output, "theme/Yanone_Kaffeesatz_400.ttf"))) - self.assertTrue(os.path.isfile(os.path.join( - self.temp_output, "theme/Yanone_Kaffeesatz_400.woff"))) - self.assertTrue(os.path.isfile(os.path.join( - self.temp_output, "theme/Yanone_Kaffeesatz_400.woff2"))) - self.assertTrue(os.path.isfile(os.path.join(self.temp_output, - "theme/font.css"))) - self.assertTrue(os.path.isfile(os.path.join(self.temp_output, - "theme/fonts.css"))) - - def test_static_excludes(self): - """Test that StaticGenerator respects STATIC_EXCLUDES. - """ - settings = get_settings( - STATIC_EXCLUDES=['subdir'], - PATH=self.content_path, - STATIC_PATHS=[''],) - context = get_context(settings) - - StaticGenerator( - context=context, settings=settings, - path=settings['PATH'], output_path=self.temp_output, - theme=settings['THEME']).generate_context() - - staticnames = [os.path.basename(c.source_path) - for c in context['staticfiles']] - - self.assertNotIn( - 'subdir_fake_image.jpg', staticnames, - "StaticGenerator processed a file in a STATIC_EXCLUDES directory") - self.assertIn( - 'fake_image.jpg', staticnames, - "StaticGenerator skipped a file that it should have included") - - def test_static_exclude_sources(self): - """Test that StaticGenerator respects STATIC_EXCLUDE_SOURCES. - """ - - settings = get_settings( - STATIC_EXCLUDE_SOURCES=True, - PATH=self.content_path, - PAGE_PATHS=[''], - STATIC_PATHS=[''], - CACHE_CONTENT=False,) - context = get_context(settings) - - for generator_class in (PagesGenerator, StaticGenerator): - generator_class( - context=context, settings=settings, - path=settings['PATH'], output_path=self.temp_output, - theme=settings['THEME']).generate_context() - - staticnames = [os.path.basename(c.source_path) - for c in context['staticfiles']] - - self.assertFalse( - any(name.endswith(".md") for name in staticnames), - "STATIC_EXCLUDE_SOURCES=True failed to exclude a markdown file") - - settings.update(STATIC_EXCLUDE_SOURCES=False) - context = get_context(settings) - - for generator_class in (PagesGenerator, StaticGenerator): - generator_class( - context=context, settings=settings, - path=settings['PATH'], output_path=self.temp_output, - theme=settings['THEME']).generate_context() - - staticnames = [os.path.basename(c.source_path) - for c in context['staticfiles']] - - self.assertTrue( - any(name.endswith(".md") for name in staticnames), - "STATIC_EXCLUDE_SOURCES=False failed to include a markdown file") - - def test_static_links(self): - """Test that StaticGenerator uses files in static_links - """ - settings = get_settings( - STATIC_EXCLUDES=['subdir'], - PATH=self.content_path, - STATIC_PATHS=[],) - context = get_context(settings) - context['static_links'] |= {'short_page.md', 'subdir_fake_image.jpg'} - - StaticGenerator( - context=context, settings=settings, - path=settings['PATH'], output_path=self.temp_output, - theme=settings['THEME']).generate_context() - - staticfiles_names = [ - os.path.basename(c.source_path) for c in context['staticfiles']] - - static_content_names = [ - os.path.basename(c) for c in context['static_content']] - - self.assertIn( - 'short_page.md', staticfiles_names, - "StaticGenerator skipped a file that it should have included") - self.assertIn( - 'short_page.md', static_content_names, - "StaticGenerator skipped a file that it should have included") - self.assertIn( - 'subdir_fake_image.jpg', staticfiles_names, - "StaticGenerator skipped a file that it should have included") - self.assertIn( - 'subdir_fake_image.jpg', static_content_names, - "StaticGenerator skipped a file that it should have included") - - def test_copy_one_file(self): - with open(self.startfile, "w") as f: - f.write("staticcontent") - self.generator.generate_context() - self.generator.generate_output(None) - with open(self.endfile) as f: - self.assertEqual(f.read(), "staticcontent") - - def test_file_update_required_when_dest_does_not_exist(self): - staticfile = MagicMock() - staticfile.source_path = self.startfile - staticfile.save_as = self.endfile - with open(staticfile.source_path, "w") as f: - f.write("a") - update_required = self.generator._file_update_required(staticfile) - self.assertTrue(update_required) - - def test_dest_and_source_mtimes_are_equal(self): - staticfile = MagicMock() - staticfile.source_path = self.startfile - staticfile.save_as = self.endfile - self.settings['STATIC_CHECK_IF_MODIFIED'] = True - with open(staticfile.source_path, "w") as f: - f.write("a") - os.mkdir(os.path.join(self.temp_output, "static")) - copy(staticfile.source_path, staticfile.save_as) - isnewer = self.generator._source_is_newer(staticfile) - self.assertFalse(isnewer) - - def test_source_is_newer(self): - staticfile = MagicMock() - staticfile.source_path = self.startfile - staticfile.save_as = self.endfile - with open(staticfile.source_path, "w") as f: - f.write("a") - os.mkdir(os.path.join(self.temp_output, "static")) - copy(staticfile.source_path, staticfile.save_as) - self.set_ancient_mtime(staticfile.save_as) - isnewer = self.generator._source_is_newer(staticfile) - self.assertTrue(isnewer) - - def test_skip_file_when_source_is_not_newer(self): - self.settings['STATIC_CHECK_IF_MODIFIED'] = True - with open(self.startfile, "w") as f: - f.write("staticcontent") - os.mkdir(os.path.join(self.temp_output, "static")) - with open(self.endfile, "w") as f: - f.write("staticcontent") - expected = os.path.getmtime(self.endfile) - self.set_ancient_mtime(self.startfile) - self.generator.generate_context() - self.generator.generate_output(None) - self.assertEqual(os.path.getmtime(self.endfile), expected) - - def test_dont_link_by_default(self): - with open(self.startfile, "w") as f: - f.write("staticcontent") - self.generator.generate_context() - self.generator.generate_output(None) - self.assertFalse(os.path.samefile(self.startfile, self.endfile)) - - def test_output_file_is_linked_to_source(self): - self.settings['STATIC_CREATE_LINKS'] = True - with open(self.startfile, "w") as f: - f.write("staticcontent") - self.generator.generate_context() - self.generator.generate_output(None) - self.assertTrue(os.path.samefile(self.startfile, self.endfile)) - - def test_output_file_exists_and_is_newer(self): - self.settings['STATIC_CREATE_LINKS'] = True - with open(self.startfile, "w") as f: - f.write("staticcontent") - os.mkdir(os.path.join(self.temp_output, "static")) - with open(self.endfile, "w") as f: - f.write("othercontent") - self.generator.generate_context() - self.generator.generate_output(None) - self.assertTrue(os.path.samefile(self.startfile, self.endfile)) - - @unittest.skipUnless(can_symlink(), 'No symlink privilege') - def test_can_symlink_when_hardlink_not_possible(self): - self.settings['STATIC_CREATE_LINKS'] = True - with open(self.startfile, "w") as f: - f.write("staticcontent") - os.mkdir(os.path.join(self.temp_output, "static")) - self.generator.fallback_to_symlinks = True - self.generator.generate_context() - self.generator.generate_output(None) - self.assertTrue(os.path.islink(self.endfile)) - - @unittest.skipUnless(can_symlink(), 'No symlink privilege') - def test_existing_symlink_is_considered_up_to_date(self): - self.settings['STATIC_CREATE_LINKS'] = True - with open(self.startfile, "w") as f: - f.write("staticcontent") - os.mkdir(os.path.join(self.temp_output, "static")) - os.symlink(self.startfile, self.endfile) - staticfile = MagicMock() - staticfile.source_path = self.startfile - staticfile.save_as = self.endfile - requires_update = self.generator._file_update_required(staticfile) - self.assertFalse(requires_update) - - @unittest.skipUnless(can_symlink(), 'No symlink privilege') - def test_invalid_symlink_is_overwritten(self): - self.settings['STATIC_CREATE_LINKS'] = True - with open(self.startfile, "w") as f: - f.write("staticcontent") - os.mkdir(os.path.join(self.temp_output, "static")) - os.symlink("invalid", self.endfile) - staticfile = MagicMock() - staticfile.source_path = self.startfile - staticfile.save_as = self.endfile - requires_update = self.generator._file_update_required(staticfile) - self.assertTrue(requires_update) - self.generator.fallback_to_symlinks = True - self.generator.generate_context() - self.generator.generate_output(None) - self.assertTrue(os.path.islink(self.endfile)) - - # os.path.realpath is broken on Windows before python3.8 for symlinks. - # This is a (ugly) workaround. - # see: https://bugs.python.org/issue9949 - if os.name == 'nt' and sys.version_info < (3, 8): - def get_real_path(path): - return os.readlink(path) if os.path.islink(path) else path - else: - get_real_path = os.path.realpath - - self.assertEqual(get_real_path(self.endfile), - get_real_path(self.startfile)) - - def test_delete_existing_file_before_mkdir(self): - with open(self.startfile, "w") as f: - f.write("staticcontent") - with open(os.path.join(self.temp_output, "static"), "w") as f: - f.write("This file should be a directory") - self.generator.generate_context() - self.generator.generate_output(None) - self.assertTrue( - os.path.isdir(os.path.join(self.temp_output, "static"))) - self.assertTrue(os.path.isfile(self.endfile)) - - -class TestJinja2Environment(unittest.TestCase): - - def setUp(self): - self.temp_content = mkdtemp(prefix='pelicantests.') - self.temp_output = mkdtemp(prefix='pelicantests.') - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - - def tearDown(self): - rmtree(self.temp_content) - rmtree(self.temp_output) - locale.setlocale(locale.LC_ALL, self.old_locale) - - def _test_jinja2_helper(self, additional_settings, content, expected): - settings = get_settings() - settings['STATIC_PATHS'] = ['static'] - settings['TEMPLATE_PAGES'] = { - 'template/source.html': 'generated/file.html' - } - settings.update(additional_settings) - - generator = TemplatePagesGenerator( - context={'foo': 'foo', 'bar': 'bar'}, settings=settings, - path=self.temp_content, theme='', output_path=self.temp_output) - - # create a dummy template file - template_dir = os.path.join(self.temp_content, 'template') - template_path = os.path.join(template_dir, 'source.html') - os.makedirs(template_dir) - with open(template_path, 'w') as template_file: - template_file.write(content) - - writer = Writer(self.temp_output, settings=settings) - generator.generate_output(writer) - - output_path = os.path.join(self.temp_output, 'generated', 'file.html') - - # output file has been generated - self.assertTrue(os.path.exists(output_path)) - - # output content is correct - with open(output_path) as output_file: - self.assertEqual(output_file.read(), expected) - - def test_jinja2_filter(self): - """JINJA_FILTERS adds custom filters to Jinja2 environment""" - content = 'foo: {{ foo|custom_filter }}, bar: {{ bar|custom_filter }}' - settings = {'JINJA_FILTERS': {'custom_filter': lambda x: x.upper()}} - expected = 'foo: FOO, bar: BAR' - - self._test_jinja2_helper(settings, content, expected) - - def test_jinja2_test(self): - """JINJA_TESTS adds custom tests to Jinja2 environment""" - content = 'foo {{ foo is custom_test }}, bar {{ bar is custom_test }}' - settings = {'JINJA_TESTS': {'custom_test': lambda x: x == 'bar'}} - expected = 'foo False, bar True' - - self._test_jinja2_helper(settings, content, expected) - - def test_jinja2_global(self): - """JINJA_GLOBALS adds custom globals to Jinja2 environment""" - content = '{{ custom_global }}' - settings = {'JINJA_GLOBALS': {'custom_global': 'foobar'}} - expected = 'foobar' - - self._test_jinja2_helper(settings, content, expected) - - def test_jinja2_extension(self): - """JINJA_ENVIRONMENT adds extensions to Jinja2 environment""" - content = '{% set stuff = [] %}{% do stuff.append(1) %}{{ stuff }}' - settings = {'JINJA_ENVIRONMENT': {'extensions': ['jinja2.ext.do']}} - expected = '[1]' - - self._test_jinja2_helper(settings, content, expected) diff --git a/pelican/tests/test_importer.py b/pelican/tests/test_importer.py deleted file mode 100644 index 76feb9ce..00000000 --- a/pelican/tests/test_importer.py +++ /dev/null @@ -1,453 +0,0 @@ -import locale -import os -import re -from posixpath import join as posix_join - -from pelican.settings import DEFAULT_CONFIG -from pelican.tests.support import (mute, skipIfNoExecutable, temporary_folder, - unittest) -from pelican.tools.pelican_import import (blogger2fields, build_header, - build_markdown_header, - decode_wp_content, - download_attachments, fields2pelican, - get_attachments, wp2fields) -from pelican.utils import path_to_file_url, slugify - -CUR_DIR = os.path.abspath(os.path.dirname(__file__)) -BLOGGER_XML_SAMPLE = os.path.join(CUR_DIR, 'content', 'bloggerexport.xml') -WORDPRESS_XML_SAMPLE = os.path.join(CUR_DIR, 'content', 'wordpressexport.xml') -WORDPRESS_ENCODED_CONTENT_SAMPLE = os.path.join(CUR_DIR, - 'content', - 'wordpress_content_encoded') -WORDPRESS_DECODED_CONTENT_SAMPLE = os.path.join(CUR_DIR, - 'content', - 'wordpress_content_decoded') - -try: - from bs4 import BeautifulSoup -except ImportError: - BeautifulSoup = False # NOQA - -try: - import bs4.builder._lxml as LXML -except ImportError: - LXML = False - - -@skipIfNoExecutable(['pandoc', '--version']) -@unittest.skipUnless(BeautifulSoup, 'Needs BeautifulSoup module') -class TestBloggerXmlImporter(unittest.TestCase): - - def setUp(self): - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.posts = blogger2fields(BLOGGER_XML_SAMPLE) - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_recognise_kind_and_title(self): - """Check that importer only outputs pages, articles and comments, - that these are correctly identified and that titles are correct. - """ - test_posts = list(self.posts) - kinds = {x[8] for x in test_posts} - self.assertEqual({'page', 'article', 'comment'}, kinds) - page_titles = {x[0] for x in test_posts if x[8] == 'page'} - self.assertEqual({'Test page', 'Test page 2'}, page_titles) - article_titles = {x[0] for x in test_posts if x[8] == 'article'} - self.assertEqual({'Black as Egypt\'s Night', 'The Steel Windpipe'}, - article_titles) - comment_titles = {x[0] for x in test_posts if x[8] == 'comment'} - self.assertEqual({'Mishka, always a pleasure to read your ' - 'adventures!...'}, - comment_titles) - - def test_recognise_status_with_correct_filename(self): - """Check that importerer outputs only statuses 'published' and 'draft', - that these are correctly identified and that filenames are correct. - """ - test_posts = list(self.posts) - statuses = {x[7] for x in test_posts} - self.assertEqual({'published', 'draft'}, statuses) - - draft_filenames = {x[2] for x in test_posts if x[7] == 'draft'} - # draft filenames are id-based - self.assertEqual({'page-4386962582497458967', - 'post-1276418104709695660'}, draft_filenames) - - published_filenames = {x[2] for x in test_posts if x[7] == 'published'} - # published filenames are url-based, except comments - self.assertEqual({'the-steel-windpipe', - 'test-page', - 'post-5590533389087749201'}, published_filenames) - - -@skipIfNoExecutable(['pandoc', '--version']) -@unittest.skipUnless(BeautifulSoup, 'Needs BeautifulSoup module') -class TestWordpressXmlImporter(unittest.TestCase): - - def setUp(self): - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.posts = wp2fields(WORDPRESS_XML_SAMPLE) - self.custposts = wp2fields(WORDPRESS_XML_SAMPLE, True) - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_ignore_empty_posts(self): - self.assertTrue(self.posts) - for (title, content, fname, date, author, - categ, tags, status, kind, format) in self.posts: - self.assertTrue(title.strip()) - - def test_recognise_page_kind(self): - """ Check that we recognise pages in wordpress, as opposed to posts """ - self.assertTrue(self.posts) - # Collect (title, filename, kind) of non-empty posts recognised as page - pages_data = [] - for (title, content, fname, date, author, - categ, tags, status, kind, format) in self.posts: - if kind == 'page': - pages_data.append((title, fname)) - self.assertEqual(2, len(pages_data)) - self.assertEqual(('Page', 'contact'), pages_data[0]) - self.assertEqual(('Empty Page', 'empty'), pages_data[1]) - - def test_dirpage_directive_for_page_kind(self): - silent_f2p = mute(True)(fields2pelican) - test_post = filter(lambda p: p[0].startswith("Empty Page"), self.posts) - with temporary_folder() as temp: - fname = list(silent_f2p(test_post, 'markdown', - temp, dirpage=True))[0] - self.assertTrue(fname.endswith('pages%sempty.md' % os.path.sep)) - - def test_dircat(self): - silent_f2p = mute(True)(fields2pelican) - test_posts = [] - for post in self.posts: - # check post kind - if len(post[5]) > 0: # Has a category - test_posts.append(post) - with temporary_folder() as temp: - fnames = list(silent_f2p(test_posts, 'markdown', - temp, dircat=True)) - subs = DEFAULT_CONFIG['SLUG_REGEX_SUBSTITUTIONS'] - index = 0 - for post in test_posts: - name = post[2] - category = slugify(post[5][0], regex_subs=subs, preserve_case=True) - name += '.md' - filename = os.path.join(category, name) - out_name = fnames[index] - self.assertTrue(out_name.endswith(filename)) - index += 1 - - def test_unless_custom_post_all_items_should_be_pages_or_posts(self): - self.assertTrue(self.posts) - pages_data = [] - for (title, content, fname, date, author, categ, - tags, status, kind, format) in self.posts: - if kind == 'page' or kind == 'article': - pass - else: - pages_data.append((title, fname)) - self.assertEqual(0, len(pages_data)) - - def test_recognise_custom_post_type(self): - self.assertTrue(self.custposts) - cust_data = [] - for (title, content, fname, date, author, categ, - tags, status, kind, format) in self.custposts: - if kind == 'article' or kind == 'page': - pass - else: - cust_data.append((title, kind)) - self.assertEqual(3, len(cust_data)) - self.assertEqual( - ('A custom post in category 4', 'custom1'), - cust_data[0]) - self.assertEqual( - ('A custom post in category 5', 'custom1'), - cust_data[1]) - self.assertEqual( - ('A 2nd custom post type also in category 5', 'custom2'), - cust_data[2]) - - def test_custom_posts_put_in_own_dir(self): - silent_f2p = mute(True)(fields2pelican) - test_posts = [] - for post in self.custposts: - # check post kind - if post[8] == 'article' or post[8] == 'page': - pass - else: - test_posts.append(post) - with temporary_folder() as temp: - fnames = list(silent_f2p(test_posts, 'markdown', - temp, wp_custpost=True)) - index = 0 - for post in test_posts: - name = post[2] - kind = post[8] - name += '.md' - filename = os.path.join(kind, name) - out_name = fnames[index] - self.assertTrue(out_name.endswith(filename)) - index += 1 - - def test_custom_posts_put_in_own_dir_and_catagory_sub_dir(self): - silent_f2p = mute(True)(fields2pelican) - test_posts = [] - for post in self.custposts: - # check post kind - if post[8] == 'article' or post[8] == 'page': - pass - else: - test_posts.append(post) - with temporary_folder() as temp: - fnames = list(silent_f2p(test_posts, 'markdown', temp, - wp_custpost=True, dircat=True)) - subs = DEFAULT_CONFIG['SLUG_REGEX_SUBSTITUTIONS'] - index = 0 - for post in test_posts: - name = post[2] - kind = post[8] - category = slugify(post[5][0], regex_subs=subs, preserve_case=True) - name += '.md' - filename = os.path.join(kind, category, name) - out_name = fnames[index] - self.assertTrue(out_name.endswith(filename)) - index += 1 - - def test_wp_custpost_true_dirpage_false(self): - # pages should only be put in their own directory when dirpage = True - silent_f2p = mute(True)(fields2pelican) - test_posts = [] - for post in self.custposts: - # check post kind - if post[8] == 'page': - test_posts.append(post) - with temporary_folder() as temp: - fnames = list(silent_f2p(test_posts, 'markdown', temp, - wp_custpost=True, dirpage=False)) - index = 0 - for post in test_posts: - name = post[2] - name += '.md' - filename = os.path.join('pages', name) - out_name = fnames[index] - self.assertFalse(out_name.endswith(filename)) - - def test_can_toggle_raw_html_code_parsing(self): - test_posts = list(self.posts) - - def r(f): - with open(f, encoding='utf-8') as infile: - return infile.read() - silent_f2p = mute(True)(fields2pelican) - - with temporary_folder() as temp: - - rst_files = (r(f) for f - in silent_f2p(test_posts, 'markdown', temp)) - self.assertTrue(any(' entities in " - "the title. You can't miss them.") - self.assertNotIn('&', title) - - def test_decode_wp_content_returns_empty(self): - """ Check that given an empty string we return an empty string.""" - self.assertEqual(decode_wp_content(""), "") - - def test_decode_wp_content(self): - """ Check that we can decode a wordpress content string.""" - with open(WORDPRESS_ENCODED_CONTENT_SAMPLE) as encoded_file: - encoded_content = encoded_file.read() - with open(WORDPRESS_DECODED_CONTENT_SAMPLE) as decoded_file: - decoded_content = decoded_file.read() - self.assertEqual( - decode_wp_content(encoded_content, br=False), - decoded_content) - - def test_preserve_verbatim_formatting(self): - def r(f): - with open(f, encoding='utf-8') as infile: - return infile.read() - silent_f2p = mute(True)(fields2pelican) - test_post = filter( - lambda p: p[0].startswith("Code in List"), - self.posts) - with temporary_folder() as temp: - md = [r(f) for f in silent_f2p(test_post, 'markdown', temp)][0] - self.assertTrue(re.search(r'\s+a = \[1, 2, 3\]', md)) - self.assertTrue(re.search(r'\s+b = \[4, 5, 6\]', md)) - - for_line = re.search(r'\s+for i in zip\(a, b\):', md).group(0) - print_line = re.search(r'\s+print i', md).group(0) - self.assertTrue( - for_line.rindex('for') < print_line.rindex('print')) - - def test_code_in_list(self): - def r(f): - with open(f, encoding='utf-8') as infile: - return infile.read() - silent_f2p = mute(True)(fields2pelican) - test_post = filter( - lambda p: p[0].startswith("Code in List"), - self.posts) - with temporary_folder() as temp: - md = [r(f) for f in silent_f2p(test_post, 'markdown', temp)][0] - sample_line = re.search(r'- This is a code sample', md).group(0) - code_line = re.search(r'\s+a = \[1, 2, 3\]', md).group(0) - self.assertTrue(sample_line.rindex('This') < code_line.rindex('a')) - - def test_dont_use_smart_quotes(self): - def r(f): - with open(f, encoding='utf-8') as infile: - return infile.read() - silent_f2p = mute(True)(fields2pelican) - test_post = filter( - lambda p: p[0].startswith("Post with raw data"), - self.posts) - with temporary_folder() as temp: - md = [r(f) for f in silent_f2p(test_post, 'markdown', temp)][0] - escaped_quotes = re.search(r'\\[\'"“”‘’]', md) - self.assertFalse(escaped_quotes) - - -class TestBuildHeader(unittest.TestCase): - def test_build_header(self): - header = build_header('test', None, None, None, None, None) - self.assertEqual(header, 'test\n####\n\n') - - def test_build_header_with_fields(self): - header_data = [ - 'Test Post', - '2014-11-04', - 'Alexis Métaireau', - ['Programming'], - ['Pelican', 'Python'], - 'test-post', - ] - - expected_docutils = '\n'.join([ - 'Test Post', - '#########', - ':date: 2014-11-04', - ':author: Alexis Métaireau', - ':category: Programming', - ':tags: Pelican, Python', - ':slug: test-post', - '\n', - ]) - - expected_md = '\n'.join([ - 'Title: Test Post', - 'Date: 2014-11-04', - 'Author: Alexis Métaireau', - 'Category: Programming', - 'Tags: Pelican, Python', - 'Slug: test-post', - '\n', - ]) - - self.assertEqual(build_header(*header_data), expected_docutils) - self.assertEqual(build_markdown_header(*header_data), expected_md) - - def test_build_header_with_east_asian_characters(self): - header = build_header('これは広い幅の文字だけで構成されたタイトルです', - None, None, None, None, None) - - self.assertEqual(header, - ('これは広い幅の文字だけで構成されたタイトルです\n' - '##############################################' - '\n\n')) - - def test_galleries_added_to_header(self): - header = build_header('test', None, None, None, None, None, - attachments=['output/test1', 'output/test2']) - self.assertEqual(header, ('test\n####\n' - ':attachments: output/test1, ' - 'output/test2\n\n')) - - def test_galleries_added_to_markdown_header(self): - header = build_markdown_header('test', None, None, None, None, None, - attachments=['output/test1', - 'output/test2']) - self.assertEqual( - header, - 'Title: test\nAttachments: output/test1, output/test2\n\n') - - -@unittest.skipUnless(BeautifulSoup, 'Needs BeautifulSoup module') -@unittest.skipUnless(LXML, 'Needs lxml module') -class TestWordpressXMLAttachements(unittest.TestCase): - def setUp(self): - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.attachments = get_attachments(WORDPRESS_XML_SAMPLE) - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_recognise_attachments(self): - self.assertTrue(self.attachments) - self.assertTrue(len(self.attachments.keys()) == 3) - - def test_attachments_associated_with_correct_post(self): - self.assertTrue(self.attachments) - for post in self.attachments.keys(): - if post is None: - expected = { - ('https://upload.wikimedia.org/wikipedia/commons/' - 'thumb/2/2c/Pelican_lakes_entrance02.jpg/' - '240px-Pelican_lakes_entrance02.jpg') - } - self.assertEqual(self.attachments[post], expected) - elif post == 'with-excerpt': - expected_invalid = ('http://thisurlisinvalid.notarealdomain/' - 'not_an_image.jpg') - expected_pelikan = ('http://en.wikipedia.org/wiki/' - 'File:Pelikan_Walvis_Bay.jpg') - self.assertEqual(self.attachments[post], - {expected_invalid, expected_pelikan}) - elif post == 'with-tags': - expected_invalid = ('http://thisurlisinvalid.notarealdomain') - self.assertEqual(self.attachments[post], {expected_invalid}) - else: - self.fail('all attachments should match to a ' - 'filename or None, {}' - .format(post)) - - def test_download_attachments(self): - real_file = os.path.join(CUR_DIR, 'content/article.rst') - good_url = path_to_file_url(real_file) - bad_url = 'http://localhost:1/not_a_file.txt' - silent_da = mute()(download_attachments) - with temporary_folder() as temp: - locations = list(silent_da(temp, [good_url, bad_url])) - self.assertEqual(1, len(locations)) - directory = locations[0] - self.assertTrue( - directory.endswith(posix_join('content', 'article.rst')), - directory) diff --git a/pelican/tests/test_log.py b/pelican/tests/test_log.py deleted file mode 100644 index 3f9d7250..00000000 --- a/pelican/tests/test_log.py +++ /dev/null @@ -1,132 +0,0 @@ -import logging -import unittest -from collections import defaultdict -from contextlib import contextmanager - -from pelican import log -from pelican.tests.support import LogCountHandler - - -class TestLog(unittest.TestCase): - def setUp(self): - super().setUp() - self.logger = logging.getLogger(__name__) - self.handler = LogCountHandler() - self.handler.setFormatter(log.get_formatter()) - self.logger.addHandler(self.handler) - - def tearDown(self): - self._reset_limit_filter() - self.logger.removeHandler(self.handler) - super().tearDown() - - def _reset_limit_filter(self): - log.LimitFilter._ignore = set() - log.LimitFilter._raised_messages = set() - log.LimitFilter._threshold = 5 - log.LimitFilter._group_count = defaultdict(int) - - @contextmanager - def reset_logger(self): - try: - yield None - finally: - self._reset_limit_filter() - self.handler.flush() - - def test_log_formatter(self): - counter = self.handler.count_formatted_logs - with self.reset_logger(): - # log simple case - self.logger.warning('Log %s', 'test') - self.assertEqual( - counter('Log test', logging.WARNING), - 1) - - with self.reset_logger(): - # log multiline message - self.logger.warning('Log\n%s', 'test') - # Log - # | test - self.assertEqual( - counter('Log', logging.WARNING), - 1) - self.assertEqual( - counter(' | test', logging.WARNING), - 1) - - with self.reset_logger(): - # log multiline argument - self.logger.warning('Log %s', 'test1\ntest2') - # Log test1 - # | test2 - self.assertEqual( - counter('Log test1', logging.WARNING), - 1) - self.assertEqual( - counter(' | test2', logging.WARNING), - 1) - - with self.reset_logger(): - # log single list - self.logger.warning('Log %s', ['foo', 'bar']) - self.assertEqual( - counter(r"Log \['foo', 'bar'\]", logging.WARNING), - 1) - - with self.reset_logger(): - # log single dict - self.logger.warning('Log %s', {'foo': 1, 'bar': 2}) - self.assertEqual( - # dict order is not guaranteed - counter(r"Log {'.*': \d, '.*': \d}", logging.WARNING), - 1) - - def test_log_filter(self): - def do_logging(): - for i in range(5): - self.logger.warning('Log %s', i) - self.logger.warning('Another log %s', i) - # no filter - with self.reset_logger(): - do_logging() - self.assertEqual( - self.handler.count_logs('Log \\d', logging.WARNING), - 5) - self.assertEqual( - self.handler.count_logs('Another log \\d', logging.WARNING), - 5) - - # filter by template - with self.reset_logger(): - log.LimitFilter._ignore.add((logging.WARNING, 'Log %s')) - do_logging() - self.assertEqual( - self.handler.count_logs('Log \\d', logging.WARNING), - 0) - self.assertEqual( - self.handler.count_logs('Another log \\d', logging.WARNING), - 5) - - # filter by exact message - with self.reset_logger(): - log.LimitFilter._ignore.add((logging.WARNING, 'Log 3')) - do_logging() - self.assertEqual( - self.handler.count_logs('Log \\d', logging.WARNING), - 4) - self.assertEqual( - self.handler.count_logs('Another log \\d', logging.WARNING), - 5) - - # filter by both - with self.reset_logger(): - log.LimitFilter._ignore.add((logging.WARNING, 'Log 3')) - log.LimitFilter._ignore.add((logging.WARNING, 'Another log %s')) - do_logging() - self.assertEqual( - self.handler.count_logs('Log \\d', logging.WARNING), - 4) - self.assertEqual( - self.handler.count_logs('Another log \\d', logging.WARNING), - 0) diff --git a/pelican/tests/test_paginator.py b/pelican/tests/test_paginator.py deleted file mode 100644 index f8233eb4..00000000 --- a/pelican/tests/test_paginator.py +++ /dev/null @@ -1,104 +0,0 @@ -import locale - -from jinja2.utils import generate_lorem_ipsum - -from pelican.contents import Article, Author -from pelican.paginator import Paginator -from pelican.settings import DEFAULT_CONFIG -from pelican.tests.support import get_settings, unittest - - -# generate one paragraph, enclosed with

    -TEST_CONTENT = str(generate_lorem_ipsum(n=1)) -TEST_SUMMARY = generate_lorem_ipsum(n=1, html=False) - - -class TestPage(unittest.TestCase): - def setUp(self): - super().setUp() - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.page_kwargs = { - 'content': TEST_CONTENT, - 'context': { - 'localsiteurl': '', - }, - 'metadata': { - 'summary': TEST_SUMMARY, - 'title': 'foo bar', - }, - 'source_path': '/path/to/file/foo.ext' - } - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_save_as_preservation(self): - settings = get_settings() - # fix up pagination rules - from pelican.paginator import PaginationRule - pagination_rules = [ - PaginationRule(*r) for r in settings.get( - 'PAGINATION_PATTERNS', - DEFAULT_CONFIG['PAGINATION_PATTERNS'], - ) - ] - settings['PAGINATION_PATTERNS'] = sorted( - pagination_rules, - key=lambda r: r[0], - ) - - self.page_kwargs['metadata']['author'] = Author('Blogger', settings) - object_list = [Article(**self.page_kwargs), - Article(**self.page_kwargs)] - paginator = Paginator('foobar.foo', 'foobar/foo', object_list, - settings) - page = paginator.page(1) - self.assertEqual(page.save_as, 'foobar.foo') - - def test_custom_pagination_pattern(self): - from pelican.paginator import PaginationRule - settings = get_settings() - settings['PAGINATION_PATTERNS'] = [PaginationRule(*r) for r in [ - (1, '/{url}', '{base_name}/index.html'), - (2, '/{url}{number}/', '{base_name}/{number}/index.html') - ]] - - self.page_kwargs['metadata']['author'] = Author('Blogger', settings) - object_list = [Article(**self.page_kwargs), - Article(**self.page_kwargs)] - paginator = Paginator('blog/index.html', '//blog.my.site/', - object_list, settings, 1) - # The URL *has to* stay absolute (with // in the front), so verify that - page1 = paginator.page(1) - self.assertEqual(page1.save_as, 'blog/index.html') - self.assertEqual(page1.url, '//blog.my.site/') - page2 = paginator.page(2) - self.assertEqual(page2.save_as, 'blog/2/index.html') - self.assertEqual(page2.url, '//blog.my.site/2/') - - def test_custom_pagination_pattern_last_page(self): - from pelican.paginator import PaginationRule - settings = get_settings() - settings['PAGINATION_PATTERNS'] = [PaginationRule(*r) for r in [ - (1, '/{url}1/', '{base_name}/1/index.html'), - (2, '/{url}{number}/', '{base_name}/{number}/index.html'), - (-1, '/{url}', '{base_name}/index.html'), - ]] - - self.page_kwargs['metadata']['author'] = Author('Blogger', settings) - object_list = [Article(**self.page_kwargs), - Article(**self.page_kwargs), - Article(**self.page_kwargs)] - paginator = Paginator('blog/index.html', '//blog.my.site/', - object_list, settings, 1) - # The URL *has to* stay absolute (with // in the front), so verify that - page1 = paginator.page(1) - self.assertEqual(page1.save_as, 'blog/1/index.html') - self.assertEqual(page1.url, '//blog.my.site/1/') - page2 = paginator.page(2) - self.assertEqual(page2.save_as, 'blog/2/index.html') - self.assertEqual(page2.url, '//blog.my.site/2/') - page3 = paginator.page(3) - self.assertEqual(page3.save_as, 'blog/index.html') - self.assertEqual(page3.url, '//blog.my.site/') diff --git a/pelican/tests/test_pelican.py b/pelican/tests/test_pelican.py deleted file mode 100644 index cacc65c1..00000000 --- a/pelican/tests/test_pelican.py +++ /dev/null @@ -1,267 +0,0 @@ -import locale -import logging -import os -import subprocess -import sys -from collections.abc import Sequence -from shutil import rmtree -from tempfile import mkdtemp - -from pelican import Pelican -from pelican.generators import StaticGenerator -from pelican.settings import read_settings -from pelican.tests.support import (LoggedTestCase, locale_available, - mute, unittest) - -CURRENT_DIR = os.path.dirname(os.path.abspath(__file__)) -SAMPLES_PATH = os.path.abspath(os.path.join( - CURRENT_DIR, os.pardir, os.pardir, 'samples')) -OUTPUT_PATH = os.path.abspath(os.path.join(CURRENT_DIR, 'output')) - -INPUT_PATH = os.path.join(SAMPLES_PATH, "content") -SAMPLE_CONFIG = os.path.join(SAMPLES_PATH, "pelican.conf.py") -SAMPLE_FR_CONFIG = os.path.join(SAMPLES_PATH, "pelican.conf_FR.py") - - -def recursiveDiff(dcmp): - diff = { - 'diff_files': [os.path.join(dcmp.right, f) for f in dcmp.diff_files], - 'left_only': [os.path.join(dcmp.right, f) for f in dcmp.left_only], - 'right_only': [os.path.join(dcmp.right, f) for f in dcmp.right_only], - } - for sub_dcmp in dcmp.subdirs.values(): - for k, v in recursiveDiff(sub_dcmp).items(): - diff[k] += v - return diff - - -class TestPelican(LoggedTestCase): - # general functional testing for pelican. Basically, this test case tries - # to run pelican in different situations and see how it behaves - - def setUp(self): - super().setUp() - self.temp_path = mkdtemp(prefix='pelicantests.') - self.temp_cache = mkdtemp(prefix='pelican_cache.') - self.maxDiff = None - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - - def tearDown(self): - read_settings() # cleanup PYGMENTS_RST_OPTIONS - rmtree(self.temp_path) - rmtree(self.temp_cache) - locale.setlocale(locale.LC_ALL, self.old_locale) - super().tearDown() - - def assertDirsEqual(self, left_path, right_path): - out, err = subprocess.Popen( - ['git', 'diff', '--no-ext-diff', '--exit-code', - '-w', left_path, right_path], - env={'PAGER': ''}, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE - ).communicate() - - def ignorable_git_crlf_errors(line): - # Work around for running tests on Windows - for msg in [ - "LF will be replaced by CRLF", - "CRLF will be replaced by LF", - "The file will have its original line endings"]: - if msg in line: - return True - return False - if err: - err = '\n'.join([line for line in err.decode('utf8').splitlines() - if not ignorable_git_crlf_errors(line)]) - assert not out, out - assert not err, err - - def test_order_of_generators(self): - # StaticGenerator must run last, so it can identify files that - # were skipped by the other generators, and so static files can - # have their output paths overridden by the {attach} link syntax. - - pelican = Pelican(settings=read_settings(path=None)) - generator_classes = pelican._get_generator_classes() - - self.assertTrue( - generator_classes[-1] is StaticGenerator, - "StaticGenerator must be the last generator, but it isn't!") - self.assertIsInstance( - generator_classes, Sequence, - "_get_generator_classes() must return a Sequence to preserve order") - - def test_basic_generation_works(self): - # when running pelican without settings, it should pick up the default - # ones and generate correct output without raising any exception - settings = read_settings(path=None, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'LOCALE': locale.normalize('en_US'), - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - self.assertDirsEqual( - self.temp_path, os.path.join(OUTPUT_PATH, 'basic')) - self.assertLogCountEqual( - count=1, - msg="Unable to find.*skipping url replacement", - level=logging.WARNING) - - def test_custom_generation_works(self): - # the same thing with a specified set of settings should work - settings = read_settings(path=SAMPLE_CONFIG, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'LOCALE': locale.normalize('en_US.UTF-8'), - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - self.assertDirsEqual( - self.temp_path, os.path.join(OUTPUT_PATH, 'custom')) - - @unittest.skipUnless(locale_available('fr_FR.UTF-8') or - locale_available('French'), 'French locale needed') - def test_custom_locale_generation_works(self): - '''Test that generation with fr_FR.UTF-8 locale works''' - if sys.platform == 'win32': - our_locale = 'French' - else: - our_locale = 'fr_FR.UTF-8' - - settings = read_settings(path=SAMPLE_FR_CONFIG, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'LOCALE': our_locale, - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - self.assertDirsEqual( - self.temp_path, os.path.join(OUTPUT_PATH, 'custom_locale')) - - def test_theme_static_paths_copy(self): - # the same thing with a specified set of settings should work - settings = read_settings(path=SAMPLE_CONFIG, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'THEME_STATIC_PATHS': [os.path.join(SAMPLES_PATH, 'very'), - os.path.join(SAMPLES_PATH, 'kinda'), - os.path.join(SAMPLES_PATH, - 'theme_standard')] - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - theme_output = os.path.join(self.temp_path, 'theme') - extra_path = os.path.join(theme_output, 'exciting', 'new', 'files') - - for file in ['a_stylesheet', 'a_template']: - self.assertTrue(os.path.exists(os.path.join(theme_output, file))) - - for file in ['wow!', 'boom!', 'bap!', 'zap!']: - self.assertTrue(os.path.exists(os.path.join(extra_path, file))) - - def test_theme_static_paths_copy_single_file(self): - # the same thing with a specified set of settings should work - settings = read_settings(path=SAMPLE_CONFIG, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'THEME_STATIC_PATHS': [os.path.join(SAMPLES_PATH, - 'theme_standard')] - }) - - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - theme_output = os.path.join(self.temp_path, 'theme') - - for file in ['a_stylesheet', 'a_template']: - self.assertTrue(os.path.exists(os.path.join(theme_output, file))) - - def test_write_only_selected(self): - """Test that only the selected files are written""" - settings = read_settings(path=None, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'WRITE_SELECTED': [ - os.path.join(self.temp_path, 'oh-yeah.html'), - os.path.join(self.temp_path, 'categories.html'), - ], - 'LOCALE': locale.normalize('en_US'), - }) - pelican = Pelican(settings=settings) - logger = logging.getLogger() - orig_level = logger.getEffectiveLevel() - logger.setLevel(logging.INFO) - mute(True)(pelican.run)() - logger.setLevel(orig_level) - self.assertLogCountEqual( - count=2, - msg="Writing .*", - level=logging.INFO) - - def test_cyclic_intersite_links_no_warnings(self): - settings = read_settings(path=None, override={ - 'PATH': os.path.join(CURRENT_DIR, 'cyclic_intersite_links'), - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - # There are four different intersite links: - # - one pointing to the second article from first and third - # - one pointing to the first article from second and third - # - one pointing to the third article from first and second - # - one pointing to a nonexistent from each - # If everything goes well, only the warning about the nonexistent - # article should be printed. Only two articles are not sufficient, - # since the first will always have _context['generated_content'] empty - # (thus skipping the link resolving) and the second will always have it - # non-empty, containing the first, thus always succeeding. - self.assertLogCountEqual( - count=1, - msg="Unable to find '.*\\.rst', skipping url replacement.", - level=logging.WARNING) - - def test_md_extensions_deprecation(self): - """Test that a warning is issued if MD_EXTENSIONS is used""" - settings = read_settings(path=None, override={ - 'PATH': INPUT_PATH, - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - 'MD_EXTENSIONS': {}, - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - self.assertLogCountEqual( - count=1, - msg="MD_EXTENSIONS is deprecated use MARKDOWN instead.", - level=logging.WARNING) - - def test_parse_errors(self): - # Verify that just an error is printed and the application doesn't - # abort, exit or something. - settings = read_settings(path=None, override={ - 'PATH': os.path.abspath(os.path.join(CURRENT_DIR, 'parse_error')), - 'OUTPUT_PATH': self.temp_path, - 'CACHE_PATH': self.temp_cache, - }) - pelican = Pelican(settings=settings) - mute(True)(pelican.run)() - self.assertLogCountEqual( - count=1, - msg="Could not process .*parse_error.rst", - level=logging.ERROR) - - def test_module_load(self): - """Test loading via python -m pelican --help displays the help""" - output = subprocess.check_output([ - sys.executable, '-m', 'pelican', '--help' - ]).decode('ascii', 'replace') - assert 'usage:' in output diff --git a/pelican/tests/test_plugins.py b/pelican/tests/test_plugins.py deleted file mode 100644 index 348c3e94..00000000 --- a/pelican/tests/test_plugins.py +++ /dev/null @@ -1,191 +0,0 @@ -import os -from contextlib import contextmanager - -import pelican.tests.dummy_plugins.normal_plugin.normal_plugin as normal_plugin -from pelican.plugins._utils import (get_namespace_plugins, get_plugin_name, - load_plugins) -from pelican.tests.support import unittest - - -@contextmanager -def tmp_namespace_path(path): - '''Context manager for temporarily appending namespace plugin packages - - path: path containing the `pelican` folder - - This modifies the `pelican.__path__` and lets the `pelican.plugins` - namespace package resolve it from that. - ''' - # This avoids calls to internal `pelican.plugins.__path__._recalculate()` - # as it should not be necessary - import pelican - - old_path = pelican.__path__[:] - try: - pelican.__path__.append(os.path.join(path, 'pelican')) - yield - finally: - pelican.__path__ = old_path - - -class PluginTest(unittest.TestCase): - _PLUGIN_FOLDER = os.path.join( - os.path.abspath(os.path.dirname(__file__)), - 'dummy_plugins') - _NS_PLUGIN_FOLDER = os.path.join(_PLUGIN_FOLDER, 'namespace_plugin') - _NORMAL_PLUGIN_FOLDER = os.path.join(_PLUGIN_FOLDER, 'normal_plugin') - - def test_namespace_path_modification(self): - import pelican - import pelican.plugins - old_path = pelican.__path__[:] - - # not existing path - path = os.path.join(self._PLUGIN_FOLDER, 'foo') - with tmp_namespace_path(path): - self.assertIn( - os.path.join(path, 'pelican'), - pelican.__path__) - # foo/pelican does not exist, so it won't propagate - self.assertNotIn( - os.path.join(path, 'pelican', 'plugins'), - pelican.plugins.__path__) - # verify that we restored path back - self.assertEqual(pelican.__path__, old_path) - - # existing path - with tmp_namespace_path(self._NS_PLUGIN_FOLDER): - self.assertIn( - os.path.join(self._NS_PLUGIN_FOLDER, 'pelican'), - pelican.__path__) - # /namespace_plugin/pelican exists, so it should be in - self.assertIn( - os.path.join(self._NS_PLUGIN_FOLDER, 'pelican', 'plugins'), - pelican.plugins.__path__) - self.assertEqual(pelican.__path__, old_path) - - def test_get_namespace_plugins(self): - # existing namespace plugins - existing_ns_plugins = get_namespace_plugins() - - # with plugin - with tmp_namespace_path(self._NS_PLUGIN_FOLDER): - ns_plugins = get_namespace_plugins() - self.assertEqual(len(ns_plugins), len(existing_ns_plugins)+1) - self.assertIn('pelican.plugins.ns_plugin', ns_plugins) - self.assertEqual( - ns_plugins['pelican.plugins.ns_plugin'].NAME, - 'namespace plugin') - - # should be back to existing namespace plugins outside `with` - ns_plugins = get_namespace_plugins() - self.assertEqual(ns_plugins, existing_ns_plugins) - - def test_load_plugins(self): - def get_plugin_names(plugins): - return {get_plugin_name(p) for p in plugins} - - # existing namespace plugins - existing_ns_plugins = load_plugins({}) - - with tmp_namespace_path(self._NS_PLUGIN_FOLDER): - # with no `PLUGINS` setting, load namespace plugins - plugins = load_plugins({}) - self.assertEqual(len(plugins), len(existing_ns_plugins)+1, plugins) - self.assertEqual( - {'pelican.plugins.ns_plugin'} | get_plugin_names(existing_ns_plugins), - get_plugin_names(plugins)) - - # disable namespace plugins with `PLUGINS = []` - SETTINGS = { - 'PLUGINS': [] - } - plugins = load_plugins(SETTINGS) - self.assertEqual(len(plugins), 0, plugins) - - # with `PLUGINS`, load only specified plugins - - # normal plugin - SETTINGS = { - 'PLUGINS': ['normal_plugin'], - 'PLUGIN_PATHS': [self._NORMAL_PLUGIN_FOLDER] - } - plugins = load_plugins(SETTINGS) - self.assertEqual(len(plugins), 1, plugins) - self.assertEqual( - {'normal_plugin'}, - get_plugin_names(plugins)) - - # normal submodule/subpackage plugins - SETTINGS = { - 'PLUGINS': [ - 'normal_submodule_plugin.subplugin', - 'normal_submodule_plugin.subpackage.subpackage', - ], - 'PLUGIN_PATHS': [self._NORMAL_PLUGIN_FOLDER] - } - plugins = load_plugins(SETTINGS) - self.assertEqual(len(plugins), 2, plugins) - self.assertEqual( - {'normal_submodule_plugin.subplugin', - 'normal_submodule_plugin.subpackage.subpackage'}, - get_plugin_names(plugins)) - - # ensure normal plugins are loaded only once - SETTINGS = { - 'PLUGINS': ['normal_plugin'], - 'PLUGIN_PATHS': [self._NORMAL_PLUGIN_FOLDER], - } - plugins = load_plugins(SETTINGS) - for plugin in load_plugins(SETTINGS): - # The second load_plugins() should return the same plugin - # objects as the first one - self.assertIn(plugin, plugins) - - # namespace plugin short - SETTINGS = { - 'PLUGINS': ['ns_plugin'] - } - plugins = load_plugins(SETTINGS) - self.assertEqual(len(plugins), 1, plugins) - self.assertEqual( - {'pelican.plugins.ns_plugin'}, - get_plugin_names(plugins)) - - # namespace plugin long - SETTINGS = { - 'PLUGINS': ['pelican.plugins.ns_plugin'] - } - plugins = load_plugins(SETTINGS) - self.assertEqual(len(plugins), 1, plugins) - self.assertEqual( - {'pelican.plugins.ns_plugin'}, - get_plugin_names(plugins)) - - # normal and namespace plugin - SETTINGS = { - 'PLUGINS': ['normal_plugin', 'ns_plugin'], - 'PLUGIN_PATHS': [self._NORMAL_PLUGIN_FOLDER] - } - plugins = load_plugins(SETTINGS) - self.assertEqual(len(plugins), 2, plugins) - self.assertEqual( - {'normal_plugin', 'pelican.plugins.ns_plugin'}, - get_plugin_names(plugins)) - - def test_get_plugin_name(self): - self.assertEqual( - get_plugin_name(normal_plugin), - 'pelican.tests.dummy_plugins.normal_plugin.normal_plugin', - ) - - class NoopPlugin: - def register(self): - pass - - self.assertEqual( - get_plugin_name(NoopPlugin), - 'PluginTest.test_get_plugin_name..NoopPlugin') - self.assertEqual( - get_plugin_name(NoopPlugin()), - 'PluginTest.test_get_plugin_name..NoopPlugin') diff --git a/pelican/tests/test_readers.py b/pelican/tests/test_readers.py deleted file mode 100644 index ea5f3bdd..00000000 --- a/pelican/tests/test_readers.py +++ /dev/null @@ -1,902 +0,0 @@ -import os -from unittest.mock import patch - -from pelican import readers -from pelican.tests.support import get_settings, unittest -from pelican.utils import SafeDatetime - - -CUR_DIR = os.path.dirname(__file__) -CONTENT_PATH = os.path.join(CUR_DIR, 'content') - - -def _path(*args): - return os.path.join(CONTENT_PATH, *args) - - -class ReaderTest(unittest.TestCase): - - def read_file(self, path, **kwargs): - # Isolate from future API changes to readers.read_file - r = readers.Readers(settings=get_settings(**kwargs)) - return r.read_file(base_path=CONTENT_PATH, path=path) - - def assertDictHasSubset(self, dictionary, subset): - for key, value in subset.items(): - if key in dictionary: - real_value = dictionary.get(key) - self.assertEqual( - value, - real_value, - 'Expected %s to have value %s, but was %s' % - (key, value, real_value)) - else: - self.fail( - 'Expected %s to have value %s, but was not in Dict' % - (key, value)) - - -class TestAssertDictHasSubset(ReaderTest): - def setUp(self): - self.dictionary = { - 'key-a': 'val-a', - 'key-b': 'val-b' - } - - def tearDown(self): - self.dictionary = None - - def test_subset(self): - self.assertDictHasSubset(self.dictionary, {'key-a': 'val-a'}) - - def test_equal(self): - self.assertDictHasSubset(self.dictionary, self.dictionary) - - def test_fail_not_set(self): - self.assertRaisesRegex( - AssertionError, - r'Expected.*key-c.*to have value.*val-c.*but was not in Dict', - self.assertDictHasSubset, - self.dictionary, - {'key-c': 'val-c'}) - - def test_fail_wrong_val(self): - self.assertRaisesRegex( - AssertionError, - r'Expected .*key-a.* to have value .*val-b.* but was .*val-a.*', - self.assertDictHasSubset, - self.dictionary, - {'key-a': 'val-b'}) - - -class DefaultReaderTest(ReaderTest): - - def test_readfile_unknown_extension(self): - with self.assertRaises(TypeError): - self.read_file(path='article_with_metadata.unknownextension') - - def test_readfile_path_metadata_implicit_dates(self): - test_file = 'article_with_metadata_implicit_dates.html' - page = self.read_file(path=test_file, DEFAULT_DATE='fs') - expected = { - 'date': SafeDatetime.fromtimestamp( - os.stat(_path(test_file)).st_mtime), - 'modified': SafeDatetime.fromtimestamp( - os.stat(_path(test_file)).st_mtime) - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_readfile_path_metadata_explicit_dates(self): - test_file = 'article_with_metadata_explicit_dates.html' - page = self.read_file(path=test_file, DEFAULT_DATE='fs') - expected = { - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'modified': SafeDatetime(2010, 12, 31, 23, 59) - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_readfile_path_metadata_implicit_date_explicit_modified(self): - test_file = 'article_with_metadata_implicit_date_explicit_modified.html' - page = self.read_file(path=test_file, DEFAULT_DATE='fs') - expected = { - 'date': SafeDatetime.fromtimestamp( - os.stat(_path(test_file)).st_mtime), - 'modified': SafeDatetime(2010, 12, 2, 10, 14), - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_readfile_path_metadata_explicit_date_implicit_modified(self): - test_file = 'article_with_metadata_explicit_date_implicit_modified.html' - page = self.read_file(path=test_file, DEFAULT_DATE='fs') - expected = { - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'modified': SafeDatetime.fromtimestamp( - os.stat(_path(test_file)).st_mtime) - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_find_empty_alt(self): - with patch('pelican.readers.logger') as log_mock: - content = ['', - ''] - - for tag in content: - readers.find_empty_alt(tag, '/test/path') - log_mock.warning.assert_called_with( - 'Empty alt attribute for image %s in %s', - 'test-image.png', - '/test/path', - extra={'limit_msg': - 'Other images have empty alt attributes'} - ) - - -class RstReaderTest(ReaderTest): - - def test_article_with_metadata(self): - page = self.read_file(path='article_with_metadata.rst') - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'This is a super article !', - 'summary': '

    Multi-line metadata should be' - ' supported\nas well as inline' - ' markup and stuff to "typogrify' - '"...

    \n', - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'modified': SafeDatetime(2010, 12, 2, 10, 20), - 'tags': ['foo', 'bar', 'foobar'], - 'custom_field': 'http://notmyidea.org', - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_capitalized_metadata(self): - page = self.read_file(path='article_with_capitalized_metadata.rst') - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'This is a super article !', - 'summary': '

    Multi-line metadata should be' - ' supported\nas well as inline' - ' markup and stuff to "typogrify' - '"...

    \n', - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'modified': SafeDatetime(2010, 12, 2, 10, 20), - 'tags': ['foo', 'bar', 'foobar'], - 'custom_field': 'http://notmyidea.org', - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_filename_metadata(self): - page = self.read_file( - path='2012-11-29_rst_w_filename_meta#foo-bar.rst', - FILENAME_METADATA=None) - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'Rst with filename metadata', - 'reader': 'rst', - } - self.assertDictHasSubset(page.metadata, expected) - - page = self.read_file( - path='2012-11-29_rst_w_filename_meta#foo-bar.rst', - FILENAME_METADATA=r'(?P\d{4}-\d{2}-\d{2}).*') - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'Rst with filename metadata', - 'date': SafeDatetime(2012, 11, 29), - 'reader': 'rst', - } - self.assertDictHasSubset(page.metadata, expected) - - page = self.read_file( - path='2012-11-29_rst_w_filename_meta#foo-bar.rst', - FILENAME_METADATA=( - r'(?P\d{4}-\d{2}-\d{2})' - r'_(?P.*)' - r'#(?P.*)-(?P.*)')) - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'Rst with filename metadata', - 'date': SafeDatetime(2012, 11, 29), - 'slug': 'rst_w_filename_meta', - 'mymeta': 'foo', - 'reader': 'rst', - } - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_optional_filename_metadata(self): - page = self.read_file( - path='2012-11-29_rst_w_filename_meta#foo-bar.rst', - FILENAME_METADATA=r'(?P\d{4}-\d{2}-\d{2})?') - expected = { - 'date': SafeDatetime(2012, 11, 29), - 'reader': 'rst', - } - self.assertDictHasSubset(page.metadata, expected) - - page = self.read_file( - path='article.rst', - FILENAME_METADATA=r'(?P\d{4}-\d{2}-\d{2})?') - expected = { - 'reader': 'rst', - } - self.assertDictHasSubset(page.metadata, expected) - self.assertNotIn('date', page.metadata, 'Date should not be set.') - - def test_article_metadata_key_lowercase(self): - # Keys of metadata should be lowercase. - reader = readers.RstReader(settings=get_settings()) - content, metadata = reader.read( - _path('article_with_uppercase_metadata.rst')) - - self.assertIn('category', metadata, 'Key should be lowercase.') - self.assertEqual('Yeah', metadata.get('category'), - 'Value keeps case.') - - def test_article_extra_path_metadata(self): - input_with_metadata = '2012-11-29_rst_w_filename_meta#foo-bar.rst' - page_metadata = self.read_file( - path=input_with_metadata, - FILENAME_METADATA=( - r'(?P\d{4}-\d{2}-\d{2})' - r'_(?P.*)' - r'#(?P.*)-(?P.*)' - ), - EXTRA_PATH_METADATA={ - input_with_metadata: { - 'key-1a': 'value-1a', - 'key-1b': 'value-1b' - } - } - ) - expected_metadata = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'Rst with filename metadata', - 'date': SafeDatetime(2012, 11, 29), - 'slug': 'rst_w_filename_meta', - 'mymeta': 'foo', - 'reader': 'rst', - 'key-1a': 'value-1a', - 'key-1b': 'value-1b' - } - self.assertDictHasSubset(page_metadata.metadata, expected_metadata) - - input_file_path_without_metadata = 'article.rst' - page_without_metadata = self.read_file( - path=input_file_path_without_metadata, - EXTRA_PATH_METADATA={ - input_file_path_without_metadata: { - 'author': 'Charlès Overwrite' - } - } - ) - expected_without_metadata = { - 'category': 'misc', - 'author': 'Charlès Overwrite', - 'title': 'Article title', - 'reader': 'rst', - } - self.assertDictHasSubset( - page_without_metadata.metadata, - expected_without_metadata) - - def test_article_extra_path_metadata_dont_overwrite(self): - # EXTRA_PATH_METADATA['author'] should get ignored - # since we don't overwrite already set values - input_file_path = '2012-11-29_rst_w_filename_meta#foo-bar.rst' - page = self.read_file( - path=input_file_path, - FILENAME_METADATA=( - r'(?P\d{4}-\d{2}-\d{2})' - r'_(?P.*)' - r'#(?P.*)-(?P.*)' - ), - EXTRA_PATH_METADATA={ - input_file_path: { - 'author': 'Charlès Overwrite', - 'key-1b': 'value-1b' - } - } - ) - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'Rst with filename metadata', - 'date': SafeDatetime(2012, 11, 29), - 'slug': 'rst_w_filename_meta', - 'mymeta': 'foo', - 'reader': 'rst', - 'key-1b': 'value-1b' - } - self.assertDictHasSubset(page.metadata, expected) - - def test_article_extra_path_metadata_recurse(self): - parent = "TestCategory" - notparent = "TestCategory/article" - path = "TestCategory/article_without_category.rst" - - epm = { - parent: {'epmr_inherit': parent, - 'epmr_override': parent, }, - notparent: {'epmr_bogus': notparent}, - path: {'epmr_override': path, }, - } - expected_metadata = { - 'epmr_inherit': parent, - 'epmr_override': path, - } - - page = self.read_file(path=path, EXTRA_PATH_METADATA=epm) - self.assertDictHasSubset(page.metadata, expected_metadata) - - # Make sure vars aren't getting "inherited" by mistake... - path = "article.rst" - page = self.read_file(path=path, EXTRA_PATH_METADATA=epm) - for k in expected_metadata.keys(): - self.assertNotIn(k, page.metadata) - - # Same, but for edge cases where one file's name is a prefix of - # another. - path = "TestCategory/article_without_category.rst" - page = self.read_file(path=path, EXTRA_PATH_METADATA=epm) - for k in epm[notparent].keys(): - self.assertNotIn(k, page.metadata) - - def test_typogrify(self): - # if nothing is specified in the settings, the content should be - # unmodified - page = self.read_file(path='article.rst') - expected = ('

    THIS is some content. With some stuff to ' - '"typogrify"...

    \n

    Now with added ' - 'support for ' - 'TLA.

    \n') - - self.assertEqual(page.content, expected) - - try: - # otherwise, typogrify should be applied - page = self.read_file(path='article.rst', TYPOGRIFY=True) - expected = ( - '

    THIS is some content. ' - 'With some stuff to “typogrify”…

    \n' - '

    Now with added support for TLA.

    \n') - - self.assertEqual(page.content, expected) - except ImportError: - return unittest.skip('need the typogrify distribution') - - def test_typogrify_summary(self): - # if nothing is specified in the settings, the summary should be - # unmodified - page = self.read_file(path='article_with_metadata.rst') - expected = ('

    Multi-line metadata should be' - ' supported\nas well as inline' - ' markup and stuff to "typogrify' - '"...

    \n') - - self.assertEqual(page.metadata['summary'], expected) - - try: - # otherwise, typogrify should be applied - page = self.read_file(path='article_with_metadata.rst', - TYPOGRIFY=True) - expected = ('

    Multi-line metadata should be' - ' supported\nas well as inline' - ' markup and stuff to “typogrify' - '”…

    \n') - - self.assertEqual(page.metadata['summary'], expected) - except ImportError: - return unittest.skip('need the typogrify distribution') - - def test_typogrify_ignore_tags(self): - try: - # typogrify should be able to ignore user specified tags, - # but tries to be clever with widont extension - page = self.read_file(path='article.rst', TYPOGRIFY=True, - TYPOGRIFY_IGNORE_TAGS=['p']) - expected = ('

    THIS is some content. With some stuff to ' - '"typogrify"...

    \n

    Now with added ' - 'support for ' - 'TLA.

    \n') - - self.assertEqual(page.content, expected) - - # typogrify should ignore code blocks by default because - # code blocks are composed inside the pre tag - page = self.read_file(path='article_with_code_block.rst', - TYPOGRIFY=True) - - expected = ('

    An article with some code

    \n' - '
    '
    -                        'x'
    -                        ' &'
    -                        ' y\n
    \n' - '

    A block quote:

    \n
    \nx ' - '& y
    \n' - '

    Normal:\nx' - ' &' - ' y' - '

    \n') - - self.assertEqual(page.content, expected) - - # instruct typogrify to also ignore blockquotes - page = self.read_file(path='article_with_code_block.rst', - TYPOGRIFY=True, - TYPOGRIFY_IGNORE_TAGS=['blockquote']) - - expected = ('

    An article with some code

    \n' - '
    '
    -                        'x'
    -                        ' &'
    -                        ' y\n
    \n' - '

    A block quote:

    \n
    \nx ' - '& y
    \n' - '

    Normal:\nx' - ' &' - ' y' - '

    \n') - - self.assertEqual(page.content, expected) - except ImportError: - return unittest.skip('need the typogrify distribution') - except TypeError: - return unittest.skip('need typogrify version 2.0.4 or later') - - def test_article_with_multiple_authors(self): - page = self.read_file(path='article_with_multiple_authors.rst') - expected = { - 'authors': ['First Author', 'Second Author'] - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_multiple_authors_semicolon(self): - page = self.read_file( - path='article_with_multiple_authors_semicolon.rst') - expected = { - 'authors': ['Author, First', 'Author, Second'] - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_multiple_authors_list(self): - page = self.read_file(path='article_with_multiple_authors_list.rst') - expected = { - 'authors': ['Author, First', 'Author, Second'] - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_default_date_formats(self): - tuple_date = self.read_file(path='article.rst', - DEFAULT_DATE=(2012, 5, 1)) - string_date = self.read_file(path='article.rst', - DEFAULT_DATE='2012-05-01') - - self.assertEqual(tuple_date.metadata['date'], - string_date.metadata['date']) - - def test_parse_error(self): - # Verify that it raises an Exception, not nothing and not SystemExit or - # some such - with self.assertRaisesRegex(Exception, "underline too short"): - self.read_file(path='../parse_error/parse_error.rst') - - def test_typogrify_dashes_config(self): - # Test default config - page = self.read_file( - path='article_with_typogrify_dashes.rst', - TYPOGRIFY=True, - TYPOGRIFY_DASHES='default') - expected = "

    One: -; Two: —; Three: —-

    \n" - expected_title = "One -, two —, three —- dashes!" - - self.assertEqual(page.content, expected) - self.assertEqual(page.title, expected_title) - - # Test 'oldschool' variant - page = self.read_file( - path='article_with_typogrify_dashes.rst', - TYPOGRIFY=True, - TYPOGRIFY_DASHES='oldschool') - expected = "

    One: -; Two: –; Three: —

    \n" - expected_title = "One -, two –, three — dashes!" - - self.assertEqual(page.content, expected) - self.assertEqual(page.title, expected_title) - - # Test 'oldschool_inverted' variant - page = self.read_file( - path='article_with_typogrify_dashes.rst', - TYPOGRIFY=True, - TYPOGRIFY_DASHES='oldschool_inverted') - expected = "

    One: -; Two: —; Three: –

    \n" - expected_title = "One -, two —, three – dashes!" - - self.assertEqual(page.content, expected) - self.assertEqual(page.title, expected_title) - - -@unittest.skipUnless(readers.Markdown, "markdown isn't installed") -class MdReaderTest(ReaderTest): - - def test_article_with_metadata(self): - reader = readers.MarkdownReader(settings=get_settings()) - content, metadata = reader.read( - _path('article_with_md_extension.md')) - expected = { - 'category': 'test', - 'title': 'Test md File', - 'summary': '

    I have a lot to test

    ', - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'modified': SafeDatetime(2010, 12, 2, 10, 20), - 'tags': ['foo', 'bar', 'foobar'], - } - self.assertDictHasSubset(metadata, expected) - - content, metadata = reader.read( - _path('article_with_markdown_and_nonascii_summary.md')) - expected = { - 'title': 'マックOS X 10.8でパイソンとVirtualenvをインストールと設定', - 'summary': '

    パイソンとVirtualenvをまっくでインストールする方法について明確に説明します。

    ', - 'category': '指導書', - 'date': SafeDatetime(2012, 12, 20), - 'modified': SafeDatetime(2012, 12, 22), - 'tags': ['パイソン', 'マック'], - 'slug': 'python-virtualenv-on-mac-osx-mountain-lion-10.8', - } - self.assertDictHasSubset(metadata, expected) - - def test_article_with_footnote(self): - settings = get_settings() - ec = settings['MARKDOWN']['extension_configs'] - ec['markdown.extensions.footnotes'] = {'SEPARATOR': '-'} - reader = readers.MarkdownReader(settings) - content, metadata = reader.read( - _path('article_with_markdown_and_footnote.md')) - expected_content = ( - '

    This is some content' - '1' - ' with some footnotes' - '2

    \n' - - '
    \n' - '
    \n
      \n
    1. \n' - '

      Numbered footnote ' - '

      \n' - '
    2. \n
    3. \n' - '

      Named footnote ' - '

      \n' - '
    4. \n
    \n
    ') - expected_metadata = { - 'title': 'Article with markdown containing footnotes', - 'summary': ( - '

    Summary with inline markup ' - 'should be supported.

    '), - 'date': SafeDatetime(2012, 10, 31), - 'modified': SafeDatetime(2012, 11, 1), - 'multiline': [ - 'Line Metadata should be handle properly.', - 'See syntax of Meta-Data extension of ' - 'Python Markdown package:', - 'If a line is indented by 4 or more spaces,', - 'that line is assumed to be an additional line of the value', - 'for the previous keyword.', - 'A keyword may have as many lines as desired.', - ] - } - self.assertEqual(content, expected_content) - self.assertDictHasSubset(metadata, expected_metadata) - - def test_article_with_file_extensions(self): - reader = readers.MarkdownReader(settings=get_settings()) - # test to ensure the md file extension is being processed by the - # correct reader - content, metadata = reader.read( - _path('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) - # test to ensure the mkd file extension is being processed by the - # correct reader - content, metadata = reader.read( - _path('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) - # test to ensure the markdown file extension is being processed by the - # correct reader - content, metadata = reader.read( - _path('article_with_markdown_extension.markdown')) - expected = ("

    Test Markdown File Header

    \n

    Used for pelican" - " test

    \n

    This is another markdown test file. Uses" - " the markdown extension.

    ") - self.assertEqual(content, expected) - # test to ensure the mdown file extension is being processed by the - # correct reader - content, metadata = reader.read( - _path('article_with_mdown_extension.mdown')) - expected = ("

    Test Markdown File Header

    \n

    Used for pelican" - " test

    \n

    This is another markdown test file. Uses" - " the mdown extension.

    ") - self.assertEqual(content, expected) - - def test_article_with_markdown_markup_extension(self): - # test to ensure the markdown markup extension is being processed as - # expected - page = self.read_file( - path='article_with_markdown_markup_extensions.md', - MARKDOWN={ - 'extension_configs': { - 'markdown.extensions.toc': {}, - 'markdown.extensions.codehilite': {}, - 'markdown.extensions.extra': {} - } - } - ) - expected = ('
    \n' - '\n' - '
    \n' - '

    Level1

    \n' - '

    Level2

    ') - - self.assertEqual(page.content, expected) - - def test_article_with_filename_metadata(self): - page = self.read_file( - path='2012-11-30_md_w_filename_meta#foo-bar.md', - FILENAME_METADATA=None) - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - } - self.assertDictHasSubset(page.metadata, expected) - - page = self.read_file( - path='2012-11-30_md_w_filename_meta#foo-bar.md', - FILENAME_METADATA=r'(?P\d{4}-\d{2}-\d{2}).*') - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'date': SafeDatetime(2012, 11, 30), - } - self.assertDictHasSubset(page.metadata, expected) - - page = self.read_file( - path='2012-11-30_md_w_filename_meta#foo-bar.md', - FILENAME_METADATA=( - r'(?P\d{4}-\d{2}-\d{2})' - r'_(?P.*)' - r'#(?P.*)-(?P.*)')) - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'date': SafeDatetime(2012, 11, 30), - 'slug': 'md_w_filename_meta', - 'mymeta': 'foo', - } - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_optional_filename_metadata(self): - page = self.read_file( - path='2012-11-30_md_w_filename_meta#foo-bar.md', - FILENAME_METADATA=r'(?P\d{4}-\d{2}-\d{2})?') - expected = { - 'date': SafeDatetime(2012, 11, 30), - 'reader': 'markdown', - } - self.assertDictHasSubset(page.metadata, expected) - - page = self.read_file( - path='empty.md', - FILENAME_METADATA=r'(?P\d{4}-\d{2}-\d{2})?') - expected = { - 'reader': 'markdown', - } - self.assertDictHasSubset(page.metadata, expected) - self.assertNotIn('date', page.metadata, 'Date should not be set.') - - def test_duplicate_tags_or_authors_are_removed(self): - reader = readers.MarkdownReader(settings=get_settings()) - content, metadata = reader.read( - _path('article_with_duplicate_tags_authors.md')) - expected = { - 'tags': ['foo', 'bar', 'foobar'], - 'authors': ['Author, First', 'Author, Second'], - } - self.assertDictHasSubset(metadata, expected) - - def test_metadata_not_parsed_for_metadata(self): - settings = get_settings() - settings['FORMATTED_FIELDS'] = ['summary'] - - reader = readers.MarkdownReader(settings=settings) - content, metadata = reader.read( - _path('article_with_markdown_and_nested_metadata.md')) - expected = { - 'title': 'Article with markdown and nested summary metadata', - 'summary': '

    Test: This metadata value looks like metadata

    ', - } - self.assertDictHasSubset(metadata, expected) - - def test_empty_file(self): - reader = readers.MarkdownReader(settings=get_settings()) - content, metadata = reader.read( - _path('empty.md')) - - self.assertEqual(metadata, {}) - self.assertEqual(content, '') - - def test_empty_file_with_bom(self): - reader = readers.MarkdownReader(settings=get_settings()) - content, metadata = reader.read( - _path('empty_with_bom.md')) - - self.assertEqual(metadata, {}) - self.assertEqual(content, '') - - def test_typogrify_dashes_config(self): - # Test default config - page = self.read_file( - path='article_with_typogrify_dashes.md', - TYPOGRIFY=True, - TYPOGRIFY_DASHES='default') - expected = "

    One: -; Two: —; Three: —-

    " - expected_title = "One -, two —, three —- dashes!" - - self.assertEqual(page.content, expected) - self.assertEqual(page.title, expected_title) - - # Test 'oldschool' variant - page = self.read_file( - path='article_with_typogrify_dashes.md', - TYPOGRIFY=True, - TYPOGRIFY_DASHES='oldschool') - expected = "

    One: -; Two: –; Three: —

    " - expected_title = "One -, two –, three — dashes!" - - self.assertEqual(page.content, expected) - self.assertEqual(page.title, expected_title) - - # Test 'oldschool_inverted' variant - page = self.read_file( - path='article_with_typogrify_dashes.md', - TYPOGRIFY=True, - TYPOGRIFY_DASHES='oldschool_inverted') - expected = "

    One: -; Two: —; Three: –

    " - expected_title = "One -, two —, three – dashes!" - - self.assertEqual(page.content, expected) - self.assertEqual(page.title, expected_title) - - -class HTMLReaderTest(ReaderTest): - def test_article_with_comments(self): - page = self.read_file(path='article_with_comments.html') - - self.assertEqual(''' - Body content - - ''', page.content) - - def test_article_with_keywords(self): - page = self.read_file(path='article_with_keywords.html') - expected = { - 'tags': ['foo', 'bar', 'foobar'], - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_metadata(self): - page = self.read_file(path='article_with_metadata.html') - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'This is a super article !', - 'summary': 'Summary and stuff', - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'tags': ['foo', 'bar', 'foobar'], - 'custom_field': 'http://notmyidea.org', - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_multiple_similar_metadata_tags(self): - page = self.read_file(path='article_with_multiple_metadata_tags.html') - expected = { - 'custom_field': ['https://getpelican.com', 'https://www.eff.org'], - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_multiple_authors(self): - page = self.read_file(path='article_with_multiple_authors.html') - expected = { - 'authors': ['First Author', 'Second Author'] - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_metadata_and_contents_attrib(self): - page = self.read_file(path='article_with_metadata_and_contents.html') - expected = { - 'category': 'yeah', - 'author': 'Alexis Métaireau', - 'title': 'This is a super article !', - 'summary': 'Summary and stuff', - 'date': SafeDatetime(2010, 12, 2, 10, 14), - 'tags': ['foo', 'bar', 'foobar'], - 'custom_field': 'http://notmyidea.org', - } - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_null_attributes(self): - page = self.read_file(path='article_with_null_attributes.html') - - self.assertEqual(''' - Ensure that empty attributes are copied properly. - - ''', page.content) - - def test_article_with_attributes_containing_double_quotes(self): - page = self.read_file(path='article_with_attributes_containing_' + - 'double_quotes.html') - self.assertEqual(''' - Ensure that if an attribute value contains a double quote, it is - surrounded with single quotes, otherwise with double quotes. - Span content - Span content - Span content - ''', page.content) - - def test_article_metadata_key_lowercase(self): - # Keys of metadata should be lowercase. - page = self.read_file(path='article_with_uppercase_metadata.html') - - # Key should be lowercase - self.assertIn('category', page.metadata, 'Key should be lowercase.') - - # Value should keep cases - self.assertEqual('Yeah', page.metadata.get('category')) - - def test_article_with_nonconformant_meta_tags(self): - page = self.read_file(path='article_with_nonconformant_meta_tags.html') - expected = { - 'summary': 'Summary and stuff', - 'title': 'Article with Nonconformant HTML meta tags', - } - - self.assertDictHasSubset(page.metadata, expected) - - def test_article_with_inline_svg(self): - page = self.read_file(path='article_with_inline_svg.html') - expected = { - 'title': 'Article with an inline SVG', - } - self.assertDictHasSubset(page.metadata, expected) diff --git a/pelican/tests/test_rstdirectives.py b/pelican/tests/test_rstdirectives.py deleted file mode 100644 index 6b733971..00000000 --- a/pelican/tests/test_rstdirectives.py +++ /dev/null @@ -1,31 +0,0 @@ -from unittest.mock import Mock - -from pelican.tests.support import unittest - - -class Test_abbr_role(unittest.TestCase): - def call_it(self, text): - from pelican.rstdirectives import abbr_role - rawtext = text - lineno = 42 - inliner = Mock(name='inliner') - nodes, system_messages = abbr_role( - 'abbr', rawtext, text, lineno, inliner) - self.assertEqual(system_messages, []) - self.assertEqual(len(nodes), 1) - return nodes[0] - - def test(self): - node = self.call_it("Abbr (Abbreviation)") - self.assertEqual(node.astext(), "Abbr") - self.assertEqual(node['explanation'], "Abbreviation") - - def test_newlines_in_explanation(self): - node = self.call_it("CUL (See you\nlater)") - self.assertEqual(node.astext(), "CUL") - self.assertEqual(node['explanation'], "See you\nlater") - - def test_newlines_in_abbr(self): - node = self.call_it("US of\nA \n (USA)") - self.assertEqual(node.astext(), "US of\nA") - self.assertEqual(node['explanation'], "USA") diff --git a/pelican/tests/test_server.py b/pelican/tests/test_server.py deleted file mode 100644 index 307a3e10..00000000 --- a/pelican/tests/test_server.py +++ /dev/null @@ -1,56 +0,0 @@ -import os -from io import BytesIO -from shutil import rmtree -from tempfile import mkdtemp - -from pelican.server import ComplexHTTPRequestHandler -from pelican.tests.support import unittest - - -class MockRequest: - def makefile(self, *args, **kwargs): - return BytesIO(b"") - - -class MockServer: - pass - - -class TestServer(unittest.TestCase): - - def setUp(self): - self.server = MockServer() - self.temp_output = mkdtemp(prefix='pelicantests.') - self.old_cwd = os.getcwd() - os.chdir(self.temp_output) - - def tearDown(self): - os.chdir(self.old_cwd) - rmtree(self.temp_output) - - def test_get_path_that_exists(self): - handler = ComplexHTTPRequestHandler(MockRequest(), ('0.0.0.0', 8888), - self.server) - handler.base_path = self.temp_output - - open(os.path.join(self.temp_output, 'foo.html'), 'a').close() - os.mkdir(os.path.join(self.temp_output, 'foo')) - open(os.path.join(self.temp_output, 'foo', 'index.html'), 'a').close() - - os.mkdir(os.path.join(self.temp_output, 'bar')) - open(os.path.join(self.temp_output, 'bar', 'index.html'), 'a').close() - - os.mkdir(os.path.join(self.temp_output, 'baz')) - - for suffix in ['', '/']: - path = handler.get_path_that_exists('foo' + suffix) - self.assertEqual(path, 'foo.html') - - path = handler.get_path_that_exists('bar' + suffix) - self.assertEqual(path, 'bar/index.html') - - path = handler.get_path_that_exists('baz' + suffix) - self.assertEqual(path, 'baz/') - - path = handler.get_path_that_exists('quux' + suffix) - self.assertIsNone(path) diff --git a/pelican/tests/test_settings.py b/pelican/tests/test_settings.py deleted file mode 100644 index 83203ae5..00000000 --- a/pelican/tests/test_settings.py +++ /dev/null @@ -1,321 +0,0 @@ -import copy -import locale -import os -from os.path import abspath, dirname, join -from sys import platform - - -from pelican.settings import (DEFAULT_CONFIG, DEFAULT_THEME, - _printf_s_to_format_field, - coerce_overrides, configure_settings, - handle_deprecated_settings, read_settings) -from pelican.tests.support import unittest - - -class TestSettingsConfiguration(unittest.TestCase): - """Provided a file, it should read it, replace the default values, - append new values to the settings (if any), and apply basic settings - optimizations. - """ - def setUp(self): - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - self.PATH = abspath(dirname(__file__)) - default_conf = join(self.PATH, 'default_conf.py') - self.settings = read_settings(default_conf) - - def tearDown(self): - locale.setlocale(locale.LC_ALL, self.old_locale) - - def test_overwrite_existing_settings(self): - self.assertEqual(self.settings.get('SITENAME'), "Alexis' log") - self.assertEqual( - self.settings.get('SITEURL'), - 'http://blog.notmyidea.org') - - def test_keep_default_settings(self): - # Keep default settings if not defined. - self.assertEqual( - self.settings.get('DEFAULT_CATEGORY'), - DEFAULT_CONFIG['DEFAULT_CATEGORY']) - - def test_dont_copy_small_keys(self): - # Do not copy keys not in caps. - self.assertNotIn('foobar', self.settings) - - def test_read_empty_settings(self): - # Ensure an empty settings file results in default settings. - settings = read_settings(None) - expected = copy.deepcopy(DEFAULT_CONFIG) - # Added by configure settings - expected['FEED_DOMAIN'] = '' - expected['ARTICLE_EXCLUDES'] = ['pages'] - expected['PAGE_EXCLUDES'] = [''] - self.maxDiff = None - self.assertDictEqual(settings, expected) - - def test_settings_return_independent(self): - # Make sure that the results from one settings call doesn't - # effect past or future instances. - self.PATH = abspath(dirname(__file__)) - default_conf = join(self.PATH, 'default_conf.py') - settings = read_settings(default_conf) - settings['SITEURL'] = 'new-value' - new_settings = read_settings(default_conf) - self.assertNotEqual(new_settings['SITEURL'], settings['SITEURL']) - - def test_defaults_not_overwritten(self): - # This assumes 'SITENAME': 'A Pelican Blog' - settings = read_settings(None) - settings['SITENAME'] = 'Not a Pelican Blog' - self.assertNotEqual(settings['SITENAME'], DEFAULT_CONFIG['SITENAME']) - - def test_static_path_settings_safety(self): - # Disallow static paths from being strings - settings = { - 'STATIC_PATHS': 'foo/bar', - 'THEME_STATIC_PATHS': 'bar/baz', - # These 4 settings are required to run configure_settings - 'PATH': '.', - 'THEME': DEFAULT_THEME, - 'SITEURL': 'http://blog.notmyidea.org/', - 'LOCALE': '', - } - configure_settings(settings) - self.assertEqual( - settings['STATIC_PATHS'], - DEFAULT_CONFIG['STATIC_PATHS']) - self.assertEqual( - settings['THEME_STATIC_PATHS'], - DEFAULT_CONFIG['THEME_STATIC_PATHS']) - - def test_configure_settings(self): - # Manipulations to settings should be applied correctly. - settings = { - 'SITEURL': 'http://blog.notmyidea.org/', - 'LOCALE': '', - 'PATH': os.curdir, - 'THEME': DEFAULT_THEME, - } - configure_settings(settings) - - # SITEURL should not have a trailing slash - self.assertEqual(settings['SITEURL'], 'http://blog.notmyidea.org') - - # FEED_DOMAIN, if undefined, should default to SITEURL - self.assertEqual(settings['FEED_DOMAIN'], 'http://blog.notmyidea.org') - - settings['FEED_DOMAIN'] = 'http://feeds.example.com' - configure_settings(settings) - self.assertEqual(settings['FEED_DOMAIN'], 'http://feeds.example.com') - - def test_theme_settings_exceptions(self): - settings = self.settings - - # Check that theme lookup in "pelican/themes" functions as expected - settings['THEME'] = os.path.split(settings['THEME'])[1] - configure_settings(settings) - self.assertEqual(settings['THEME'], DEFAULT_THEME) - - # Check that non-existent theme raises exception - settings['THEME'] = 'foo' - self.assertRaises(Exception, configure_settings, settings) - - def test_deprecated_dir_setting(self): - settings = self.settings - - settings['ARTICLE_DIR'] = 'foo' - settings['PAGE_DIR'] = 'bar' - - settings = handle_deprecated_settings(settings) - - self.assertEqual(settings['ARTICLE_PATHS'], ['foo']) - self.assertEqual(settings['PAGE_PATHS'], ['bar']) - - with self.assertRaises(KeyError): - settings['ARTICLE_DIR'] - settings['PAGE_DIR'] - - # locale.getdefaultlocale() is broken on Windows - # See: https://bugs.python.org/issue37945 - @unittest.skipIf(platform == 'win32', "Doesn't work on Windows") - def test_default_encoding(self): - # Test that the default locale is set if not specified in settings - - # Reset locale to Python's default locale - locale.setlocale(locale.LC_ALL, 'C') - self.assertEqual(self.settings['LOCALE'], DEFAULT_CONFIG['LOCALE']) - - configure_settings(self.settings) - self.assertEqual(locale.getlocale(), locale.getdefaultlocale()) - - def test_invalid_settings_throw_exception(self): - # Test that the path name is valid - - # test that 'PATH' is set - settings = { - } - - self.assertRaises(Exception, configure_settings, settings) - - # Test that 'PATH' is valid - settings['PATH'] = '' - self.assertRaises(Exception, configure_settings, settings) - - # Test nonexistent THEME - settings['PATH'] = os.curdir - settings['THEME'] = 'foo' - - self.assertRaises(Exception, configure_settings, settings) - - def test__printf_s_to_format_field(self): - for s in ('%s', '{%s}', '{%s'): - option = 'foo/{}/bar.baz'.format(s) - result = _printf_s_to_format_field(option, 'slug') - expected = option % 'qux' - found = result.format(slug='qux') - self.assertEqual(expected, found) - - def test_deprecated_extra_templates_paths(self): - settings = self.settings - settings['EXTRA_TEMPLATES_PATHS'] = ['/foo/bar', '/ha'] - - settings = handle_deprecated_settings(settings) - - self.assertEqual(settings['THEME_TEMPLATES_OVERRIDES'], - ['/foo/bar', '/ha']) - self.assertNotIn('EXTRA_TEMPLATES_PATHS', settings) - - def test_deprecated_paginated_direct_templates(self): - settings = self.settings - settings['PAGINATED_DIRECT_TEMPLATES'] = ['index', 'archives'] - settings['PAGINATED_TEMPLATES'] = {'index': 10, 'category': None} - settings = handle_deprecated_settings(settings) - self.assertEqual(settings['PAGINATED_TEMPLATES'], - {'index': 10, 'category': None, 'archives': None}) - self.assertNotIn('PAGINATED_DIRECT_TEMPLATES', settings) - - def test_deprecated_paginated_direct_templates_from_file(self): - # This is equivalent to reading a settings file that has - # PAGINATED_DIRECT_TEMPLATES defined but no PAGINATED_TEMPLATES. - settings = read_settings(None, override={ - 'PAGINATED_DIRECT_TEMPLATES': ['index', 'archives'] - }) - self.assertEqual(settings['PAGINATED_TEMPLATES'], { - 'archives': None, - 'author': None, - 'index': None, - 'category': None, - 'tag': None}) - self.assertNotIn('PAGINATED_DIRECT_TEMPLATES', settings) - - def test_theme_and_extra_templates_exception(self): - settings = self.settings - settings['EXTRA_TEMPLATES_PATHS'] = ['/ha'] - settings['THEME_TEMPLATES_OVERRIDES'] = ['/foo/bar'] - - self.assertRaises(Exception, handle_deprecated_settings, settings) - - def test_slug_and_slug_regex_substitutions_exception(self): - settings = {} - settings['SLUG_REGEX_SUBSTITUTIONS'] = [('C++', 'cpp')] - settings['TAG_SUBSTITUTIONS'] = [('C#', 'csharp')] - - self.assertRaises(Exception, handle_deprecated_settings, settings) - - def test_deprecated_slug_substitutions(self): - default_slug_regex_subs = self.settings['SLUG_REGEX_SUBSTITUTIONS'] - - # If no deprecated setting is set, don't set new ones - settings = {} - settings = handle_deprecated_settings(settings) - self.assertNotIn('SLUG_REGEX_SUBSTITUTIONS', settings) - self.assertNotIn('TAG_REGEX_SUBSTITUTIONS', settings) - self.assertNotIn('CATEGORY_REGEX_SUBSTITUTIONS', settings) - self.assertNotIn('AUTHOR_REGEX_SUBSTITUTIONS', settings) - - # If SLUG_SUBSTITUTIONS is set, set {SLUG, AUTHOR}_REGEX_SUBSTITUTIONS - # correctly, don't set {CATEGORY, TAG}_REGEX_SUBSTITUTIONS - settings = {} - settings['SLUG_SUBSTITUTIONS'] = [('C++', 'cpp')] - settings = handle_deprecated_settings(settings) - self.assertEqual(settings.get('SLUG_REGEX_SUBSTITUTIONS'), - [(r'C\+\+', 'cpp')] + default_slug_regex_subs) - self.assertNotIn('TAG_REGEX_SUBSTITUTIONS', settings) - self.assertNotIn('CATEGORY_REGEX_SUBSTITUTIONS', settings) - self.assertEqual(settings.get('AUTHOR_REGEX_SUBSTITUTIONS'), - default_slug_regex_subs) - - # If {CATEGORY, TAG, AUTHOR}_SUBSTITUTIONS are set, set - # {CATEGORY, TAG, AUTHOR}_REGEX_SUBSTITUTIONS correctly, don't set - # SLUG_REGEX_SUBSTITUTIONS - settings = {} - settings['TAG_SUBSTITUTIONS'] = [('C#', 'csharp')] - settings['CATEGORY_SUBSTITUTIONS'] = [('C#', 'csharp')] - settings['AUTHOR_SUBSTITUTIONS'] = [('Alexander Todorov', 'atodorov')] - settings = handle_deprecated_settings(settings) - self.assertNotIn('SLUG_REGEX_SUBSTITUTIONS', settings) - self.assertEqual(settings['TAG_REGEX_SUBSTITUTIONS'], - [(r'C\#', 'csharp')] + default_slug_regex_subs) - self.assertEqual(settings['CATEGORY_REGEX_SUBSTITUTIONS'], - [(r'C\#', 'csharp')] + default_slug_regex_subs) - self.assertEqual(settings['AUTHOR_REGEX_SUBSTITUTIONS'], - [(r'Alexander\ Todorov', 'atodorov')] + - default_slug_regex_subs) - - # If {SLUG, CATEGORY, TAG, AUTHOR}_SUBSTITUTIONS are set, set - # {SLUG, CATEGORY, TAG, AUTHOR}_REGEX_SUBSTITUTIONS correctly - settings = {} - settings['SLUG_SUBSTITUTIONS'] = [('C++', 'cpp')] - settings['TAG_SUBSTITUTIONS'] = [('C#', 'csharp')] - settings['CATEGORY_SUBSTITUTIONS'] = [('C#', 'csharp')] - settings['AUTHOR_SUBSTITUTIONS'] = [('Alexander Todorov', 'atodorov')] - settings = handle_deprecated_settings(settings) - self.assertEqual(settings['TAG_REGEX_SUBSTITUTIONS'], - [(r'C\+\+', 'cpp')] + [(r'C\#', 'csharp')] + - default_slug_regex_subs) - self.assertEqual(settings['CATEGORY_REGEX_SUBSTITUTIONS'], - [(r'C\+\+', 'cpp')] + [(r'C\#', 'csharp')] + - default_slug_regex_subs) - self.assertEqual(settings['AUTHOR_REGEX_SUBSTITUTIONS'], - [(r'Alexander\ Todorov', 'atodorov')] + - default_slug_regex_subs) - - # Handle old 'skip' flags correctly - settings = {} - settings['SLUG_SUBSTITUTIONS'] = [('C++', 'cpp', True)] - settings['AUTHOR_SUBSTITUTIONS'] = [('Alexander Todorov', 'atodorov', - False)] - settings = handle_deprecated_settings(settings) - self.assertEqual(settings.get('SLUG_REGEX_SUBSTITUTIONS'), - [(r'C\+\+', 'cpp')] + - [(r'(?u)\A\s*', ''), (r'(?u)\s*\Z', '')]) - self.assertEqual(settings['AUTHOR_REGEX_SUBSTITUTIONS'], - [(r'Alexander\ Todorov', 'atodorov')] + - default_slug_regex_subs) - - def test_deprecated_slug_substitutions_from_file(self): - # This is equivalent to reading a settings file that has - # SLUG_SUBSTITUTIONS defined but no SLUG_REGEX_SUBSTITUTIONS. - settings = read_settings(None, override={ - 'SLUG_SUBSTITUTIONS': [('C++', 'cpp')] - }) - self.assertEqual(settings['SLUG_REGEX_SUBSTITUTIONS'], - [(r'C\+\+', 'cpp')] + - self.settings['SLUG_REGEX_SUBSTITUTIONS']) - self.assertNotIn('SLUG_SUBSTITUTIONS', settings) - - def test_coerce_overrides(self): - overrides = coerce_overrides({ - 'ARTICLE_EXCLUDES': '["testexcl"]', - 'READERS': '{"foo": "bar"}', - 'STATIC_EXCLUDE_SOURCES': 'true', - 'THEME_STATIC_DIR': 'theme', - }) - expected = { - 'ARTICLE_EXCLUDES': ["testexcl"], - 'READERS': {"foo": "bar"}, - 'STATIC_EXCLUDE_SOURCES': True, - 'THEME_STATIC_DIR': 'theme', - } - self.assertDictEqual(overrides, expected) diff --git a/pelican/tests/test_testsuite.py b/pelican/tests/test_testsuite.py deleted file mode 100644 index fa930139..00000000 --- a/pelican/tests/test_testsuite.py +++ /dev/null @@ -1,10 +0,0 @@ -import warnings - -from pelican.tests.support import unittest - - -class TestSuiteTest(unittest.TestCase): - - def test_error_on_warning(self): - with self.assertRaises(UserWarning): - warnings.warn('test warning') diff --git a/pelican/tests/test_urlwrappers.py b/pelican/tests/test_urlwrappers.py deleted file mode 100644 index 66ae1524..00000000 --- a/pelican/tests/test_urlwrappers.py +++ /dev/null @@ -1,85 +0,0 @@ -from pelican.tests.support import unittest -from pelican.urlwrappers import Author, Category, Tag, URLWrapper - - -class TestURLWrapper(unittest.TestCase): - def test_ordering(self): - # URLWrappers are sorted by name - wrapper_a = URLWrapper(name='first', settings={}) - wrapper_b = URLWrapper(name='last', settings={}) - self.assertFalse(wrapper_a > wrapper_b) - self.assertFalse(wrapper_a >= wrapper_b) - self.assertFalse(wrapper_a == wrapper_b) - self.assertTrue(wrapper_a != wrapper_b) - self.assertTrue(wrapper_a <= wrapper_b) - self.assertTrue(wrapper_a < wrapper_b) - wrapper_b.name = 'first' - self.assertFalse(wrapper_a > wrapper_b) - self.assertTrue(wrapper_a >= wrapper_b) - self.assertTrue(wrapper_a == wrapper_b) - self.assertFalse(wrapper_a != wrapper_b) - self.assertTrue(wrapper_a <= wrapper_b) - self.assertFalse(wrapper_a < wrapper_b) - wrapper_a.name = 'last' - self.assertTrue(wrapper_a > wrapper_b) - self.assertTrue(wrapper_a >= wrapper_b) - self.assertFalse(wrapper_a == wrapper_b) - self.assertTrue(wrapper_a != wrapper_b) - self.assertFalse(wrapper_a <= wrapper_b) - self.assertFalse(wrapper_a < wrapper_b) - - def test_equality(self): - tag = Tag('test', settings={}) - cat = Category('test', settings={}) - author = Author('test', settings={}) - - # same name, but different class - self.assertNotEqual(tag, cat) - self.assertNotEqual(tag, author) - - # should be equal vs text representing the same name - self.assertEqual(tag, 'test') - - # should not be equal vs binary - self.assertNotEqual(tag, b'test') - - # Tags describing the same should be equal - tag_equal = Tag('Test', settings={}) - self.assertEqual(tag, tag_equal) - - # Author describing the same should be equal - author_equal = Author('Test', settings={}) - self.assertEqual(author, author_equal) - - cat_ascii = Category('指導書', settings={}) - self.assertEqual(cat_ascii, 'zhi dao shu') - - def test_slugify_with_substitutions_and_dots(self): - tag = Tag('Tag Dot', settings={'TAG_REGEX_SUBSTITUTIONS': [ - ('Tag Dot', 'tag.dot'), - ]}) - cat = Category('Category Dot', - settings={'CATEGORY_REGEX_SUBSTITUTIONS': [ - ('Category Dot', 'cat.dot'), - ]}) - - self.assertEqual(tag.slug, 'tag.dot') - self.assertEqual(cat.slug, 'cat.dot') - - def test_author_slug_substitutions(self): - settings = {'AUTHOR_REGEX_SUBSTITUTIONS': [ - ('Alexander Todorov', 'atodorov'), - ('Krasimir Tsonev', 'krasimir'), - (r'[^\w\s-]', ''), - (r'(?u)\A\s*', ''), - (r'(?u)\s*\Z', ''), - (r'[-\s]+', '-'), - ]} - - author1 = Author('Mr. Senko', settings=settings) - author2 = Author('Alexander Todorov', settings=settings) - author3 = Author('Krasimir Tsonev', settings=settings) - - self.assertEqual(author1.slug, 'mr-senko') - self.assertEqual(author2.slug, 'atodorov') - self.assertEqual(author3.slug, 'krasimir') diff --git a/pelican/tests/test_utils.py b/pelican/tests/test_utils.py deleted file mode 100644 index 10816199..00000000 --- a/pelican/tests/test_utils.py +++ /dev/null @@ -1,833 +0,0 @@ -import locale -import logging -import os -import shutil -import time -from sys import platform -from tempfile import mkdtemp - -import pytz - -from pelican import utils -from pelican.generators import TemplatePagesGenerator -from pelican.readers import Readers -from pelican.settings import read_settings -from pelican.tests.support import (LoggedTestCase, get_article, - locale_available, unittest) -from pelican.writers import Writer - - -class TestUtils(LoggedTestCase): - _new_attribute = 'new_value' - - @utils.deprecated_attribute( - old='_old_attribute', new='_new_attribute', - since=(3, 1, 0), remove=(4, 1, 3)) - def _old_attribute(): - return None - - def test_deprecated_attribute(self): - value = self._old_attribute - self.assertEqual(value, self._new_attribute) - self.assertLogCountEqual( - count=1, - msg=('_old_attribute has been deprecated since 3.1.0 and will be ' - 'removed by version 4.1.3. Use _new_attribute instead'), - level=logging.WARNING) - - def test_get_date(self): - # valid ones - date = utils.SafeDatetime(year=2012, month=11, day=22) - date_hour = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11) - date_hour_z = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11, - tzinfo=pytz.timezone('UTC')) - date_hour_est = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11, - tzinfo=pytz.timezone('EST')) - date_hour_sec = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11, second=10) - date_hour_sec_z = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11, second=10, - tzinfo=pytz.timezone('UTC')) - date_hour_sec_est = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11, second=10, - tzinfo=pytz.timezone('EST')) - date_hour_sec_frac_z = utils.SafeDatetime( - year=2012, month=11, day=22, hour=22, minute=11, second=10, - microsecond=123000, tzinfo=pytz.timezone('UTC')) - dates = { - '2012-11-22': date, - '2012/11/22': date, - '2012-11-22 22:11': date_hour, - '2012/11/22 22:11': date_hour, - '22-11-2012': date, - '22/11/2012': date, - '22.11.2012': date, - '22.11.2012 22:11': date_hour, - '2012-11-22T22:11Z': date_hour_z, - '2012-11-22T22:11-0500': date_hour_est, - '2012-11-22 22:11:10': date_hour_sec, - '2012-11-22T22:11:10Z': date_hour_sec_z, - '2012-11-22T22:11:10-0500': date_hour_sec_est, - '2012-11-22T22:11:10.123Z': date_hour_sec_frac_z, - } - - # examples from http://www.w3.org/TR/NOTE-datetime - iso_8601_date = utils.SafeDatetime(year=1997, month=7, day=16) - iso_8601_date_hour_tz = utils.SafeDatetime( - year=1997, month=7, day=16, hour=19, minute=20, - tzinfo=pytz.timezone('CET')) - iso_8601_date_hour_sec_tz = utils.SafeDatetime( - year=1997, month=7, day=16, hour=19, minute=20, second=30, - tzinfo=pytz.timezone('CET')) - iso_8601_date_hour_sec_ms_tz = utils.SafeDatetime( - year=1997, month=7, day=16, hour=19, minute=20, second=30, - microsecond=450000, tzinfo=pytz.timezone('CET')) - iso_8601 = { - '1997-07-16': iso_8601_date, - '1997-07-16T19:20+01:00': iso_8601_date_hour_tz, - '1997-07-16T19:20:30+01:00': iso_8601_date_hour_sec_tz, - '1997-07-16T19:20:30.45+01:00': iso_8601_date_hour_sec_ms_tz, - } - - # invalid ones - invalid_dates = ['2010-110-12', 'yay'] - - for value, expected in dates.items(): - self.assertEqual(utils.get_date(value), expected, value) - - for value, expected in iso_8601.items(): - self.assertEqual(utils.get_date(value), expected, value) - - for item in invalid_dates: - self.assertRaises(ValueError, utils.get_date, item) - - def test_slugify(self): - - samples = (('this is a test', 'this-is-a-test'), - ('this is a test', 'this-is-a-test'), - ('this → is ← a ↑ test', 'this-is-a-test'), - ('this--is---a test', 'this-is-a-test'), - ('unicode測試許功蓋,你看到了嗎?', - 'unicodece-shi-xu-gong-gai-ni-kan-dao-liao-ma'), - ('大飯原発4号機、18日夜起動へ', - 'da-fan-yuan-fa-4hao-ji-18ri-ye-qi-dong-he'),) - - settings = read_settings() - subs = settings['SLUG_REGEX_SUBSTITUTIONS'] - - for value, expected in samples: - self.assertEqual(utils.slugify(value, regex_subs=subs), expected) - - self.assertEqual(utils.slugify('Cat', regex_subs=subs), 'cat') - self.assertEqual( - utils.slugify('Cat', regex_subs=subs, preserve_case=False), 'cat') - self.assertEqual( - utils.slugify('Cat', regex_subs=subs, preserve_case=True), 'Cat') - - def test_slugify_use_unicode(self): - - samples = ( - ('this is a test', 'this-is-a-test'), - ('this is a test', 'this-is-a-test'), - ('this → is ← a ↑ test', 'this-is-a-test'), - ('this--is---a test', 'this-is-a-test'), - ('unicode測試許功蓋,你看到了嗎?', 'unicode測試許功蓋你看到了嗎'), - ('Çığ', 'çığ') - ) - - settings = read_settings() - subs = settings['SLUG_REGEX_SUBSTITUTIONS'] - - for value, expected in samples: - self.assertEqual( - utils.slugify(value, regex_subs=subs, use_unicode=True), - expected) - - # check with preserve case - for value, expected in samples: - self.assertEqual( - utils.slugify('Çığ', regex_subs=subs, - preserve_case=True, use_unicode=True), - 'Çığ') - - # check normalization - samples = ( - ('大飯原発4号機、18日夜起動へ', '大飯原発4号機18日夜起動へ'), - ( - '\N{LATIN SMALL LETTER C}\N{COMBINING CEDILLA}', - '\N{LATIN SMALL LETTER C WITH CEDILLA}' - ) - ) - for value, expected in samples: - self.assertEqual( - utils.slugify(value, regex_subs=subs, use_unicode=True), - expected) - - def test_slugify_substitute(self): - - samples = (('C++ is based on C', 'cpp-is-based-on-c'), - ('C+++ test C+ test', 'cpp-test-c-test'), - ('c++, c#, C#, C++', 'cpp-c-sharp-c-sharp-cpp'), - ('c++-streams', 'cpp-streams'),) - - settings = read_settings() - subs = [ - (r'C\+\+', 'CPP'), - (r'C#', 'C-SHARP'), - ] + settings['SLUG_REGEX_SUBSTITUTIONS'] - for value, expected in samples: - self.assertEqual(utils.slugify(value, regex_subs=subs), expected) - - def test_slugify_substitute_and_keeping_non_alphanum(self): - - samples = (('Fedora QA', 'fedora.qa'), - ('C++ is used by Fedora QA', 'cpp is used by fedora.qa'), - ('C++ is based on C', 'cpp is based on c'), - ('C+++ test C+ test', 'cpp+ test c+ test'),) - - subs = [ - (r'Fedora QA', 'fedora.qa'), - (r'c\+\+', 'cpp'), - ] - for value, expected in samples: - self.assertEqual(utils.slugify(value, regex_subs=subs), expected) - - def test_get_relative_path(self): - - samples = ((os.path.join('test', 'test.html'), os.pardir), - (os.path.join('test', 'test', 'test.html'), - os.path.join(os.pardir, os.pardir)), - ('test.html', os.curdir), - (os.path.join('/test', 'test.html'), os.pardir), - (os.path.join('/test', 'test', 'test.html'), - os.path.join(os.pardir, os.pardir)), - ('/test.html', os.curdir),) - - for value, expected in samples: - self.assertEqual(utils.get_relative_path(value), expected) - - def test_truncate_html_words(self): - # Plain text. - self.assertEqual( - utils.truncate_html_words('short string', 20), - 'short string') - self.assertEqual( - utils.truncate_html_words('word ' * 100, 20), - 'word ' * 20 + '…') - - # Words enclosed or intervaled by HTML tags. - self.assertEqual( - utils.truncate_html_words('

    ' + 'word ' * 100 + '

    ', 20), - '

    ' + 'word ' * 20 + '…

    ') - self.assertEqual( - utils.truncate_html_words( - '' + 'word ' * 100 + '', 20), - '' + 'word ' * 20 + '…') - self.assertEqual( - utils.truncate_html_words('
    ' + 'word ' * 100, 20), - '
    ' + 'word ' * 20 + '…') - self.assertEqual( - utils.truncate_html_words('' + 'word ' * 100, 20), - '' + 'word ' * 20 + '…') - - # Words with hypens and apostrophes. - self.assertEqual( - utils.truncate_html_words("a-b " * 100, 20), - "a-b " * 20 + '…') - self.assertEqual( - utils.truncate_html_words("it's " * 100, 20), - "it's " * 20 + '…') - - # Words with HTML entity references. - self.assertEqual( - utils.truncate_html_words("é " * 100, 20), - "é " * 20 + '…') - self.assertEqual( - utils.truncate_html_words("café " * 100, 20), - "café " * 20 + '…') - self.assertEqual( - utils.truncate_html_words("èlite " * 100, 20), - "èlite " * 20 + '…') - self.assertEqual( - utils.truncate_html_words("cafetiére " * 100, 20), - "cafetiére " * 20 + '…') - self.assertEqual( - utils.truncate_html_words("∫dx " * 100, 20), - "∫dx " * 20 + '…') - - # Words with HTML character references inside and outside - # the ASCII range. - self.assertEqual( - utils.truncate_html_words("é " * 100, 20), - "é " * 20 + '…') - self.assertEqual( - utils.truncate_html_words("∫dx " * 100, 20), - "∫dx " * 20 + '…') - - # Words with invalid or broken HTML references. - self.assertEqual( - utils.truncate_html_words('&invalid;', 20), '&invalid;') - self.assertEqual( - utils.truncate_html_words('�', 20), '�') - self.assertEqual( - utils.truncate_html_words('�', 20), '�') - self.assertEqual( - utils.truncate_html_words('&mdash text', 20), '&mdash text') - self.assertEqual( - utils.truncate_html_words('Ӓ text', 20), 'Ӓ text') - self.assertEqual( - utils.truncate_html_words('઼ text', 20), '઼ text') - - def test_process_translations(self): - fr_articles = [] - en_articles = [] - - # create a bunch of articles - # 0: no translation metadata - fr_articles.append(get_article(lang='fr', slug='yay0', title='Titre', - content='en français')) - en_articles.append(get_article(lang='en', slug='yay0', title='Title', - content='in english')) - # 1: translation metadata on default lang - fr_articles.append(get_article(lang='fr', slug='yay1', title='Titre', - content='en français')) - en_articles.append(get_article(lang='en', slug='yay1', title='Title', - content='in english', - translation='true')) - # 2: translation metadata not on default lang - fr_articles.append(get_article(lang='fr', slug='yay2', title='Titre', - content='en français', - translation='true')) - en_articles.append(get_article(lang='en', slug='yay2', title='Title', - content='in english')) - # 3: back to default language detection if all items have the - # translation metadata - fr_articles.append(get_article(lang='fr', slug='yay3', title='Titre', - content='en français', - translation='yep')) - en_articles.append(get_article(lang='en', slug='yay3', title='Title', - content='in english', - translation='yes')) - # 4-5: translation pairs with the same slug but different category - fr_articles.append(get_article(lang='fr', slug='yay4', title='Titre', - content='en français', category='foo')) - en_articles.append(get_article(lang='en', slug='yay4', title='Title', - content='in english', category='foo')) - fr_articles.append(get_article(lang='fr', slug='yay4', title='Titre', - content='en français', category='bar')) - en_articles.append(get_article(lang='en', slug='yay4', title='Title', - content='in english', category='bar')) - - # try adding articles in both orders - for lang0_articles, lang1_articles in ((fr_articles, en_articles), - (en_articles, fr_articles)): - articles = lang0_articles + lang1_articles - - # test process_translations with falsy translation_id - index, trans = utils.process_translations( - articles, translation_id=None) - for i in range(6): - for lang_articles in [en_articles, fr_articles]: - self.assertIn(lang_articles[i], index) - self.assertNotIn(lang_articles[i], trans) - - # test process_translations with simple and complex translation_id - for translation_id in ['slug', {'slug', 'category'}]: - index, trans = utils.process_translations( - articles, translation_id=translation_id) - - for a in [en_articles[0], fr_articles[1], en_articles[2], - en_articles[3], en_articles[4], en_articles[5]]: - self.assertIn(a, index) - self.assertNotIn(a, trans) - - for a in [fr_articles[0], en_articles[1], fr_articles[2], - fr_articles[3], fr_articles[4], fr_articles[5]]: - self.assertIn(a, trans) - self.assertNotIn(a, index) - - for i in range(6): - self.assertIn(en_articles[i], fr_articles[i].translations) - self.assertIn(fr_articles[i], en_articles[i].translations) - - for a_arts in [en_articles, fr_articles]: - for b_arts in [en_articles, fr_articles]: - if translation_id == 'slug': - self.assertIn(a_arts[4], b_arts[5].translations) - self.assertIn(a_arts[5], b_arts[4].translations) - elif translation_id == {'slug', 'category'}: - self.assertNotIn(a_arts[4], b_arts[5].translations) - self.assertNotIn(a_arts[5], b_arts[4].translations) - - def test_filesystemwatcher(self): - def create_file(name, content): - with open(name, 'w') as f: - f.write(content) - - # disable logger filter - from pelican.utils import logger - logger.disable_filter() - - # create a temp "project" dir - root = mkdtemp() - content_path = os.path.join(root, 'content') - static_path = os.path.join(root, 'content', 'static') - config_file = os.path.join(root, 'config.py') - theme_path = os.path.join(root, 'mytheme') - - # populate - os.mkdir(content_path) - os.mkdir(theme_path) - create_file(config_file, - 'PATH = "content"\n' - 'THEME = "mytheme"\n' - 'STATIC_PATHS = ["static"]') - - t = time.time() - 1000 # make sure it's in the "past" - os.utime(config_file, (t, t)) - settings = read_settings(config_file) - - watcher = utils.FileSystemWatcher(config_file, Readers, settings) - # should get a warning for static not not existing - self.assertLogCountEqual(1, 'Watched path does not exist: .*static') - - # create it and update config - os.mkdir(static_path) - watcher.update_watchers(settings) - # no new warning - self.assertLogCountEqual(1, 'Watched path does not exist: .*static') - - # get modified values - modified = watcher.check() - # empty theme and content should raise warnings - self.assertLogCountEqual(1, 'No valid files found in content') - self.assertLogCountEqual(1, 'Empty theme folder. Using `basic` theme') - - self.assertIsNone(modified['content']) # empty - self.assertIsNone(modified['theme']) # empty - self.assertIsNone(modified['[static]static']) # empty - self.assertTrue(modified['settings']) # modified, first time - - # add a content, add file to theme and check again - create_file(os.path.join(content_path, 'article.md'), - 'Title: test\n' - 'Date: 01-01-2020') - - create_file(os.path.join(theme_path, 'dummy'), - 'test') - - modified = watcher.check() - # no new warning - self.assertLogCountEqual(1, 'No valid files found in content') - self.assertLogCountEqual(1, 'Empty theme folder. Using `basic` theme') - - self.assertIsNone(modified['[static]static']) # empty - self.assertFalse(modified['settings']) # not modified - self.assertTrue(modified['theme']) # modified - self.assertTrue(modified['content']) # modified - - # change config, remove static path - create_file(config_file, - 'PATH = "content"\n' - 'THEME = "mytheme"\n' - 'STATIC_PATHS = []') - - settings = read_settings(config_file) - watcher.update_watchers(settings) - - modified = watcher.check() - self.assertNotIn('[static]static', modified) # should be gone - self.assertTrue(modified['settings']) # modified - self.assertFalse(modified['content']) # not modified - self.assertFalse(modified['theme']) # not modified - - # cleanup - logger.enable_filter() - shutil.rmtree(root) - - def test_clean_output_dir(self): - retention = () - test_directory = os.path.join(os.path.dirname(__file__), - 'clean_output') - content = os.path.join(os.path.dirname(__file__), 'content') - shutil.copytree(content, test_directory) - utils.clean_output_dir(test_directory, retention) - self.assertTrue(os.path.isdir(test_directory)) - self.assertListEqual([], os.listdir(test_directory)) - shutil.rmtree(test_directory) - - def test_clean_output_dir_not_there(self): - retention = () - test_directory = os.path.join(os.path.dirname(__file__), - 'does_not_exist') - utils.clean_output_dir(test_directory, retention) - self.assertFalse(os.path.exists(test_directory)) - - def test_clean_output_dir_is_file(self): - retention = () - test_directory = os.path.join(os.path.dirname(__file__), - 'this_is_a_file') - f = open(test_directory, 'w') - f.write('') - f.close() - utils.clean_output_dir(test_directory, retention) - self.assertFalse(os.path.exists(test_directory)) - - def test_strftime(self): - d = utils.SafeDatetime(2012, 8, 29) - - # simple formatting - self.assertEqual(utils.strftime(d, '%d/%m/%y'), '29/08/12') - self.assertEqual(utils.strftime(d, '%d/%m/%Y'), '29/08/2012') - - # RFC 3339 - self.assertEqual( - utils.strftime(d, '%Y-%m-%dT%H:%M:%SZ'), - '2012-08-29T00:00:00Z') - - # % escaped - self.assertEqual(utils.strftime(d, '%d%%%m%%%y'), '29%08%12') - self.assertEqual(utils.strftime(d, '%d %% %m %% %y'), '29 % 08 % 12') - # not valid % formatter - self.assertEqual(utils.strftime(d, '10% reduction in %Y'), - '10% reduction in 2012') - self.assertEqual(utils.strftime(d, '%10 reduction in %Y'), - '%10 reduction in 2012') - - # with text - self.assertEqual(utils.strftime(d, 'Published in %d-%m-%Y'), - 'Published in 29-08-2012') - - # with non-ascii text - self.assertEqual( - utils.strftime(d, '%d/%m/%Y Øl trinken beim Besäufnis'), - '29/08/2012 Øl trinken beim Besäufnis') - - # alternative formatting options - self.assertEqual(utils.strftime(d, '%-d/%-m/%y'), '29/8/12') - self.assertEqual(utils.strftime(d, '%-H:%-M:%-S'), '0:0:0') - - d = utils.SafeDatetime(2012, 8, 9) - self.assertEqual(utils.strftime(d, '%-d/%-m/%y'), '9/8/12') - - # test the output of utils.strftime in a different locale - # Turkish locale - @unittest.skipUnless(locale_available('tr_TR.UTF-8') or - locale_available('Turkish'), - 'Turkish locale needed') - def test_strftime_locale_dependent_turkish(self): - # store current locale - old_locale = locale.setlocale(locale.LC_ALL) - - if platform == 'win32': - locale.setlocale(locale.LC_ALL, 'Turkish') - else: - locale.setlocale(locale.LC_ALL, 'tr_TR.UTF-8') - - d = utils.SafeDatetime(2012, 8, 29) - - # simple - self.assertEqual(utils.strftime(d, '%d %B %Y'), '29 Ağustos 2012') - self.assertEqual(utils.strftime(d, '%A, %d %B %Y'), - 'Çarşamba, 29 Ağustos 2012') - - # with text - self.assertEqual( - utils.strftime(d, 'Yayınlanma tarihi: %A, %d %B %Y'), - 'Yayınlanma tarihi: Çarşamba, 29 Ağustos 2012') - - # non-ascii format candidate (someone might pass it… for some reason) - self.assertEqual( - utils.strftime(d, '%Y yılında %üretim artışı'), - '2012 yılında %üretim artışı') - - # restore locale back - locale.setlocale(locale.LC_ALL, old_locale) - - # test the output of utils.strftime in a different locale - # French locale - @unittest.skipUnless(locale_available('fr_FR.UTF-8') or - locale_available('French'), - 'French locale needed') - def test_strftime_locale_dependent_french(self): - # store current locale - old_locale = locale.setlocale(locale.LC_ALL) - - if platform == 'win32': - locale.setlocale(locale.LC_ALL, 'French') - else: - locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8') - - d = utils.SafeDatetime(2012, 8, 29) - - # simple - self.assertEqual(utils.strftime(d, '%d %B %Y'), '29 août 2012') - - # depending on OS, the first letter is m or M - self.assertTrue(utils.strftime(d, '%A') in ('mercredi', 'Mercredi')) - - # with text - self.assertEqual( - utils.strftime(d, 'Écrit le %d %B %Y'), - 'Écrit le 29 août 2012') - - # non-ascii format candidate (someone might pass it… for some reason) - self.assertEqual( - utils.strftime(d, '%écrits en %Y'), - '%écrits en 2012') - - # restore locale back - locale.setlocale(locale.LC_ALL, old_locale) - - def test_maybe_pluralize(self): - self.assertEqual( - utils.maybe_pluralize(0, 'Article', 'Articles'), - '0 Articles') - self.assertEqual( - utils.maybe_pluralize(1, 'Article', 'Articles'), - '1 Article') - self.assertEqual( - utils.maybe_pluralize(2, 'Article', 'Articles'), - '2 Articles') - - -class TestCopy(unittest.TestCase): - '''Tests the copy utility''' - - def setUp(self): - self.root_dir = mkdtemp(prefix='pelicantests.') - self.old_locale = locale.setlocale(locale.LC_ALL) - locale.setlocale(locale.LC_ALL, 'C') - - def tearDown(self): - shutil.rmtree(self.root_dir) - locale.setlocale(locale.LC_ALL, self.old_locale) - - def _create_file(self, *path): - with open(os.path.join(self.root_dir, *path), 'w') as f: - f.write('42\n') - - def _create_dir(self, *path): - os.makedirs(os.path.join(self.root_dir, *path)) - - def _exist_file(self, *path): - path = os.path.join(self.root_dir, *path) - self.assertTrue(os.path.isfile(path), 'File does not exist: %s' % path) - - def _exist_dir(self, *path): - path = os.path.join(self.root_dir, *path) - self.assertTrue(os.path.exists(path), - 'Directory does not exist: %s' % path) - - def test_copy_file_same_path(self): - self._create_file('a.txt') - utils.copy(os.path.join(self.root_dir, 'a.txt'), - os.path.join(self.root_dir, 'b.txt')) - self._exist_file('b.txt') - - def test_copy_file_different_path(self): - self._create_dir('a') - self._create_dir('b') - self._create_file('a', 'a.txt') - utils.copy(os.path.join(self.root_dir, 'a', 'a.txt'), - os.path.join(self.root_dir, 'b', 'b.txt')) - self._exist_dir('b') - self._exist_file('b', 'b.txt') - - def test_copy_file_create_dirs(self): - self._create_file('a.txt') - utils.copy( - os.path.join(self.root_dir, 'a.txt'), - os.path.join(self.root_dir, 'b0', 'b1', 'b2', 'b3', 'b.txt')) - self._exist_dir('b0') - self._exist_dir('b0', 'b1') - self._exist_dir('b0', 'b1', 'b2') - self._exist_dir('b0', 'b1', 'b2', 'b3') - self._exist_file('b0', 'b1', 'b2', 'b3', 'b.txt') - - def test_copy_dir_same_path(self): - self._create_dir('a') - self._create_file('a', 'a.txt') - utils.copy(os.path.join(self.root_dir, 'a'), - os.path.join(self.root_dir, 'b')) - self._exist_dir('b') - self._exist_file('b', 'a.txt') - - def test_copy_dir_different_path(self): - self._create_dir('a0') - self._create_dir('a0', 'a1') - self._create_file('a0', 'a1', 'a.txt') - self._create_dir('b0') - utils.copy(os.path.join(self.root_dir, 'a0', 'a1'), - os.path.join(self.root_dir, 'b0', 'b1')) - self._exist_dir('b0', 'b1') - self._exist_file('b0', 'b1', 'a.txt') - - def test_copy_dir_create_dirs(self): - self._create_dir('a') - self._create_file('a', 'a.txt') - utils.copy(os.path.join(self.root_dir, 'a'), - os.path.join(self.root_dir, 'b0', 'b1', 'b2', 'b3', 'b')) - self._exist_dir('b0') - self._exist_dir('b0', 'b1') - self._exist_dir('b0', 'b1', 'b2') - self._exist_dir('b0', 'b1', 'b2', 'b3') - self._exist_dir('b0', 'b1', 'b2', 'b3', 'b') - self._exist_file('b0', 'b1', 'b2', 'b3', 'b', 'a.txt') - - -class TestDateFormatter(unittest.TestCase): - '''Tests that the output of DateFormatter jinja filter is same as - utils.strftime''' - - def setUp(self): - # prepare a temp content and output folder - self.temp_content = mkdtemp(prefix='pelicantests.') - self.temp_output = mkdtemp(prefix='pelicantests.') - - # prepare a template file - template_dir = os.path.join(self.temp_content, 'template') - template_path = os.path.join(template_dir, 'source.html') - os.makedirs(template_dir) - with open(template_path, 'w') as template_file: - template_file.write('date = {{ date|strftime("%A, %d %B %Y") }}') - self.date = utils.SafeDatetime(2012, 8, 29) - - def tearDown(self): - shutil.rmtree(self.temp_content) - shutil.rmtree(self.temp_output) - # reset locale to default - locale.setlocale(locale.LC_ALL, '') - - @unittest.skipUnless(locale_available('fr_FR.UTF-8') or - locale_available('French'), - 'French locale needed') - def test_french_strftime(self): - # This test tries to reproduce an issue that - # occurred with python3.3 under macos10 only - if platform == 'win32': - locale.setlocale(locale.LC_ALL, 'French') - else: - locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8') - date = utils.SafeDatetime(2014, 8, 14) - # we compare the lower() dates since macos10 returns - # "Jeudi" for %A whereas linux reports "jeudi" - self.assertEqual( - 'jeudi, 14 août 2014', - utils.strftime(date, date_format="%A, %d %B %Y").lower()) - df = utils.DateFormatter() - self.assertEqual( - 'jeudi, 14 août 2014', - df(date, date_format="%A, %d %B %Y").lower()) - # Let us now set the global locale to C: - locale.setlocale(locale.LC_ALL, 'C') - # DateFormatter should still work as expected - # since it is the whole point of DateFormatter - # (This is where pre-2014/4/15 code fails on macos10) - df_date = df(date, date_format="%A, %d %B %Y").lower() - self.assertEqual('jeudi, 14 août 2014', df_date) - - @unittest.skipUnless(locale_available('fr_FR.UTF-8') or - locale_available('French'), - 'French locale needed') - def test_french_locale(self): - if platform == 'win32': - locale_string = 'French' - else: - locale_string = 'fr_FR.UTF-8' - settings = read_settings( - override={ - 'LOCALE': locale_string, - 'TEMPLATE_PAGES': { - 'template/source.html': 'generated/file.html' - } - }) - - generator = TemplatePagesGenerator( - {'date': self.date}, settings, - self.temp_content, '', self.temp_output) - generator.env.filters.update({'strftime': utils.DateFormatter()}) - - writer = Writer(self.temp_output, settings=settings) - generator.generate_output(writer) - - output_path = os.path.join( - self.temp_output, 'generated', 'file.html') - - # output file has been generated - self.assertTrue(os.path.exists(output_path)) - - # output content is correct - with utils.pelican_open(output_path) as output_file: - self.assertEqual(output_file, - utils.strftime(self.date, 'date = %A, %d %B %Y')) - - @unittest.skipUnless(locale_available('tr_TR.UTF-8') or - locale_available('Turkish'), - 'Turkish locale needed') - def test_turkish_locale(self): - if platform == 'win32': - locale_string = 'Turkish' - else: - locale_string = 'tr_TR.UTF-8' - settings = read_settings( - override={ - 'LOCALE': locale_string, - 'TEMPLATE_PAGES': { - 'template/source.html': 'generated/file.html' - } - }) - - generator = TemplatePagesGenerator( - {'date': self.date}, settings, - self.temp_content, '', self.temp_output) - generator.env.filters.update({'strftime': utils.DateFormatter()}) - - writer = Writer(self.temp_output, settings=settings) - generator.generate_output(writer) - - output_path = os.path.join( - self.temp_output, 'generated', 'file.html') - - # output file has been generated - self.assertTrue(os.path.exists(output_path)) - - # output content is correct - with utils.pelican_open(output_path) as output_file: - self.assertEqual(output_file, - utils.strftime(self.date, 'date = %A, %d %B %Y')) - - -class TestSanitisedJoin(unittest.TestCase): - def test_detect_parent_breakout(self): - with self.assertRaisesRegex( - RuntimeError, - "Attempted to break out of output directory to " - "(.*?:)?/foo/test"): # (.*?:)? accounts for Windows root - utils.sanitised_join( - "/foo/bar", - "../test" - ) - - def test_detect_root_breakout(self): - with self.assertRaisesRegex( - RuntimeError, - "Attempted to break out of output directory to " - "(.*?:)?/test"): # (.*?:)? accounts for Windows root - utils.sanitised_join( - "/foo/bar", - "/test" - ) - - def test_pass_deep_subpaths(self): - self.assertEqual( - utils.sanitised_join( - "/foo/bar", - "test" - ), - utils.posixize_path( - os.path.abspath(os.path.join("/foo/bar", "test"))) - ) diff --git a/pelican/tests/theme_overrides/level1/article.html b/pelican/tests/theme_overrides/level1/article.html deleted file mode 100644 index 12f6b7bf..00000000 --- a/pelican/tests/theme_overrides/level1/article.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/pelican/tests/theme_overrides/level2/article.html b/pelican/tests/theme_overrides/level2/article.html deleted file mode 100644 index 12f6b7bf..00000000 --- a/pelican/tests/theme_overrides/level2/article.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/pelican/tests/theme_overrides/level2/authors.html b/pelican/tests/theme_overrides/level2/authors.html deleted file mode 100644 index 12f6b7bf..00000000 --- a/pelican/tests/theme_overrides/level2/authors.html +++ /dev/null @@ -1,4 +0,0 @@ -