Skip to content

Commit

Permalink
Add disabled status for #3304 (POC)
Browse files Browse the repository at this point in the history
  • Loading branch information
GiovanH committed Jun 30, 2024
1 parent 513abbf commit dbc85aa
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 4 deletions.
24 changes: 22 additions & 2 deletions pelican/contents.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,9 +547,29 @@ def refresh_metadata_intersite_links(self) -> None:
self._summary = self.metadata["summary"]


class SkipStub(Content):
# Stub class representing content that should not be processed in any way

def __init__(
self, content, metadata=None, settings=None, source_path=None, context=None
):
self.source_path = source_path

def is_valid(self):
return False

@property
def content(self):
raise NotImplementedError("Stub content should not be read")

@property
def save_as(self):
raise NotImplementedError("Stub content cannot be saved")


class Page(Content):
mandatory_properties = ("title",)
allowed_statuses = ("published", "hidden", "draft")
allowed_statuses = ("published", "hidden", "draft", "skip")
default_status = "published"
default_template = "page"

Expand All @@ -560,7 +580,7 @@ def _expand_settings(self, key: str) -> str:

class Article(Content):
mandatory_properties = ("title", "date", "category")
allowed_statuses = ("published", "hidden", "draft")
allowed_statuses = ("published", "hidden", "draft", "skip")
default_status = "published"
default_template = "article"

Expand Down
15 changes: 14 additions & 1 deletion pelican/generators.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
)

from pelican.cache import FileStampDataCacher
from pelican.contents import Article, Page, Static
from pelican.contents import Article, Page, Static, SkipStub
from pelican.plugins import signals
from pelican.plugins._utils import plugin_enabled
from pelican.readers import Readers
Expand Down Expand Up @@ -690,6 +690,10 @@ def generate_context(self):
self._add_failed_source_path(f)
continue

if isinstance(article, SkipStub):
logger.debug("Safely skipping %s", f)
continue

if not article.is_valid():
self._add_failed_source_path(f)
continue
Expand All @@ -702,6 +706,8 @@ def generate_context(self):
all_drafts.append(article)
elif article.status == "hidden":
hidden_articles.append(article)
elif article.status == "skip":
raise AssertionError("Documents with 'skip' status should be skipped")

self.add_source_path(article)
self.add_static_links(article)
Expand Down Expand Up @@ -899,6 +905,10 @@ def generate_context(self):
self._add_failed_source_path(f)
continue

if isinstance(page, SkipStub):
logger.debug("Safely skipping %s", f)
continue

if not page.is_valid():
self._add_failed_source_path(f)
continue
Expand All @@ -911,6 +921,9 @@ def generate_context(self):
hidden_pages.append(page)
elif page.status == "draft":
draft_pages.append(page)
elif page.status == "skip":
raise AssertionError("Documents with 'skip' status should be skipped")

self.add_source_path(page)
self.add_static_links(page)

Expand Down
5 changes: 4 additions & 1 deletion pelican/readers.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

from pelican import rstdirectives # NOQA
from pelican.cache import FileStampDataCacher
from pelican.contents import Author, Category, Page, Tag
from pelican.contents import Author, Category, Page, Tag, SkipStub
from pelican.plugins import signals
from pelican.utils import file_suffix, get_date, pelican_open, posixize_path

Expand Down Expand Up @@ -669,6 +669,9 @@ def typogrify_wrapper(text):
)
context_signal.send(context_sender, metadata=metadata)

if metadata.get("status") == "skip":
content_class = SkipStub

return content_class(
content=content,
metadata=metadata,
Expand Down

0 comments on commit dbc85aa

Please sign in to comment.