don't add an artificial ./ subdir due to how os.path.relpath works
this fixes stuff like og:urls of https://foo/./ or https://foo/./page and also removes an extra layer of depth in the breadcrumb hierarchy, just by suppressing the '.' in relpath output at the root of pages/ fixes #21 Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
@@ -4,6 +4,7 @@ SPDX-FileCopyrightText: © 2025 Brian S. Stephan <bss@incorporeal.org>
|
||||
SPDX-License-Identifier: GPL-3.0-only
|
||||
"""
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import stat
|
||||
@@ -16,6 +17,8 @@ from incorporealcms.error_pages import generate_error_pages
|
||||
from incorporealcms.feed import generate_feed
|
||||
from incorporealcms.markdown import handle_markdown_file_path
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class StaticSiteGenerator(object):
|
||||
"""Generate static site output based on the instance's content."""
|
||||
@@ -89,8 +92,10 @@ class StaticSiteGenerator(object):
|
||||
cprint(f"copying files from '{source_dir}' to '{dest_dir}'", 'green')
|
||||
os.chdir(source_dir)
|
||||
for base_dir, subdirs, files in os.walk(source_dir):
|
||||
logger.debug("starting to build against %s || %s || %s", base_dir, subdirs, files)
|
||||
# remove the absolute path of the directory from the base_dir
|
||||
base_dir = os.path.relpath(base_dir, source_dir)
|
||||
relpath = os.path.relpath(base_dir, source_dir)
|
||||
base_dir = relpath if relpath != '.' else ''
|
||||
# create subdirs seen here for subsequent depth
|
||||
for subdir in subdirs:
|
||||
self.build_subdir_in_destination(source_dir, base_dir, subdir, dest_dir)
|
||||
@@ -149,6 +154,7 @@ class StaticSiteGenerator(object):
|
||||
# render markdown as HTML
|
||||
if src.endswith('.md') and convert_markdown:
|
||||
rendered_file = dst.removesuffix('.md') + '.html'
|
||||
print(f"rendering file '{src}' -> '{rendered_file}'")
|
||||
try:
|
||||
content = handle_markdown_file_path(src)
|
||||
except UnicodeDecodeError:
|
||||
|
||||
Reference in New Issue
Block a user