chiark / gitweb /
theme: test blog rendering.
authorVladimír Vondruš <mosra@centrum.cz>
Sat, 9 Dec 2017 23:01:23 +0000 (00:01 +0100)
committerVladimír Vondruš <mosra@centrum.cz>
Mon, 11 Dec 2017 01:48:25 +0000 (02:48 +0100)
94 files changed:
pelican-theme/test/__init__.py
pelican-theme/test/blog/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog/article.html [new file with mode: 0644]
pelican-theme/test/blog/article.rst [new file with mode: 0644]
pelican-theme/test/blog/author-explicit-author.html [new file with mode: 0644]
pelican-theme/test/blog/category-another-category.html [new file with mode: 0644]
pelican-theme/test/blog/index.html [new file with mode: 0644]
pelican-theme/test/blog/ship.jpg [new symlink]
pelican-theme/test/blog/tag-third.html [new file with mode: 0644]
pelican-theme/test/blog_author_list/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_author_list/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_author_list/article.rst [new file with mode: 0644]
pelican-theme/test/blog_author_list/index.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article/article2.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article_hide_summary_article/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article_hide_summary_article/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article_hide_summary_both/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article_hide_summary_both/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article_hide_summary_global/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_article_hide_summary_global/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both/article2.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both/index.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_article/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_article/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_both/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_both/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_both/article.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_both/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_both/index.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_global/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_global/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_global/article.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_global/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_both_hide_summary_global/index.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global/article2.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global/index.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_article/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_article/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_both/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_both/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_both/article.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_both/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_both/index.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_global/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_global/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_global/article.html [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_global/article.rst [new file with mode: 0644]
pelican-theme/test/blog_collapse_first_global_hide_summary_global/index.html [new file with mode: 0644]
pelican-theme/test/blog_footer_links/article.rst [new file with mode: 0644]
pelican-theme/test/blog_footer_links/article2.rst [new file with mode: 0644]
pelican-theme/test/blog_footer_links/index.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_article/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_article/article.rst [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_both/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_both/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_both/article.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_both/article.rst [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_both/category-misc.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_both/index.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_global/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_global/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_global/article.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_global/article.rst [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_global/category-misc.html [new file with mode: 0644]
pelican-theme/test/blog_hide_summary_global/index.html [new file with mode: 0644]
pelican-theme/test/blog_jumbo_inverted/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_jumbo_inverted/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_minimal/article-jumbo.html [new file with mode: 0644]
pelican-theme/test/blog_minimal/article-jumbo.rst [new file with mode: 0644]
pelican-theme/test/blog_minimal/article.html [new file with mode: 0644]
pelican-theme/test/blog_minimal/article.rst [new file with mode: 0644]
pelican-theme/test/blog_minimal/category-misc.html [new file with mode: 0644]
pelican-theme/test/blog_minimal/index.html [new file with mode: 0644]
pelican-theme/test/blog_modified_date/article.rst [new file with mode: 0644]
pelican-theme/test/blog_modified_date/article2.rst [new file with mode: 0644]
pelican-theme/test/blog_modified_date/index.html [new file with mode: 0644]
pelican-theme/test/blog_pagination/article1.rst [new file with mode: 0644]
pelican-theme/test/blog_pagination/article2.rst [new file with mode: 0644]
pelican-theme/test/blog_pagination/article3.rst [new file with mode: 0644]
pelican-theme/test/blog_pagination/category-misc.html [new file with mode: 0644]
pelican-theme/test/blog_pagination/category-misc2.html [new file with mode: 0644]
pelican-theme/test/blog_pagination/category-misc3.html [new file with mode: 0644]
pelican-theme/test/blog_pagination/index.html [new file with mode: 0644]
pelican-theme/test/blog_pagination/index2.html [new file with mode: 0644]
pelican-theme/test/blog_pagination/index3.html [new file with mode: 0644]
pelican-theme/test/blog_pagination_disabled/article1.rst [new symlink]
pelican-theme/test/blog_pagination_disabled/article2.rst [new symlink]
pelican-theme/test/blog_pagination_disabled/article3.rst [new symlink]
pelican-theme/test/blog_pagination_disabled/index.html [new file with mode: 0644]
pelican-theme/test/test_blog.py [new file with mode: 0644]

index 56df9d4a059fb8a58aeec5f9499836d764b78dcc..80f8d95d7cc18ddf94808013420a181cbf4963c0 100644 (file)
@@ -58,3 +58,25 @@ class BaseTestCase(MinimalTestCase):
             'SLUGIFY_SOURCE': 'basename'
         }
         MinimalTestCase.run_pelican(self, {**implicit_settings, **settings})
+
+class BlogTestCase(BaseTestCase):
+    def run_pelican(self, settings):
+        implicit_settings = {
+            'DATE_FORMATS': {'en': ('en_US.UTF-8', '%b %d, %Y')},
+            'M_FINE_PRINT': None,
+            'PAGE_PATHS': ['pages'], # doesn't exist
+            'ARTICLE_PATHS': ['.'],
+            'AUTHOR_SAVE_AS': 'author-{slug}.html',
+            'AUTHOR_URL': 'author-{slug}.html',
+            'CATEGORY_SAVE_AS': 'category-{slug}.html',
+            'CATEGORY_URL': 'category-{slug}.html',
+            'TAG_SAVE_AS': 'tag-{slug}.html',
+            'TAG_URL': 'tag-{slug}.html',
+
+            # No m.css stuff to test there
+            'CATEGORY_FEED_ATOM': None,
+            'AUTHOR_FEED_ATOM': None,
+            'AUTHOR_FEED_RSS': None,
+            'TRANSLATION_FEED_ATOM': None
+        }
+        BaseTestCase.run_pelican(self, {**implicit_settings, **settings})
diff --git a/pelican-theme/test/blog/article-jumbo.html b/pelican-theme/test/blog/article-jumbo.html
new file mode 100644 (file)
index 0000000..168e83c
--- /dev/null
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article — a jumbo one | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="Fourth, First, Third" />
+  <meta property="og:title" content="An article — a jumbo one" />
+  <meta name="twitter:title" content="An article — a jumbo one" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="A summary. On multiple lines." />
+  <meta name="twitter:description" content="A summary. On multiple lines." />
+  <meta property="og:image" content="./ship.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="./ship.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('./ship.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-6 m-col-s-5 m-push-s-1 m-text-left">Dec 08, 2017</div>
+              <div class="m-col-t-6 m-col-s-5 m-push-s-1 m-text-right"><a href="author-implicit-author.html">Implicit Author</a></div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to An article — a jumbo one">An article</a></h1>
+                <h2>a jumbo one</h2>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="m-container">
+        <div class="m-row">
+          <div class="m-col-m-10 m-push-m-1 m-nopady">
+            <p>A summary.
+            On multiple
+            lines.</p>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>Some content.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted by <a href="author-implicit-author.html">Implicit Author</a> on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-another-category.html">Another category</a>. Tags: <a href="tag-fourth.html">Fourth</a>, <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-2 m-push-l-3">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-a-category.html">A category</a></li>
+          <li><a href="category-another-category.html">Another category</a></li>
+        </ol>
+      </div>
+      <div class="m-col-s-4 m-col-l-2 m-push-s-2 m-push-l-5">
+        <h3>Tag cloud</h3>
+        <ul class="m-tagcloud">
+          <li class="m-tag-5"><a href="tag-first.html">First</a></li>
+          <li class="m-tag-3"><a href="tag-fourth.html">Fourth</a></li>
+          <li class="m-tag-3"><a href="tag-second.html">Second</a></li>
+          <li class="m-tag-5"><a href="tag-third.html">Third</a></li>
+        </ul>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog/article-jumbo.rst b/pelican-theme/test/blog/article-jumbo.rst
new file mode 100644 (file)
index 0000000..951b582
--- /dev/null
@@ -0,0 +1,15 @@
+An article — a jumbo one
+########################
+
+.. author is implicit
+.. em-dash needs to be explicit as smart quotes are not enabled by default
+
+:date: 2017-12-08
+:category: Another category
+:tags: Fourth, First, Third
+:cover: {filename}/ship.jpg
+:summary: A summary.
+    On multiple
+    lines.
+
+Some content.
diff --git a/pelican-theme/test/blog/article.html b/pelican-theme/test/blog/article.html
new file mode 100644 (file)
index 0000000..86f0924
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="description" content="Article description for the fake SEO believers." />
+  <meta name="keywords" content="First, Third, Second" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary. On multiple lines." />
+  <meta name="twitter:description" content="The summary. On multiple lines." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+        <p>The summary.
+        On multiple
+        lines.</p>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully on the page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted by <a href="author-explicit-author.html">Explicit Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-a-category.html">A category</a>. Tags: <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>, <a href="tag-second.html">Second</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-a-category.html">A category</a></li>
+        <li><a href="category-another-category.html">Another category</a></li>
+      </ol>
+      <h3>Tag cloud</h3>
+      <ul class="m-tagcloud">
+        <li class="m-tag-5"><a href="tag-first.html">First</a></li>
+        <li class="m-tag-3"><a href="tag-fourth.html">Fourth</a></li>
+        <li class="m-tag-3"><a href="tag-second.html">Second</a></li>
+        <li class="m-tag-5"><a href="tag-third.html">Third</a></li>
+      </ul>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog/article.rst b/pelican-theme/test/blog/article.rst
new file mode 100644 (file)
index 0000000..a4a1660
--- /dev/null
@@ -0,0 +1,13 @@
+An article
+##########
+
+:date: 2017-12-09
+:category: A category
+:tags: First, Third, Second
+:author: Explicit Author
+:description: Article description for the fake SEO believers.
+:summary: The summary.
+    On multiple
+    lines.
+
+The content, expanded fully on the page.
diff --git a/pelican-theme/test/blog/author-explicit-author.html b/pelican-theme/test/blog/author-explicit-author.html
new file mode 100644 (file)
index 0000000..9e99a57
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>Posts by Explicit Author | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts by <em>Explicit Author</em>. <a href="archives.html">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary.
+          On multiple
+          lines.</p>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-explicit-author.html">Explicit Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-a-category.html">A category</a>. Tags: <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>, <a href="tag-second.html">Second</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-a-category.html">A category</a></li>
+        <li><a href="category-another-category.html">Another category</a></li>
+      </ol>
+      <h3>Tag cloud</h3>
+      <ul class="m-tagcloud">
+        <li class="m-tag-5"><a href="tag-first.html">First</a></li>
+        <li class="m-tag-3"><a href="tag-fourth.html">Fourth</a></li>
+        <li class="m-tag-3"><a href="tag-second.html">Second</a></li>
+        <li class="m-tag-5"><a href="tag-third.html">Third</a></li>
+      </ul>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog/category-another-category.html b/pelican-theme/test/blog/category-another-category.html
new file mode 100644 (file)
index 0000000..fa71eb9
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>Another category | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>Another category</em>. <a href="archives.html">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to An article — a jumbo one">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            An article — a jumbo one
+          </a></h1>
+          <p>A summary.
+          On multiple
+          lines.</p>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-implicit-author.html">Implicit Author</a> on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-another-category.html">Another category</a>. Tags: <a href="tag-fourth.html">Fourth</a>, <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-a-category.html">A category</a></li>
+        <li><a href="category-another-category.html">Another category</a></li>
+      </ol>
+      <h3>Tag cloud</h3>
+      <ul class="m-tagcloud">
+        <li class="m-tag-5"><a href="tag-first.html">First</a></li>
+        <li class="m-tag-3"><a href="tag-fourth.html">Fourth</a></li>
+        <li class="m-tag-3"><a href="tag-second.html">Second</a></li>
+        <li class="m-tag-5"><a href="tag-third.html">Third</a></li>
+      </ul>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog/index.html b/pelican-theme/test/blog/index.html
new file mode 100644 (file)
index 0000000..0fe85c5
--- /dev/null
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary.
+          On multiple
+          lines.</p>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully on the page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted by <a href="author-explicit-author.html">Explicit Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-a-category.html">A category</a>. Tags: <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>, <a href="tag-second.html">Second</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to An article — a jumbo one">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            An article — a jumbo one
+          </a></h1>
+          <p>A summary.
+          On multiple
+          lines.</p>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-implicit-author.html">Implicit Author</a> on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-another-category.html">Another category</a>. Tags: <a href="tag-fourth.html">Fourth</a>, <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-a-category.html">A category</a></li>
+        <li><a href="category-another-category.html">Another category</a></li>
+      </ol>
+      <h3>Tag cloud</h3>
+      <ul class="m-tagcloud">
+        <li class="m-tag-5"><a href="tag-first.html">First</a></li>
+        <li class="m-tag-3"><a href="tag-fourth.html">Fourth</a></li>
+        <li class="m-tag-3"><a href="tag-second.html">Second</a></li>
+        <li class="m-tag-5"><a href="tag-third.html">Third</a></li>
+      </ul>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog/ship.jpg b/pelican-theme/test/blog/ship.jpg
new file mode 120000 (symlink)
index 0000000..d4469e3
--- /dev/null
@@ -0,0 +1 @@
+../../../doc/static/ship.jpg
\ No newline at end of file
diff --git a/pelican-theme/test/blog/tag-third.html b/pelican-theme/test/blog/tag-third.html
new file mode 100644 (file)
index 0000000..a0b1416
--- /dev/null
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>Posts tagged Third | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts tagged <em>Third</em>. <a href="archives.html">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary.
+          On multiple
+          lines.</p>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-explicit-author.html">Explicit Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-a-category.html">A category</a>. Tags: <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>, <a href="tag-second.html">Second</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to An article — a jumbo one">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            An article — a jumbo one
+          </a></h1>
+          <p>A summary.
+          On multiple
+          lines.</p>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-implicit-author.html">Implicit Author</a> on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-another-category.html">Another category</a>. Tags: <a href="tag-fourth.html">Fourth</a>, <a href="tag-first.html">First</a>, <a href="tag-third.html">Third</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-a-category.html">A category</a></li>
+        <li><a href="category-another-category.html">Another category</a></li>
+      </ol>
+      <h3>Tag cloud</h3>
+      <ul class="m-tagcloud">
+        <li class="m-tag-5"><a href="tag-first.html">First</a></li>
+        <li class="m-tag-3"><a href="tag-fourth.html">Fourth</a></li>
+        <li class="m-tag-3"><a href="tag-second.html">Second</a></li>
+        <li class="m-tag-5"><a href="tag-third.html">Third</a></li>
+      </ul>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_author_list/article-jumbo.html b/pelican-theme/test/blog_author_list/article-jumbo.html
new file mode 100644 (file)
index 0000000..225aa4b
--- /dev/null
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-6 m-col-s-5 m-push-s-1 m-text-left">Dec 09, 2017</div>
+              <div class="m-col-t-6 m-col-s-5 m-push-s-1 m-text-right"><a href="author-an-author.html">An Author</a></div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </header>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted by <a href="author-an-author.html">An Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-l-1">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-7">
+        <h3>Authors</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="author-an-author.html">An Author</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_author_list/article-jumbo.rst b/pelican-theme/test/blog_author_list/article-jumbo.rst
new file mode 100644 (file)
index 0000000..719495c
--- /dev/null
@@ -0,0 +1,6 @@
+A jumbo article
+###############
+
+:date: 2017-12-09
+:cover: image.jpg
+
diff --git a/pelican-theme/test/blog_author_list/article.rst b/pelican-theme/test/blog_author_list/article.rst
new file mode 100644 (file)
index 0000000..ea8d0b9
--- /dev/null
@@ -0,0 +1,4 @@
+An article
+##########
+
+:date: 2017-12-09
diff --git a/pelican-theme/test/blog_author_list/index.html b/pelican-theme/test/blog_author_list/index.html
new file mode 100644 (file)
index 0000000..b54d647
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-an-author.html">An Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted by <a href="author-an-author.html">An Author</a> on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+      <h3>Authors</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="author-an-author.html">An Author</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_collapse_first_article/article.rst b/pelican-theme/test/blog_collapse_first_article/article.rst
new file mode 100644 (file)
index 0000000..7c58a8b
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:summary: The summary.
+:collapse_first: True
+
+The content, not expanded.
diff --git a/pelican-theme/test/blog_collapse_first_article/article2.rst b/pelican-theme/test/blog_collapse_first_article/article2.rst
new file mode 100644 (file)
index 0000000..73a012d
--- /dev/null
@@ -0,0 +1,8 @@
+An article 2
+############
+
+:date: 2017-12-08
+:summary: Article 2 summary.
+:collapse_first: True
+
+The content, not expanded as this is a second article.
diff --git a/pelican-theme/test/blog_collapse_first_article_hide_summary_article/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_article_hide_summary_article/article-jumbo.rst
new file mode 100644 (file)
index 0000000..25060f3
--- /dev/null
@@ -0,0 +1,10 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:collapse_first: True
+:hide_summary: True
+:summary: Jumbo article summary, shown only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_article_hide_summary_article/article.rst b/pelican-theme/test/blog_collapse_first_article_hide_summary_article/article.rst
new file mode 100644 (file)
index 0000000..06f404e
--- /dev/null
@@ -0,0 +1,9 @@
+An article
+##########
+
+:date: 2017-12-09
+:collapse_first: True
+:hide_summary: True
+:summary: The summary, shown on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_article_hide_summary_both/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_article_hide_summary_both/article-jumbo.rst
new file mode 100644 (file)
index 0000000..9866d99
--- /dev/null
@@ -0,0 +1,11 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:collapse_first: True
+:hide_summary: False
+:summary: Jumbo article summary, expanded only on listing.
+
+The content, expanded only on page.
+
diff --git a/pelican-theme/test/blog_collapse_first_article_hide_summary_both/article.rst b/pelican-theme/test/blog_collapse_first_article_hide_summary_both/article.rst
new file mode 100644 (file)
index 0000000..b5d98a0
--- /dev/null
@@ -0,0 +1,9 @@
+An article
+##########
+
+:date: 2017-12-09
+:collapse_first: True
+:hide_summary: False
+:summary: The summary, expanded only on listing.
+
+The content, expanded on listing and on page.
diff --git a/pelican-theme/test/blog_collapse_first_article_hide_summary_global/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_article_hide_summary_global/article-jumbo.rst
new file mode 100644 (file)
index 0000000..b1b2721
--- /dev/null
@@ -0,0 +1,9 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:collapse_first: True
+:summary: Jumbo article summary, shown only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_article_hide_summary_global/article.rst b/pelican-theme/test/blog_collapse_first_article_hide_summary_global/article.rst
new file mode 100644 (file)
index 0000000..53e6217
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:collapse_first: True
+:summary: The summary, shown on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_both/article.rst b/pelican-theme/test/blog_collapse_first_both/article.rst
new file mode 100644 (file)
index 0000000..e603455
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:summary: The summary.
+:collapse_first: False
+
+The content, expanded fully on the page.
diff --git a/pelican-theme/test/blog_collapse_first_both/article2.rst b/pelican-theme/test/blog_collapse_first_both/article2.rst
new file mode 100644 (file)
index 0000000..eb6a8b8
--- /dev/null
@@ -0,0 +1,8 @@
+An article 2
+############
+
+:date: 2017-12-08
+:summary: Article 2 summary.
+:collapse_first: False
+
+The content, not expanded as this is a second article.
diff --git a/pelican-theme/test/blog_collapse_first_both/index.html b/pelican-theme/test/blog_collapse_first_both/index.html
new file mode 100644 (file)
index 0000000..3832d69
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary.</p>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully on the page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to An article 2">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            An article 2
+          </a></h1>
+          <p>Article 2 summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_article/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_both_hide_summary_article/article-jumbo.rst
new file mode 100644 (file)
index 0000000..2c57326
--- /dev/null
@@ -0,0 +1,10 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:collapse_first: False
+:hide_summary: True
+:summary: Jumbo article summary, shown only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_article/article.rst b/pelican-theme/test/blog_collapse_first_both_hide_summary_article/article.rst
new file mode 100644 (file)
index 0000000..823d6da
--- /dev/null
@@ -0,0 +1,9 @@
+An article
+##########
+
+:date: 2017-12-09
+:collapse_first: False
+:hide_summary: True
+:summary: The summary, shown nowhere.
+
+The content, expanded on listing and on page.
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article-jumbo.html b/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article-jumbo.html
new file mode 100644 (file)
index 0000000..b9bbb88
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="Jumbo article summary, expanded on both listing and page." />
+  <meta name="twitter:description" content="Jumbo article summary, expanded on both listing and page." />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 08, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="m-container">
+        <div class="m-row">
+          <div class="m-col-m-10 m-push-m-1 m-nopady">
+            <p>Jumbo article summary, expanded on both listing and page.</p>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>The content, expanded only on page.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article-jumbo.rst
new file mode 100644 (file)
index 0000000..b4b4115
--- /dev/null
@@ -0,0 +1,10 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:collapse_first: False
+:hide_summary: False
+:summary: Jumbo article summary, expanded on both listing and page.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article.html b/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article.html
new file mode 100644 (file)
index 0000000..9eb362d
--- /dev/null
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary, expanded on both listing and page." />
+  <meta name="twitter:description" content="The summary, expanded on both listing and page." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+        <p>The summary, expanded on both listing and page.</p>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded on listing and on page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article.rst b/pelican-theme/test/blog_collapse_first_both_hide_summary_both/article.rst
new file mode 100644 (file)
index 0000000..875cb61
--- /dev/null
@@ -0,0 +1,9 @@
+An article
+##########
+
+:date: 2017-12-09
+:collapse_first: False
+:hide_summary: False
+:summary: The summary, expanded on both listing and page.
+
+The content, expanded on listing and on page.
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_both/index.html b/pelican-theme/test/blog_collapse_first_both_hide_summary_both/index.html
new file mode 100644 (file)
index 0000000..dbed2c8
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary, expanded on both listing and page.</p>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded on listing and on page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>Jumbo article summary, expanded on both listing and page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article-jumbo.html b/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article-jumbo.html
new file mode 100644 (file)
index 0000000..4ed06c5
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="Jumbo article summary, shown only on listing." />
+  <meta name="twitter:description" content="Jumbo article summary, shown only on listing." />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 08, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>The content, expanded only on page.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article-jumbo.rst
new file mode 100644 (file)
index 0000000..33b6c3d
--- /dev/null
@@ -0,0 +1,9 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:collapse_first: False
+:summary: Jumbo article summary, shown only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article.html b/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article.html
new file mode 100644 (file)
index 0000000..78959a5
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary, shown nowhere." />
+  <meta name="twitter:description" content="The summary, shown nowhere." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded on listing and on page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article.rst b/pelican-theme/test/blog_collapse_first_both_hide_summary_global/article.rst
new file mode 100644 (file)
index 0000000..057bde9
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:collapse_first: False
+:summary: The summary, shown nowhere.
+
+The content, expanded on listing and on page.
diff --git a/pelican-theme/test/blog_collapse_first_both_hide_summary_global/index.html b/pelican-theme/test/blog_collapse_first_both_hide_summary_global/index.html
new file mode 100644 (file)
index 0000000..cb38ae8
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded on listing and on page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>Jumbo article summary, shown only on listing.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_global/article.rst b/pelican-theme/test/blog_collapse_first_global/article.rst
new file mode 100644 (file)
index 0000000..9e545ad
--- /dev/null
@@ -0,0 +1,7 @@
+An article
+##########
+
+:date: 2017-12-09
+:summary: The summary.
+
+The content, not expanded.
diff --git a/pelican-theme/test/blog_collapse_first_global/article2.rst b/pelican-theme/test/blog_collapse_first_global/article2.rst
new file mode 100644 (file)
index 0000000..1597e84
--- /dev/null
@@ -0,0 +1,7 @@
+An article 2
+############
+
+:date: 2017-12-08
+:summary: Article 2 summary.
+
+The content, not expanded as this is a second article.
diff --git a/pelican-theme/test/blog_collapse_first_global/index.html b/pelican-theme/test/blog_collapse_first_global/index.html
new file mode 100644 (file)
index 0000000..3e799e4
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to An article 2">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            An article 2
+          </a></h1>
+          <p>Article 2 summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_article/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_global_hide_summary_article/article-jumbo.rst
new file mode 100644 (file)
index 0000000..51586dc
--- /dev/null
@@ -0,0 +1,9 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:hide_summary: True
+:summary: Jumbo article summary, shown only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_article/article.rst b/pelican-theme/test/blog_collapse_first_global_hide_summary_article/article.rst
new file mode 100644 (file)
index 0000000..fc0ca0b
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:hide_summary: True
+:summary: The summary, shown on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article-jumbo.html b/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article-jumbo.html
new file mode 100644 (file)
index 0000000..317a79f
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="Jumbo article summary, expanded only on listing." />
+  <meta name="twitter:description" content="Jumbo article summary, expanded only on listing." />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 08, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="m-container">
+        <div class="m-row">
+          <div class="m-col-m-10 m-push-m-1 m-nopady">
+            <p>Jumbo article summary, expanded only on listing.</p>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>The content, expanded only on page.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article-jumbo.rst
new file mode 100644 (file)
index 0000000..930c6b5
--- /dev/null
@@ -0,0 +1,9 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:hide_summary: False
+:summary: Jumbo article summary, expanded only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article.html b/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article.html
new file mode 100644 (file)
index 0000000..215efd9
--- /dev/null
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary, expanded only on listing." />
+  <meta name="twitter:description" content="The summary, expanded only on listing." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+        <p>The summary, expanded only on listing.</p>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded on listing and on page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article.rst b/pelican-theme/test/blog_collapse_first_global_hide_summary_both/article.rst
new file mode 100644 (file)
index 0000000..ad3b733
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:hide_summary: False
+:summary: The summary, expanded only on listing.
+
+The content, expanded on listing and on page.
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_both/index.html b/pelican-theme/test/blog_collapse_first_global_hide_summary_both/index.html
new file mode 100644 (file)
index 0000000..f23529d
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary, expanded only on listing.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>Jumbo article summary, expanded only on listing.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article-jumbo.html b/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article-jumbo.html
new file mode 100644 (file)
index 0000000..bcea5bf
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="Jumbo article summary, shown only on listing." />
+  <meta name="twitter:description" content="Jumbo article summary, shown only on listing." />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 08, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>The content, expanded only on page.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article-jumbo.rst b/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article-jumbo.rst
new file mode 100644 (file)
index 0000000..f66d042
--- /dev/null
@@ -0,0 +1,8 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:summary: Jumbo article summary, shown only on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article.html b/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article.html
new file mode 100644 (file)
index 0000000..e9b2e7e
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary, shown on listing." />
+  <meta name="twitter:description" content="The summary, shown on listing." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded only on page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article.rst b/pelican-theme/test/blog_collapse_first_global_hide_summary_global/article.rst
new file mode 100644 (file)
index 0000000..6d2bce1
--- /dev/null
@@ -0,0 +1,7 @@
+An article
+##########
+
+:date: 2017-12-09
+:summary: The summary, shown on listing.
+
+The content, expanded only on page.
diff --git a/pelican-theme/test/blog_collapse_first_global_hide_summary_global/index.html b/pelican-theme/test/blog_collapse_first_global_hide_summary_global/index.html
new file mode 100644 (file)
index 0000000..a1433a7
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary, shown on listing.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>Jumbo article summary, shown only on listing.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_footer_links/article.rst b/pelican-theme/test/blog_footer_links/article.rst
new file mode 100644 (file)
index 0000000..b1173ed
--- /dev/null
@@ -0,0 +1,5 @@
+An article
+##########
+
+:date: 2017-12-09
+:category: A category
diff --git a/pelican-theme/test/blog_footer_links/article2.rst b/pelican-theme/test/blog_footer_links/article2.rst
new file mode 100644 (file)
index 0000000..eac2177
--- /dev/null
@@ -0,0 +1,5 @@
+An article 2
+############
+
+:date: 2017-12-09
+:category: Another category
diff --git a/pelican-theme/test/blog_footer_links/index.html b/pelican-theme/test/blog_footer_links/index.html
new file mode 100644 (file)
index 0000000..aa2400e
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-a-category.html">A category</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to An article 2">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article 2
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-another-category.html">Another category</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-a-category.html">A category</a></li>
+        <li><a href="category-another-category.html">Another category</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+<footer><nav>
+  <div class="m-container">
+    <div class="m-row">
+      <div class="m-col-s-3 m-col-t-6">
+      </div>
+      <div class="m-col-s-3 m-col-t-6">
+        <h3><a href="./">Title</a></h3>
+        <ul>
+        </ul>
+      </div>
+      <div class="m-clearfix-t"></div>
+      <div class="m-col-s-3 m-col-t-6">
+      </div>
+      <div class="m-col-s-3 m-col-t-6">
+        <h3><a href="./">Blog</a></h3>
+        <ul>
+          <li><a href="category-a-category.html">A category</a></li>
+          <li><a href="category-another-category.html">Another category</a></li>
+        </ul>
+      </div>
+    </div>
+  </div>
+</nav></footer>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_hide_summary_article/article-jumbo.rst b/pelican-theme/test/blog_hide_summary_article/article-jumbo.rst
new file mode 100644 (file)
index 0000000..ed8e65b
--- /dev/null
@@ -0,0 +1,9 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:hide_summary: True
+:summary: The summary, shown in listing but not on the page.
+
+The content, expanded fully only on the page.
diff --git a/pelican-theme/test/blog_hide_summary_article/article.rst b/pelican-theme/test/blog_hide_summary_article/article.rst
new file mode 100644 (file)
index 0000000..be3ab52
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:hide_summary: True
+:summary: The summary, shown neither in listing nor on the page.
+
+The content, expanded fully both in listing and on the page.
diff --git a/pelican-theme/test/blog_hide_summary_both/article-jumbo.html b/pelican-theme/test/blog_hide_summary_both/article-jumbo.html
new file mode 100644 (file)
index 0000000..9ab7c70
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="The summary, shown in both listing and on the page." />
+  <meta name="twitter:description" content="The summary, shown in both listing and on the page." />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 08, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="m-container">
+        <div class="m-row">
+          <div class="m-col-m-10 m-push-m-1 m-nopady">
+            <p>The summary, shown in both listing and on the page.</p>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>The content, expanded fully only on the page.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_hide_summary_both/article-jumbo.rst b/pelican-theme/test/blog_hide_summary_both/article-jumbo.rst
new file mode 100644 (file)
index 0000000..099cde9
--- /dev/null
@@ -0,0 +1,9 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:hide_summary: False
+:summary: The summary, shown in both listing and on the page.
+
+The content, expanded fully only on the page.
diff --git a/pelican-theme/test/blog_hide_summary_both/article.html b/pelican-theme/test/blog_hide_summary_both/article.html
new file mode 100644 (file)
index 0000000..40a871b
--- /dev/null
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary, repeated on the page." />
+  <meta name="twitter:description" content="The summary, repeated on the page." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+        <p>The summary, repeated on the page.</p>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully both in the listing and on the page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_hide_summary_both/article.rst b/pelican-theme/test/blog_hide_summary_both/article.rst
new file mode 100644 (file)
index 0000000..daa4f85
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:hide_summary: False
+:summary: The summary, repeated on the page.
+
+The content, expanded fully both in the listing and on the page.
diff --git a/pelican-theme/test/blog_hide_summary_both/category-misc.html b/pelican-theme/test/blog_hide_summary_both/category-misc.html
new file mode 100644 (file)
index 0000000..3c97633
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>misc | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>misc</em>. <a href="./">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary, repeated on the page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>The summary, shown in both listing and on the page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_hide_summary_both/index.html b/pelican-theme/test/blog_hide_summary_both/index.html
new file mode 100644 (file)
index 0000000..cafbffd
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary, repeated on the page.</p>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully both in the listing and on the page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>The summary, shown in both listing and on the page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_hide_summary_global/article-jumbo.html b/pelican-theme/test/blog_hide_summary_global/article-jumbo.html
new file mode 100644 (file)
index 0000000..094f880
--- /dev/null
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:description" content="The summary, shown in listing but not on the page." />
+  <meta name="twitter:description" content="The summary, shown in listing but not on the page." />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 08, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </header>
+    <div class="m-container m-container-inflatable">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopady">
+<!-- content -->
+<p>The content, expanded fully only on the page.</p>
+<!-- /content -->
+        </div>
+      </div>
+    </div>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_hide_summary_global/article-jumbo.rst b/pelican-theme/test/blog_hide_summary_global/article-jumbo.rst
new file mode 100644 (file)
index 0000000..04e4b51
--- /dev/null
@@ -0,0 +1,8 @@
+A jumbo article
+###############
+
+:date: 2017-12-08
+:cover: image.jpg
+:summary: The summary, shown in listing but not on the page.
+
+The content, expanded fully only on the page.
diff --git a/pelican-theme/test/blog_hide_summary_global/article.html b/pelican-theme/test/blog_hide_summary_global/article.html
new file mode 100644 (file)
index 0000000..3f20aba
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta property="og:description" content="The summary, shown neither in listing nor on the page." />
+  <meta name="twitter:description" content="The summary, shown neither in listing nor on the page." />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+      </header>
+      <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully both in listing and on the page.</p>
+<!-- /content -->
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_hide_summary_global/article.rst b/pelican-theme/test/blog_hide_summary_global/article.rst
new file mode 100644 (file)
index 0000000..be3ab52
--- /dev/null
@@ -0,0 +1,8 @@
+An article
+##########
+
+:date: 2017-12-09
+:hide_summary: True
+:summary: The summary, shown neither in listing nor on the page.
+
+The content, expanded fully both in listing and on the page.
diff --git a/pelican-theme/test/blog_hide_summary_global/category-misc.html b/pelican-theme/test/blog_hide_summary_global/category-misc.html
new file mode 100644 (file)
index 0000000..89c3572
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>misc | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>misc</em>. <a href="./">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>The summary, shown neither in listing nor on the page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>The summary, shown in listing but not on the page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_hide_summary_global/index.html b/pelican-theme/test/blog_hide_summary_global/index.html
new file mode 100644 (file)
index 0000000..abdd81d
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content, expanded fully both in listing and on the page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+          <p>The summary, shown in listing but not on the page.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_jumbo_inverted/article-jumbo.html b/pelican-theme/test/blog_jumbo_inverted/article-jumbo.html
new file mode 100644 (file)
index 0000000..ab42d55
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo" class="m-inverted">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 09, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </header>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/blog_jumbo_inverted/article-jumbo.rst b/pelican-theme/test/blog_jumbo_inverted/article-jumbo.rst
new file mode 100644 (file)
index 0000000..14687eb
--- /dev/null
@@ -0,0 +1,6 @@
+A jumbo article
+###############
+
+:date: 2017-12-09
+:cover: image.jpg
+:class: m-inverted
diff --git a/pelican-theme/test/blog_minimal/article-jumbo.html b/pelican-theme/test/blog_minimal/article-jumbo.html
new file mode 100644 (file)
index 0000000..4f78f88
--- /dev/null
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A jumbo article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="A jumbo article" />
+  <meta name="twitter:title" content="A jumbo article" />
+  <meta property="og:url" content="article-jumbo.html" />
+  <meta name="twitter:url" content="article-jumbo.html" />
+  <meta property="og:image" content="image.jpg" />
+  <meta name="twitter:card" content="summary_large_image" />
+  <meta name="twitter:image" content="image.jpg" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation" class="m-navbar-jumbo">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+  <article id="m-jumbo">
+    <header>
+      <div id="m-jumbo-image" style="background-image: url('image.jpg');">
+        <div id="m-jumbo-cover">
+          <div class="m-container">
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-text-left">Dec 09, 2017</div>
+            </div>
+            <div class="m-row">
+              <div class="m-col-t-12 m-col-s-10 m-push-s-1 m-col-m-8 m-push-m-2">
+                <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">A jumbo article</a></h1>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </header>
+    <footer class="m-container">
+      <div class="m-row">
+        <div class="m-col-m-10 m-push-m-1 m-nopadb">
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </div>
+      </div>
+    </footer>
+  </article>
+  <nav class="m-navpanel m-container">
+    <div class="m-row">
+      <div class="m-col-s-4 m-col-l-2 m-push-s-4 m-push-l-5">
+        <h3>Categories</h3>
+        <ol class="m-block-bar-s">
+          <li><a href="category-misc.html">misc</a></li>
+        </ol>
+      </div>
+    </div>
+  </nav>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_minimal/article-jumbo.rst b/pelican-theme/test/blog_minimal/article-jumbo.rst
new file mode 100644 (file)
index 0000000..b254d98
--- /dev/null
@@ -0,0 +1,5 @@
+A jumbo article
+###############
+
+:date: 2017-12-09
+:cover: image.jpg
diff --git a/pelican-theme/test/blog_minimal/article.html b/pelican-theme/test/blog_minimal/article.html
new file mode 100644 (file)
index 0000000..e467254
--- /dev/null
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>An article | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="keywords" content="" />
+  <meta property="og:title" content="An article" />
+  <meta name="twitter:title" content="An article" />
+  <meta property="og:url" content="article.html" />
+  <meta name="twitter:url" content="article.html" />
+  <meta name="twitter:card" content="summary" />
+  <meta property="og:type" content="article" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <article class="m-col-m-10 m-nopadb">
+      <header>
+        <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+          <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+            Dec <span class="m-date-day">09</span> 2017
+          </time>
+          An article
+        </a></h1>
+      </header>
+      <div class="m-clearfix-l"></div>
+      <footer>
+        <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+      </footer>
+    </article>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_minimal/article.rst b/pelican-theme/test/blog_minimal/article.rst
new file mode 100644 (file)
index 0000000..ea8d0b9
--- /dev/null
@@ -0,0 +1,4 @@
+An article
+##########
+
+:date: 2017-12-09
diff --git a/pelican-theme/test/blog_minimal/category-misc.html b/pelican-theme/test/blog_minimal/category-misc.html
new file mode 100644 (file)
index 0000000..d1c58f1
--- /dev/null
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>misc | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>misc</em>. <a href="./">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_minimal/index.html b/pelican-theme/test/blog_minimal/index.html
new file mode 100644 (file)
index 0000000..f3d42c2
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article-jumbo.html" rel="bookmark" title="Permalink to A jumbo article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            A jumbo article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_modified_date/article.rst b/pelican-theme/test/blog_modified_date/article.rst
new file mode 100644 (file)
index 0000000..5b176b1
--- /dev/null
@@ -0,0 +1,5 @@
+An article
+##########
+
+:date: 2017-12-08
+:modified: 2017-12-10
diff --git a/pelican-theme/test/blog_modified_date/article2.rst b/pelican-theme/test/blog_modified_date/article2.rst
new file mode 100644 (file)
index 0000000..0cbfcd8
--- /dev/null
@@ -0,0 +1,4 @@
+An article 2
+############
+
+:date: 2017-12-09
diff --git a/pelican-theme/test/blog_modified_date/index.html b/pelican-theme/test/blog_modified_date/index.html
new file mode 100644 (file)
index 0000000..6382c7c
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to An article 2">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            An article 2
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            An article
+          </a></h1>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>; <span class="m-text m-success">updated <time datetime="2017-12-10T00:00:00+00:00">Dec 10, 2017</time></span>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination/article1.rst b/pelican-theme/test/blog_pagination/article1.rst
new file mode 100644 (file)
index 0000000..7305b3a
--- /dev/null
@@ -0,0 +1,7 @@
+An article
+##########
+
+:date: 2017-12-07
+:summary: A summary.
+
+The content. It's not shown.
diff --git a/pelican-theme/test/blog_pagination/article2.rst b/pelican-theme/test/blog_pagination/article2.rst
new file mode 100644 (file)
index 0000000..3f8a205
--- /dev/null
@@ -0,0 +1,7 @@
+Another article
+###############
+
+:date: 2017-12-08
+:summary: Another summary.
+
+The content. It's also not shown.
diff --git a/pelican-theme/test/blog_pagination/article3.rst b/pelican-theme/test/blog_pagination/article3.rst
new file mode 100644 (file)
index 0000000..96561c2
--- /dev/null
@@ -0,0 +1,7 @@
+Third article
+#############
+
+:date: 2017-12-09
+:summary: Third summary.
+
+The content. It's shown because it's first on the first page.
diff --git a/pelican-theme/test/blog_pagination/category-misc.html b/pelican-theme/test/blog_pagination/category-misc.html
new file mode 100644 (file)
index 0000000..97b0781
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>misc | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <link rel="next" href="category-misc2.html" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>misc</em>. <a href="./">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article3.html" rel="bookmark" title="Permalink to Third article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            Third article
+          </a></h1>
+          <p>Third summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <div class="m-article-pagination">page 1 | <a href="category-misc2.html">older articles &raquo;</a></div>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination/category-misc2.html b/pelican-theme/test/blog_pagination/category-misc2.html
new file mode 100644 (file)
index 0000000..439bf16
--- /dev/null
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>misc | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <link rel="prev" href="category-misc.html" />
+  <link rel="next" href="category-misc3.html" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>misc</em>. <a href="./">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to Another article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            Another article
+          </a></h1>
+          <p>Another summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <div class="m-article-pagination"><a href="category-misc.html">&laquo; newer articles</a> | page 2 | <a href="category-misc3.html">older articles &raquo;</a></div>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination/category-misc3.html b/pelican-theme/test/blog_pagination/category-misc3.html
new file mode 100644 (file)
index 0000000..20a9d27
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>misc | A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <link rel="prev" href="category-misc2.html" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <div class="m-info m-note">
+        Showing only posts in <em>misc</em>. <a href="./">Show all posts.</a>
+      </div>
+      <article>
+        <header>
+          <h1><a href="article1.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-07T00:00:00+00:00">
+              Dec <span class="m-date-day">07</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>A summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-07T00:00:00+00:00">Dec 07, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <div class="m-article-pagination"><a href="category-misc2.html">&laquo; newer articles</a> | page 3</div>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination/index.html b/pelican-theme/test/blog_pagination/index.html
new file mode 100644 (file)
index 0000000..6a8e54d
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <link rel="next" href="index2.html" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article3.html" rel="bookmark" title="Permalink to Third article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            Third article
+          </a></h1>
+          <p>Third summary.</p>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content. It's shown because it's first on the first page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <div class="m-article-pagination">page 1 | <a href="index2.html">older articles &raquo;</a></div>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination/index2.html b/pelican-theme/test/blog_pagination/index2.html
new file mode 100644 (file)
index 0000000..1b45d24
--- /dev/null
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <link rel="prev" href="index.html" />
+  <link rel="next" href="index3.html" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to Another article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            Another article
+          </a></h1>
+          <p>Another summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <div class="m-article-pagination"><a href="index.html">&laquo; newer articles</a> | page 2 | <a href="index3.html">older articles &raquo;</a></div>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination/index3.html b/pelican-theme/test/blog_pagination/index3.html
new file mode 100644 (file)
index 0000000..aa1df55
--- /dev/null
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <link rel="prev" href="index2.html" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article1.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-07T00:00:00+00:00">
+              Dec <span class="m-date-day">07</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>A summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-07T00:00:00+00:00">Dec 07, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <div class="m-article-pagination"><a href="index2.html">&laquo; newer articles</a> | page 3</div>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
diff --git a/pelican-theme/test/blog_pagination_disabled/article1.rst b/pelican-theme/test/blog_pagination_disabled/article1.rst
new file mode 120000 (symlink)
index 0000000..b55c0b7
--- /dev/null
@@ -0,0 +1 @@
+../blog_pagination/article1.rst
\ No newline at end of file
diff --git a/pelican-theme/test/blog_pagination_disabled/article2.rst b/pelican-theme/test/blog_pagination_disabled/article2.rst
new file mode 120000 (symlink)
index 0000000..0afef4f
--- /dev/null
@@ -0,0 +1 @@
+../blog_pagination/article2.rst
\ No newline at end of file
diff --git a/pelican-theme/test/blog_pagination_disabled/article3.rst b/pelican-theme/test/blog_pagination_disabled/article3.rst
new file mode 120000 (symlink)
index 0000000..221642b
--- /dev/null
@@ -0,0 +1 @@
+../blog_pagination/article3.rst
\ No newline at end of file
diff --git a/pelican-theme/test/blog_pagination_disabled/index.html b/pelican-theme/test/blog_pagination_disabled/index.html
new file mode 100644 (file)
index 0000000..e1cbcf1
--- /dev/null
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  <title>A Pelican Blog</title>
+  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,400i,600%7CSource+Sans+Pro:400,400i,600,600i" />
+  <link rel="stylesheet" href="static/m-dark.css" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+</head>
+<body>
+<header><nav id="navigation">
+  <div class="m-container">
+    <div class="m-row">
+      <a href="./" id="m-navbar-brand" class="m-col-t-9 m-col-m-none m-left-m">A Pelican Blog</a>
+    </div>
+  </div>
+</nav></header>
+<main>
+<div class="m-container">
+  <div class="m-row">
+    <div class="m-col-m-10">
+      <article>
+        <header>
+          <h1><a href="article3.html" rel="bookmark" title="Permalink to Third article">
+            <time class="m-date" datetime="2017-12-09T00:00:00+00:00">
+              Dec <span class="m-date-day">09</span> 2017
+            </time>
+            Third article
+          </a></h1>
+          <p>Third summary.</p>
+        </header>
+        <div class="m-clearfix-l"></div>
+<!-- content -->
+<p>The content. It's shown because it's first on the first page.</p>
+<!-- /content -->
+        <footer>
+          <p>Posted on <time datetime="2017-12-09T00:00:00+00:00">Dec 09, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article2.html" rel="bookmark" title="Permalink to Another article">
+            <time class="m-date" datetime="2017-12-08T00:00:00+00:00">
+              Dec <span class="m-date-day">08</span> 2017
+            </time>
+            Another article
+          </a></h1>
+          <p>Another summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-08T00:00:00+00:00">Dec 08, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+      <article>
+        <header>
+          <h1><a href="article1.html" rel="bookmark" title="Permalink to An article">
+            <time class="m-date" datetime="2017-12-07T00:00:00+00:00">
+              Dec <span class="m-date-day">07</span> 2017
+            </time>
+            An article
+          </a></h1>
+          <p>A summary.</p>
+        </header>
+        <footer>
+          <p>Posted on <time datetime="2017-12-07T00:00:00+00:00">Dec 07, 2017</time> in <a href="category-misc.html">misc</a>.</p>
+        </footer>
+        <div class="m-clearfix-l"></div>
+      </article>
+    </div>
+    <nav class="m-navpanel m-col-m-2">
+      <h3>Categories</h3>
+      <ol class="m-block-bar-m">
+        <li><a href="category-misc.html">misc</a></li>
+      </ol>
+    </nav>
+  </div>
+</div>
+</main>
+</body>
+</html>
\ No newline at end of file
diff --git a/pelican-theme/test/test_blog.py b/pelican-theme/test/test_blog.py
new file mode 100644 (file)
index 0000000..e530b40
--- /dev/null
@@ -0,0 +1,398 @@
+from test import BlogTestCase
+
+class Blog(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, '', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'AUTHOR': "Implicit Author",
+            'STATIC_PATHS': ['ship.jpg'],
+            'M_BLOG_URL': 'archives.html',
+            'FORMATTED_FIELDS': ['summary', 'description']
+        })
+
+        # The archives and index page should be exactly the same
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+        # Default and jumbo article rendering
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+        # Author, category, tag pages (selecting just one of each)
+        self.assertEqual(*self.actual_expected_contents('author-explicit-author.html'))
+        self.assertEqual(*self.actual_expected_contents('category-another-category.html'))
+        self.assertEqual(*self.actual_expected_contents('tag-third.html'))
+
+class Minimal(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'minimal', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({})
+
+        # The summary, content blocks should not be there at all, no mention of
+        # authors. Index and archive page should be exactly the same. Header
+        # metadata should be empty as well. Verify also the category page as it
+        # is a base for author/tag listing as well.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+        self.assertEqual(*self.actual_expected_contents('category-misc.html'))
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class JumboInverted(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'jumbo_inverted', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({})
+
+        # The <article> should have a m-inverted class
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class AuthorList(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'author_list', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'AUTHOR': "An Author",
+            'M_SHOW_AUTHOR_LIST': True
+        })
+
+        # Verify both right sidebar and bottom columns on jumbo articles. It's
+        # without tags, which is the third option to be considered there.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class FooterLinks(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'footer_links', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({'M_LINKS_FOOTER2': [('Title', '#')]})
+
+        # There should be second and fourth column
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+
+class ModifiedDate(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'modified_date', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({})
+
+        # Article footer should show the modified date, but it doesn't affect
+        # ordering
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+
+class Pagination(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'pagination', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'DEFAULT_PAGINATION': 1,
+            'PAGINATION_PATTERNS':
+                [(1, 'index.html', '{name}.html'),
+                 (2, 'index{number}.html', '{name}{number}.html')],
+            'DIRECT_TEMPLATES': ['index', 'archives'],
+            'PAGINATED_DIRECT_TEMPLATES': ['index', 'archives']
+        })
+
+        # Every page should contain just one article, only the first page
+        # should have it expanded
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('index2.html'))
+        self.assertEqual(*self.actual_expected_contents('index3.html'))
+
+        # Archives are fully equivalent to index (even the links due to patched
+        # pagination patterns)
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives2.html', 'index2.html'))
+        self.assertEqual(*self.actual_expected_contents('archives3.html', 'index3.html'))
+
+    def test_categories(self):
+        self.run_pelican({
+            'DEFAULT_PAGINATION': 1,
+            'DIRECT_TEMPLATES': []
+        })
+
+        # Test the category pages as well (same as author/tag). Couldn't test
+        # that in the above test case because of the overriden pagination
+        # patterns.
+        self.assertEqual(*self.actual_expected_contents('category-misc.html'))
+        self.assertEqual(*self.actual_expected_contents('category-misc2.html'))
+        self.assertEqual(*self.actual_expected_contents('category-misc3.html'))
+
+class PaginationDisabled(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'pagination_disabled', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'DEFAULT_PAGINATION': 1,
+            'PAGINATED_DIRECT_TEMPLATES': []
+        })
+
+        # Nothing is paginated
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+class CollapseFirstGlobal(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_global', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True
+        })
+
+        # First article should be collapsed. Index the same as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+class CollapseFirstArticle(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_article', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({})
+
+        # First article should be collapsed. Index the same as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_collapse_first_global/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_collapse_first_global/index.html'))
+
+class CollapseFirstBoth(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_both', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True
+        })
+
+        # Globally enabled, re-enabled in article, so it should be expanded.
+        # Index the same as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+class HideSummaryGlobal(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'hide_summary_global', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # First (expanded) article summary should be hidden. Index the same as
+        # archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+        # Category (and other listing) has always just the summary
+        self.assertEqual(*self.actual_expected_contents('category-misc.html'))
+
+class HideSummaryArticle(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'hide_summary_article', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({})
+
+        # First article summary should be shown
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_hide_summary_global/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_hide_summary_global/index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html', '../blog_hide_summary_global/article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html', '../blog_hide_summary_global/article-jumbo.html'))
+
+class HideSummaryBoth(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'hide_summary_both', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # Globally enabled, re-enabled in article, so it should be shown. Index
+        # the same as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+
+        # Both classic and jumbo article should have summary shown
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class CollapseFirstGlobalHideSummaryGlobal(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_global_hide_summary_global', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True,
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # First article is not expanded, with visible summary. Index the same
+        # as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class CollapseFirstGlobalHideSummaryArticle(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_global_hide_summary_article', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True
+        })
+
+        # First article is not expanded, with visible summary. Index the same
+        # as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_collapse_first_global_hide_summary_global/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_collapse_first_global_hide_summary_global/index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html', '../blog_collapse_first_global_hide_summary_global/article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html', '../blog_collapse_first_global_hide_summary_global/article-jumbo.html'))
+
+class CollapseFirstGlobalHideSummaryBoth(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_global_hide_summary_both', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True,
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # First article is not expanded, with visible summary. Index the same
+        # as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+        # Both classic and jumbo article should have summary shown
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class CollapseFirstArticleHideSummaryGlobal(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_article_hide_summary_global', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_HIDE_ARTICLE_SUMMARY': True,
+        })
+
+        # First article is not expanded, with visible summary. Index the same
+        # as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_collapse_first_global_hide_summary_global/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_collapse_first_global_hide_summary_global/index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html', '../blog_collapse_first_global_hide_summary_global/article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html', '../blog_collapse_first_global_hide_summary_global/article-jumbo.html'))
+
+class CollapseFirstArticleHideSummaryArticle(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_article_hide_summary_article', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({})
+
+        # First article is not expanded, with visible summary. Index the same
+        # as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_collapse_first_global_hide_summary_global/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_collapse_first_global_hide_summary_global/index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html', '../blog_collapse_first_global_hide_summary_global/article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html', '../blog_collapse_first_global_hide_summary_global/article-jumbo.html'))
+
+class CollapseFirstArticleHideSummaryBoth(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_article_hide_summary_both', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # First article is not expanded, with visible summary. Index the same
+        # as archives.
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_collapse_first_global_hide_summary_both/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_collapse_first_global_hide_summary_both/index.html'))
+
+        # Both classic and jumbo article should have summary shown
+        self.assertEqual(*self.actual_expected_contents('article.html', '../blog_collapse_first_global_hide_summary_both/article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html', '../blog_collapse_first_global_hide_summary_both/article-jumbo.html'))
+
+class CollapseFirstBothHideSummaryGlobal(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_both_hide_summary_global', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True,
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # First (expanded) article summary should be shown. Index the same as
+        # archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))
+
+class CollapseFirstBothHideSummaryArticle(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_both_hide_summary_article', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True
+        })
+
+        # First (expanded) article summary should be shown. Index the same as
+        # archives.
+        self.assertEqual(*self.actual_expected_contents('index.html', '../blog_collapse_first_both_hide_summary_global/index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', '../blog_collapse_first_both_hide_summary_global/index.html'))
+
+        # Both classic and jumbo article should have summary hidden
+        self.assertEqual(*self.actual_expected_contents('article.html', '../blog_collapse_first_both_hide_summary_global/article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html', '../blog_collapse_first_both_hide_summary_global/article-jumbo.html'))
+
+class CollapseFirstBothHideSummaryBoth(BlogTestCase):
+    def __init__(self, *args, **kwargs):
+        super().__init__(__file__, 'collapse_first_both_hide_summary_both', *args, **kwargs)
+
+    def test(self):
+        self.run_pelican({
+            'M_COLLAPSE_FIRST_ARTICLE': True,
+            'M_HIDE_ARTICLE_SUMMARY': True
+        })
+
+        # First (expanded) article summary should be shown. Index the same as
+        # archives.
+        self.assertEqual(*self.actual_expected_contents('index.html'))
+        self.assertEqual(*self.actual_expected_contents('archives.html', 'index.html'))
+
+        # Both classic and jumbo article should have summary shown
+        self.assertEqual(*self.actual_expected_contents('article.html'))
+        self.assertEqual(*self.actual_expected_contents('article-jumbo.html'))