Hidden articles implementation

This commit is contained in:
Gio 2021-04-16 20:30:37 -05:00
commit 955fddf744
3 changed files with 19 additions and 8 deletions

View file

@ -137,6 +137,11 @@ class Pelican:
len(articles_generator.drafts_translations)), len(articles_generator.drafts_translations)),
'draft', 'draft',
'drafts') 'drafts')
pluralized_hidden_articles = maybe_pluralize(
(len(articles_generator.hidden_articles) +
len(articles_generator.hidden_translations)),
'hidden article',
'hidden articles')
pluralized_pages = maybe_pluralize( pluralized_pages = maybe_pluralize(
(len(pages_generator.pages) + (len(pages_generator.pages) +
len(pages_generator.translations)), len(pages_generator.translations)),
@ -153,10 +158,11 @@ class Pelican:
'draft page', 'draft page',
'draft pages') 'draft pages')
print('Done: Processed {}, {}, {}, {} and {} in {:.2f} seconds.' print('Done: Processed {}, {}, {}, {}, {} and {} in {:.2f} seconds.'
.format( .format(
pluralized_articles, pluralized_articles,
pluralized_drafts, pluralized_drafts,
pluralized_hidden_articles,
pluralized_pages, pluralized_pages,
pluralized_hidden_pages, pluralized_hidden_pages,
pluralized_draft_pages, pluralized_draft_pages,

View file

@ -180,9 +180,9 @@ class Content:
if hasattr(self, 'allowed_statuses'): if hasattr(self, 'allowed_statuses'):
if self.status not in self.allowed_statuses: if self.status not in self.allowed_statuses:
logger.error( logger.error(
"Unknown status '%s' for file %s, skipping it.", "Unknown status '%s' for file %s, skipping it. (Not in %s)",
self.status, self.status,
self self, self.allowed_statuses
) )
return False return False
@ -495,7 +495,7 @@ class Page(Content):
class Article(Content): class Article(Content):
mandatory_properties = ('title', 'date', 'category') mandatory_properties = ('title', 'date', 'category')
allowed_statuses = ('published', 'draft') allowed_statuses = ('published', 'hidden', 'draft')
default_status = 'published' default_status = 'published'
default_template = 'article' default_template = 'article'

View file

@ -648,6 +648,7 @@ class ArticlesGenerator(CachingGenerator):
all_drafts.append(article) all_drafts.append(article)
elif article.status == "hidden": elif article.status == "hidden":
hidden_articles.append(article) hidden_articles.append(article)
self.add_source_path(article) self.add_source_path(article)
self.add_static_links(article) self.add_static_links(article)
@ -665,7 +666,7 @@ class ArticlesGenerator(CachingGenerator):
for article in self.articles: for article in self.articles:
# only main articles are listed in categories and tags # only main articles are listed in categories and tags
# not translations # not translations or hidden articles
self.categories[article.category].append(article) self.categories[article.category].append(article)
if hasattr(article, 'tags'): if hasattr(article, 'tags'):
for tag in article.tags: for tag in article.tags:
@ -687,8 +688,10 @@ class ArticlesGenerator(CachingGenerator):
self.authors = list(self.authors.items()) self.authors = list(self.authors.items())
self.authors.sort() self.authors.sort()
self._update_context(('articles', 'dates', 'tags', 'categories', self._update_context((
'authors', 'related_posts', 'drafts')) 'articles', 'drafts', 'hidden_articles',
'dates', 'tags', 'categories',
'authors', 'related_posts'))
self.save_cache() self.save_cache()
self.readers.save_cache() self.readers.save_cache()
signals.article_generator_finalized.send(self) signals.article_generator_finalized.send(self)
@ -702,7 +705,9 @@ class ArticlesGenerator(CachingGenerator):
for e in chain(self.articles, for e in chain(self.articles,
self.translations, self.translations,
self.drafts, self.drafts,
self.drafts_translations): self.drafts_translations,
self.hidden_articles,
self.hidden_translations):
if hasattr(e, 'refresh_metadata_intersite_links'): if hasattr(e, 'refresh_metadata_intersite_links'):
e.refresh_metadata_intersite_links() e.refresh_metadata_intersite_links()