Compare commits
3 commits
faac8f63bb
...
07152a3746
Author | SHA1 | Date | |
---|---|---|---|
07152a3746 | |||
27178dc6d8 | |||
04948a9373 |
8 changed files with 24 additions and 9 deletions
|
@ -317,6 +317,7 @@ available:
|
||||||
| `template` | `str \| none` = `none` | Template to use for this page. Relative to `templates/`, `.html` extension optional. |
|
| `template` | `str \| none` = `none` | Template to use for this page. Relative to `templates/`, `.html` extension optional. |
|
||||||
| `post` | `bool \| none` = `none` | Whether this page is a **post**. `true`/`false` is _absolute_. Leave it unset for automatic detection. |
|
| `post` | `bool \| none` = `none` | Whether this page is a **post**. `true`/`false` is _absolute_. Leave it unset for automatic detection. |
|
||||||
| `draft` | `bool` = `false` | Whether this page is a draft. See [drafts](#drafts) for more. |
|
| `draft` | `bool` = `false` | Whether this page is a draft. See [drafts](#drafts) for more. |
|
||||||
|
| `ignore` | `bool` = `false` | Whether this page should be ignored in _both_ `final` and `draft` contexts. |
|
||||||
| `math` | `bool` = `true` | Whether the LaTeX extension should be enabled for this page. |
|
| `math` | `bool` = `true` | Whether the LaTeX extension should be enabled for this page. |
|
||||||
|
|
||||||
**Note**: you can specify the date in any format that can be parsed by
|
**Note**: you can specify the date in any format that can be parsed by
|
||||||
|
|
|
@ -62,7 +62,7 @@ allowedUntypedLibraries = ["frontmatter", "pygments", "pymdownx", "l2m4m"]
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 70
|
line-length = 70
|
||||||
indent-width = 4
|
indent-width = 4
|
||||||
target-version = "py311"
|
target-version = "py312"
|
||||||
|
|
||||||
[tool.ruff.lint]
|
[tool.ruff.lint]
|
||||||
fixable = ["ALL"]
|
fixable = ["ALL"]
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ZonaBuilder:
|
||||||
):
|
):
|
||||||
logger.debug(f"Parsing {path.name}.")
|
logger.debug(f"Parsing {path.name}.")
|
||||||
item.metadata, item.content = parse_metadata(path)
|
item.metadata, item.content = parse_metadata(path)
|
||||||
if (
|
if item.metadata.ignore or (
|
||||||
item.metadata.draft
|
item.metadata.draft
|
||||||
and not self.config.build.include_drafts
|
and not self.config.build.include_drafts
|
||||||
):
|
):
|
||||||
|
|
|
@ -59,7 +59,9 @@ def build(
|
||||||
"""
|
"""
|
||||||
if draft:
|
if draft:
|
||||||
print("Option override: including drafts.")
|
print("Option override: including drafts.")
|
||||||
builder = ZonaBuilder(cli_root=root, cli_output=output, draft=draft)
|
builder = ZonaBuilder(
|
||||||
|
cli_root=root, cli_output=output, draft=draft
|
||||||
|
)
|
||||||
builder.build()
|
builder.build()
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,7 +75,9 @@ def serve(
|
||||||
] = None,
|
] = None,
|
||||||
host: Annotated[
|
host: Annotated[
|
||||||
str,
|
str,
|
||||||
typer.Option("--host", help="Hostname for live preview server."),
|
typer.Option(
|
||||||
|
"--host", help="Hostname for live preview server."
|
||||||
|
),
|
||||||
] = "localhost",
|
] = "localhost",
|
||||||
port: Annotated[
|
port: Annotated[
|
||||||
int,
|
int,
|
||||||
|
|
|
@ -76,7 +76,9 @@ IGNORELIST = [".marksman.toml"]
|
||||||
class ZonaConfig:
|
class ZonaConfig:
|
||||||
base_url: str = "/"
|
base_url: str = "/"
|
||||||
# dictionary where key is name, value is url
|
# dictionary where key is name, value is url
|
||||||
sitemap: SitemapConfig = field(default_factory=lambda: {"Home": "/"})
|
sitemap: SitemapConfig = field(
|
||||||
|
default_factory=lambda: {"Home": "/"}
|
||||||
|
)
|
||||||
# list of globs relative to content that should be ignored
|
# list of globs relative to content that should be ignored
|
||||||
ignore: list[str] = field(default_factory=lambda: IGNORELIST)
|
ignore: list[str] = field(default_factory=lambda: IGNORELIST)
|
||||||
markdown: MarkdownConfig = field(default_factory=MarkdownConfig)
|
markdown: MarkdownConfig = field(default_factory=MarkdownConfig)
|
||||||
|
|
|
@ -24,6 +24,7 @@ class Metadata:
|
||||||
template: str | None = None
|
template: str | None = None
|
||||||
post: bool | None = None
|
post: bool | None = None
|
||||||
draft: bool = False
|
draft: bool = False
|
||||||
|
ignore: bool = False
|
||||||
math: bool = True
|
math: bool = True
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -238,7 +238,9 @@ def serve(
|
||||||
event_handler, path=str(root / "content"), recursive=True
|
event_handler, path=str(root / "content"), recursive=True
|
||||||
)
|
)
|
||||||
observer.schedule(
|
observer.schedule(
|
||||||
event_handler, path=str(root / "templates"), recursive=True
|
event_handler,
|
||||||
|
path=str(root / "templates"),
|
||||||
|
recursive=True,
|
||||||
)
|
)
|
||||||
observer.start()
|
observer.start()
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,9 @@ def get_resource(path: str) -> ZonaResource:
|
||||||
if file.is_file():
|
if file.is_file():
|
||||||
return ZonaResource(name=path, contents=file.read_text())
|
return ZonaResource(name=path, contents=file.read_text())
|
||||||
else:
|
else:
|
||||||
raise FileNotFoundError(f"{path} is not a valid Zona resource!")
|
raise FileNotFoundError(
|
||||||
|
f"{path} is not a valid Zona resource!"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_resources(subdir: str) -> list[ZonaResource]:
|
def get_resources(subdir: str) -> list[ZonaResource]:
|
||||||
|
@ -75,10 +77,13 @@ def normalize_url(url: str) -> str:
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
|
||||||
def should_ignore(path: Path, patterns: list[str], base: Path) -> bool:
|
def should_ignore(
|
||||||
|
path: Path, patterns: list[str], base: Path
|
||||||
|
) -> bool:
|
||||||
rel_path = path.relative_to(base)
|
rel_path = path.relative_to(base)
|
||||||
return any(
|
return any(
|
||||||
fnmatch.fnmatch(str(rel_path), pattern) for pattern in patterns
|
fnmatch.fnmatch(str(rel_path), pattern)
|
||||||
|
for pattern in patterns
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue