We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Archives (CREATE_MONTHLY_ARCHIVE = True) think all months are "None"
https://irclogs.getnikola.com/2015/

To reproduce locally: get https://github.com/getnikola/irclogs-site create any random files in `posts/*.rst`.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `nikola/plugins/task/archive.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 # Copyright © 2012-2016 Roberto Alsina and others.
4 
5 # Permission is hereby granted, free of charge, to any
6 # person obtaining a copy of this software and associated
7 # documentation files (the "Software"), to deal in the
8 # Software without restriction, including without limitation
9 # the rights to use, copy, modify, merge, publish,
10 # distribute, sublicense, and/or sell copies of the
11 # Software, and to permit persons to whom the Software is
12 # furnished to do so, subject to the following conditions:
13 #
14 # The above copyright notice and this permission notice
15 # shall be included in all copies or substantial portions of
16 # the Software.
17 #
18 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
19 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
20 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
21 # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
22 # OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24 # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 
27 """Classify the posts in archives."""
28 
29 import os
30 import nikola.utils
31 import datetime
32 from nikola.plugin_categories import Taxonomy
33 
34 
35 class Archive(Taxonomy):
36     """Classify the post archives."""
37 
38     name = "classify_archive"
39 
40     classification_name = "archive"
41     overview_page_variable_name = "archive"
42     more_than_one_classifications_per_post = False
43     has_hierarchy = True
44     include_posts_from_subhierarchies = True
45     include_posts_into_hierarchy_root = True
46     subcategories_list_template = "list.tmpl"
47     generate_atom_feeds_for_post_lists = False
48     template_for_classification_overview = None
49     always_disable_rss = True
50     apply_to_posts = True
51     apply_to_pages = False
52     minimum_post_count_per_classification_in_overview = 1
53     omit_empty_classifications = False
54     also_create_classifications_from_other_languages = False
55 
56     def set_site(self, site):
57         """Set Nikola site."""
58         # Sanity checks
59         if (site.config['CREATE_MONTHLY_ARCHIVE'] and site.config['CREATE_SINGLE_ARCHIVE']) and not site.config['CREATE_FULL_ARCHIVES']:
60             raise Exception('Cannot create monthly and single archives at the same time.')
61         # Finish setup
62         self.show_list_as_subcategories_list = not site.config['CREATE_FULL_ARCHIVES']
63         self.show_list_as_index = site.config['ARCHIVES_ARE_INDEXES']
64         self.template_for_single_list = "archiveindex.tmpl" if site.config['ARCHIVES_ARE_INDEXES'] else "list_post.tmpl"
65         # Determine maximum hierarchy height
66         if site.config['CREATE_DAILY_ARCHIVE'] or site.config['CREATE_FULL_ARCHIVES']:
67             self.max_levels = 3
68         elif site.config['CREATE_MONTHLY_ARCHIVE']:
69             self.max_levels = 2
70         elif site.config['CREATE_SINGLE_ARCHIVE']:
71             self.max_levels = 0
72         else:
73             self.max_levels = 1
74         return super(Archive, self).set_site(site)
75 
76     def get_implicit_classifications(self, lang):
77         """Return a list of classification strings which should always appear in posts_per_classification."""
78         return ['']
79 
80     def classify(self, post, lang):
81         """Classify the given post for the given language."""
82         levels = [str(post.date.year).zfill(4), str(post.date.month).zfill(2), str(post.date.day).zfill(2)]
83         return ['/'.join(levels[:self.max_levels])]
84 
85     def sort_classifications(self, classifications, lang, level=None):
86         """Sort the given list of classification strings."""
87         if level in (0, 1):
88             # Years or months: sort descending
89             classifications.sort()
90             classifications.reverse()
91 
92     def get_classification_friendly_name(self, classification, lang, only_last_component=False):
93         """Extract a friendly name from the classification."""
94         classification = self.extract_hierarchy(classification)
95         if len(classification) == 0:
96             return ""
97         elif len(classification) == 1:
98             return classification[0]
99         elif len(classification) == 2:
100             nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)
101         else:
102             # Fallback
103             return '/'.join(classification)
104 
105     def get_path(self, classification, lang, dest_type='page'):
106         """A path handler for the given classification."""
107         components = [self.site.config['ARCHIVE_PATH']]
108         if classification:
109             components.extend(classification)
110             add_index = 'always'
111         else:
112             components.append(os.path.splitext(self.site.config['ARCHIVE_FILENAME'])[0])
113             add_index = 'never'
114         return [_f for _f in components if _f], add_index
115 
116     def extract_hierarchy(self, classification):
117         """Given a classification, return a list of parts in the hierarchy."""
118         return classification.split('/') if classification else []
119 
120     def recombine_classification_from_hierarchy(self, hierarchy):
121         """Given a list of parts in the hierarchy, return the classification string."""
122         return '/'.join(hierarchy)
123 
124     def provide_context_and_uptodate(self, classification, lang, node=None):
125         """Provide data for the context and the uptodate list for the list of the given classifiation."""
126         hierarchy = self.extract_hierarchy(classification)
127         kw = {
128             "messages": self.site.MESSAGES,
129         }
130         page_kind = "list"
131         if self.show_list_as_index:
132             if not self.show_list_as_subcategories_list or len(hierarchy) == self.max_levels:
133                 page_kind = "index"
134         if len(hierarchy) == 0:
135             title = kw["messages"][lang]["Archive"]
136             kw["is_feed_stale"] = False
137         elif len(hierarchy) == 1:
138             title = kw["messages"][lang]["Posts for year %s"] % hierarchy[0]
139             kw["is_feed_stale"] = (datetime.datetime.utcnow().strftime("%Y") != hierarchy[0])
140         elif len(hierarchy) == 2:
141             title = kw["messages"][lang]["Posts for {month} {year}"].format(
142                 year=hierarchy[0],
143                 month=nikola.utils.LocaleBorg().get_month_name(int(hierarchy[1]), lang))
144             kw["is_feed_stale"] = (datetime.datetime.utcnow().strftime("%Y/%m") != classification)
145         elif len(hierarchy) == 3:
146             title = kw["messages"][lang]["Posts for {month} {day}, {year}"].format(
147                 year=hierarchy[0],
148                 month=nikola.utils.LocaleBorg().get_month_name(int(hierarchy[1]), lang),
149                 day=int(hierarchy[2]))
150             kw["is_feed_stale"] = (datetime.datetime.utcnow().strftime("%Y/%m/%d") != classification)
151         else:
152             raise Exception("Cannot interpret classification {}!".format(repr(classification)))
153         context = {
154             "title": title,
155             "pagekind": [page_kind, "archive_page"],
156         }
157         if page_kind == 'index':
158             context["archive_name"] = classification if classification else None
159             context["is_feed_stale"] = kw["is_feed_stale"]
160         kw.update(context)
161         return context, kw
162 
163     def should_generate_classification_page(self, classification, post_list, lang):
164         """Only generates list of posts for classification if this function returns True."""
165         return len(classification.split('/')) < 3 or len(post_list) > 0
166
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/nikola/plugins/task/archive.py b/nikola/plugins/task/archive.py
--- a/nikola/plugins/task/archive.py
+++ b/nikola/plugins/task/archive.py
@@ -97,7 +97,7 @@
         elif len(classification) == 1:
             return classification[0]
         elif len(classification) == 2:
-            nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)
+            return nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)
         else:
             # Fallback
             return '/'.join(classification)

{"golden_diff": "diff --git a/nikola/plugins/task/archive.py b/nikola/plugins/task/archive.py\n--- a/nikola/plugins/task/archive.py\n+++ b/nikola/plugins/task/archive.py\n@@ -97,7 +97,7 @@\n         elif len(classification) == 1:\n             return classification[0]\n         elif len(classification) == 2:\n-            nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)\n+            return nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)\n         else:\n             # Fallback\n             return '/'.join(classification)\n", "issue": "Archives (CREATE_MONTHLY_ARCHIVE = True) think all months are \"None\"\nhttps://irclogs.getnikola.com/2015/\r\n\r\nTo reproduce locally: get https://github.com/getnikola/irclogs-site create any random files in `posts/*.rst`.\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\n# Copyright \u00a9 2012-2016 Roberto Alsina and others.\n\n# Permission is hereby granted, free of charge, to any\n# person obtaining a copy of this software and associated\n# documentation files (the \"Software\"), to deal in the\n# Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish,\n# distribute, sublicense, and/or sell copies of the\n# Software, and to permit persons to whom the Software is\n# furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice\n# shall be included in all copies or substantial portions of\n# the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY\n# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\n# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR\n# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\n# OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\"\"\"Classify the posts in archives.\"\"\"\n\nimport os\nimport nikola.utils\nimport datetime\nfrom nikola.plugin_categories import Taxonomy\n\n\nclass Archive(Taxonomy):\n    \"\"\"Classify the post archives.\"\"\"\n\n    name = \"classify_archive\"\n\n    classification_name = \"archive\"\n    overview_page_variable_name = \"archive\"\n    more_than_one_classifications_per_post = False\n    has_hierarchy = True\n    include_posts_from_subhierarchies = True\n    include_posts_into_hierarchy_root = True\n    subcategories_list_template = \"list.tmpl\"\n    generate_atom_feeds_for_post_lists = False\n    template_for_classification_overview = None\n    always_disable_rss = True\n    apply_to_posts = True\n    apply_to_pages = False\n    minimum_post_count_per_classification_in_overview = 1\n    omit_empty_classifications = False\n    also_create_classifications_from_other_languages = False\n\n    def set_site(self, site):\n        \"\"\"Set Nikola site.\"\"\"\n        # Sanity checks\n        if (site.config['CREATE_MONTHLY_ARCHIVE'] and site.config['CREATE_SINGLE_ARCHIVE']) and not site.config['CREATE_FULL_ARCHIVES']:\n            raise Exception('Cannot create monthly and single archives at the same time.')\n        # Finish setup\n        self.show_list_as_subcategories_list = not site.config['CREATE_FULL_ARCHIVES']\n        self.show_list_as_index = site.config['ARCHIVES_ARE_INDEXES']\n        self.template_for_single_list = \"archiveindex.tmpl\" if site.config['ARCHIVES_ARE_INDEXES'] else \"list_post.tmpl\"\n        # Determine maximum hierarchy height\n        if site.config['CREATE_DAILY_ARCHIVE'] or site.config['CREATE_FULL_ARCHIVES']:\n            self.max_levels = 3\n        elif site.config['CREATE_MONTHLY_ARCHIVE']:\n            self.max_levels = 2\n        elif site.config['CREATE_SINGLE_ARCHIVE']:\n            self.max_levels = 0\n        else:\n            self.max_levels = 1\n        return super(Archive, self).set_site(site)\n\n    def get_implicit_classifications(self, lang):\n        \"\"\"Return a list of classification strings which should always appear in posts_per_classification.\"\"\"\n        return ['']\n\n    def classify(self, post, lang):\n        \"\"\"Classify the given post for the given language.\"\"\"\n        levels = [str(post.date.year).zfill(4), str(post.date.month).zfill(2), str(post.date.day).zfill(2)]\n        return ['/'.join(levels[:self.max_levels])]\n\n    def sort_classifications(self, classifications, lang, level=None):\n        \"\"\"Sort the given list of classification strings.\"\"\"\n        if level in (0, 1):\n            # Years or months: sort descending\n            classifications.sort()\n            classifications.reverse()\n\n    def get_classification_friendly_name(self, classification, lang, only_last_component=False):\n        \"\"\"Extract a friendly name from the classification.\"\"\"\n        classification = self.extract_hierarchy(classification)\n        if len(classification) == 0:\n            return \"\"\n        elif len(classification) == 1:\n            return classification[0]\n        elif len(classification) == 2:\n            nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)\n        else:\n            # Fallback\n            return '/'.join(classification)\n\n    def get_path(self, classification, lang, dest_type='page'):\n        \"\"\"A path handler for the given classification.\"\"\"\n        components = [self.site.config['ARCHIVE_PATH']]\n        if classification:\n            components.extend(classification)\n            add_index = 'always'\n        else:\n            components.append(os.path.splitext(self.site.config['ARCHIVE_FILENAME'])[0])\n            add_index = 'never'\n        return [_f for _f in components if _f], add_index\n\n    def extract_hierarchy(self, classification):\n        \"\"\"Given a classification, return a list of parts in the hierarchy.\"\"\"\n        return classification.split('/') if classification else []\n\n    def recombine_classification_from_hierarchy(self, hierarchy):\n        \"\"\"Given a list of parts in the hierarchy, return the classification string.\"\"\"\n        return '/'.join(hierarchy)\n\n    def provide_context_and_uptodate(self, classification, lang, node=None):\n        \"\"\"Provide data for the context and the uptodate list for the list of the given classifiation.\"\"\"\n        hierarchy = self.extract_hierarchy(classification)\n        kw = {\n            \"messages\": self.site.MESSAGES,\n        }\n        page_kind = \"list\"\n        if self.show_list_as_index:\n            if not self.show_list_as_subcategories_list or len(hierarchy) == self.max_levels:\n                page_kind = \"index\"\n        if len(hierarchy) == 0:\n            title = kw[\"messages\"][lang][\"Archive\"]\n            kw[\"is_feed_stale\"] = False\n        elif len(hierarchy) == 1:\n            title = kw[\"messages\"][lang][\"Posts for year %s\"] % hierarchy[0]\n            kw[\"is_feed_stale\"] = (datetime.datetime.utcnow().strftime(\"%Y\") != hierarchy[0])\n        elif len(hierarchy) == 2:\n            title = kw[\"messages\"][lang][\"Posts for {month} {year}\"].format(\n                year=hierarchy[0],\n                month=nikola.utils.LocaleBorg().get_month_name(int(hierarchy[1]), lang))\n            kw[\"is_feed_stale\"] = (datetime.datetime.utcnow().strftime(\"%Y/%m\") != classification)\n        elif len(hierarchy) == 3:\n            title = kw[\"messages\"][lang][\"Posts for {month} {day}, {year}\"].format(\n                year=hierarchy[0],\n                month=nikola.utils.LocaleBorg().get_month_name(int(hierarchy[1]), lang),\n                day=int(hierarchy[2]))\n            kw[\"is_feed_stale\"] = (datetime.datetime.utcnow().strftime(\"%Y/%m/%d\") != classification)\n        else:\n            raise Exception(\"Cannot interpret classification {}!\".format(repr(classification)))\n        context = {\n            \"title\": title,\n            \"pagekind\": [page_kind, \"archive_page\"],\n        }\n        if page_kind == 'index':\n            context[\"archive_name\"] = classification if classification else None\n            context[\"is_feed_stale\"] = kw[\"is_feed_stale\"]\n        kw.update(context)\n        return context, kw\n\n    def should_generate_classification_page(self, classification, post_list, lang):\n        \"\"\"Only generates list of posts for classification if this function returns True.\"\"\"\n        return len(classification.split('/')) < 3 or len(post_list) > 0\n", "path": "nikola/plugins/task/archive.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\n# Copyright \u00a9 2012-2016 Roberto Alsina and others.\n\n# Permission is hereby granted, free of charge, to any\n# person obtaining a copy of this software and associated\n# documentation files (the \"Software\"), to deal in the\n# Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish,\n# distribute, sublicense, and/or sell copies of the\n# Software, and to permit persons to whom the Software is\n# furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice\n# shall be included in all copies or substantial portions of\n# the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY\n# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\n# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR\n# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\n# OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\"\"\"Classify the posts in archives.\"\"\"\n\nimport os\nimport nikola.utils\nimport datetime\nfrom nikola.plugin_categories import Taxonomy\n\n\nclass Archive(Taxonomy):\n    \"\"\"Classify the post archives.\"\"\"\n\n    name = \"classify_archive\"\n\n    classification_name = \"archive\"\n    overview_page_variable_name = \"archive\"\n    more_than_one_classifications_per_post = False\n    has_hierarchy = True\n    include_posts_from_subhierarchies = True\n    include_posts_into_hierarchy_root = True\n    subcategories_list_template = \"list.tmpl\"\n    generate_atom_feeds_for_post_lists = False\n    template_for_classification_overview = None\n    always_disable_rss = True\n    apply_to_posts = True\n    apply_to_pages = False\n    minimum_post_count_per_classification_in_overview = 1\n    omit_empty_classifications = False\n    also_create_classifications_from_other_languages = False\n\n    def set_site(self, site):\n        \"\"\"Set Nikola site.\"\"\"\n        # Sanity checks\n        if (site.config['CREATE_MONTHLY_ARCHIVE'] and site.config['CREATE_SINGLE_ARCHIVE']) and not site.config['CREATE_FULL_ARCHIVES']:\n            raise Exception('Cannot create monthly and single archives at the same time.')\n        # Finish setup\n        self.show_list_as_subcategories_list = not site.config['CREATE_FULL_ARCHIVES']\n        self.show_list_as_index = site.config['ARCHIVES_ARE_INDEXES']\n        self.template_for_single_list = \"archiveindex.tmpl\" if site.config['ARCHIVES_ARE_INDEXES'] else \"list_post.tmpl\"\n        # Determine maximum hierarchy height\n        if site.config['CREATE_DAILY_ARCHIVE'] or site.config['CREATE_FULL_ARCHIVES']:\n            self.max_levels = 3\n        elif site.config['CREATE_MONTHLY_ARCHIVE']:\n            self.max_levels = 2\n        elif site.config['CREATE_SINGLE_ARCHIVE']:\n            self.max_levels = 0\n        else:\n            self.max_levels = 1\n        return super(Archive, self).set_site(site)\n\n    def get_implicit_classifications(self, lang):\n        \"\"\"Return a list of classification strings which should always appear in posts_per_classification.\"\"\"\n        return ['']\n\n    def classify(self, post, lang):\n        \"\"\"Classify the given post for the given language.\"\"\"\n        levels = [str(post.date.year).zfill(4), str(post.date.month).zfill(2), str(post.date.day).zfill(2)]\n        return ['/'.join(levels[:self.max_levels])]\n\n    def sort_classifications(self, classifications, lang, level=None):\n        \"\"\"Sort the given list of classification strings.\"\"\"\n        if level in (0, 1):\n            # Years or months: sort descending\n            classifications.sort()\n            classifications.reverse()\n\n    def get_classification_friendly_name(self, classification, lang, only_last_component=False):\n        \"\"\"Extract a friendly name from the classification.\"\"\"\n        classification = self.extract_hierarchy(classification)\n        if len(classification) == 0:\n            return \"\"\n        elif len(classification) == 1:\n            return classification[0]\n        elif len(classification) == 2:\n            return nikola.utils.LocaleBorg().get_month_name(int(classification[1]), lang)\n        else:\n            # Fallback\n            return '/'.join(classification)\n\n    def get_path(self, classification, lang, dest_type='page'):\n        \"\"\"A path handler for the given classification.\"\"\"\n        components = [self.site.config['ARCHIVE_PATH']]\n        if classification:\n            components.extend(classification)\n            add_index = 'always'\n        else:\n            components.append(os.path.splitext(self.site.config['ARCHIVE_FILENAME'])[0])\n            add_index = 'never'\n        return [_f for _f in components if _f], add_index\n\n    def extract_hierarchy(self, classification):\n        \"\"\"Given a classification, return a list of parts in the hierarchy.\"\"\"\n        return classification.split('/') if classification else []\n\n    def recombine_classification_from_hierarchy(self, hierarchy):\n        \"\"\"Given a list of parts in the hierarchy, return the classification string.\"\"\"\n        return '/'.join(hierarchy)\n\n    def provide_context_and_uptodate(self, classification, lang, node=None):\n        \"\"\"Provide data for the context and the uptodate list for the list of the given classifiation.\"\"\"\n        hierarchy = self.extract_hierarchy(classification)\n        kw = {\n            \"messages\": self.site.MESSAGES,\n        }\n        page_kind = \"list\"\n        if self.show_list_as_index:\n            if not self.show_list_as_subcategories_list or len(hierarchy) == self.max_levels:\n                page_kind = \"index\"\n        if len(hierarchy) == 0:\n            title = kw[\"messages\"][lang][\"Archive\"]\n            kw[\"is_feed_stale\"] = False\n        elif len(hierarchy) == 1:\n            title = kw[\"messages\"][lang][\"Posts for year %s\"] % hierarchy[0]\n            kw[\"is_feed_stale\"] = (datetime.datetime.utcnow().strftime(\"%Y\") != hierarchy[0])\n        elif len(hierarchy) == 2:\n            title = kw[\"messages\"][lang][\"Posts for {month} {year}\"].format(\n                year=hierarchy[0],\n                month=nikola.utils.LocaleBorg().get_month_name(int(hierarchy[1]), lang))\n            kw[\"is_feed_stale\"] = (datetime.datetime.utcnow().strftime(\"%Y/%m\") != classification)\n        elif len(hierarchy) == 3:\n            title = kw[\"messages\"][lang][\"Posts for {month} {day}, {year}\"].format(\n                year=hierarchy[0],\n                month=nikola.utils.LocaleBorg().get_month_name(int(hierarchy[1]), lang),\n                day=int(hierarchy[2]))\n            kw[\"is_feed_stale\"] = (datetime.datetime.utcnow().strftime(\"%Y/%m/%d\") != classification)\n        else:\n            raise Exception(\"Cannot interpret classification {}!\".format(repr(classification)))\n        context = {\n            \"title\": title,\n            \"pagekind\": [page_kind, \"archive_page\"],\n        }\n        if page_kind == 'index':\n            context[\"archive_name\"] = classification if classification else None\n            context[\"is_feed_stale\"] = kw[\"is_feed_stale\"]\n        kw.update(context)\n        return context, kw\n\n    def should_generate_classification_page(self, classification, post_list, lang):\n        \"\"\"Only generates list of posts for classification if this function returns True.\"\"\"\n        return len(classification.split('/')) < 3 or len(post_list) > 0\n", "path": "nikola/plugins/task/archive.py"}]}