Skip to content

Commit

Permalink
:ok_hand; IMPROVE: Quick fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
robertdevore committed Oct 7, 2024
1 parent da6358f commit 86d537e
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions stattic.py
Original file line number Diff line number Diff line change
Expand Up @@ -750,9 +750,7 @@ def generate_rss_feed(self, site_url, site_name=None):
self.logger.error(f"Failed to generate RSS feed: {e}")

def generate_xml_sitemap(self, site_url):
"""
Generate a proper XML sitemap.
"""
"""Generate a proper XML sitemap."""
try:
# Ensure the site_url ends with a '/'
if not site_url.endswith('/'):
Expand All @@ -762,18 +760,30 @@ def generate_xml_sitemap(self, site_url):
sitemap_entries = []

# Add the homepage
sitemap_entries.append(self.format_xml_sitemap_entry(site_url, datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
sitemap_entries.append(self.format_xml_sitemap_entry(site_url, datetime.now()))

# Add URLs for posts
for post in self.posts:
post_permalink = f"{site_url.rstrip('/')}/{post.get('permalink', '').lstrip('/')}"
post_date = post.get('date', datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
post_date_str = post.get('date', datetime.now())

# Ensure post_date is a datetime object
if isinstance(post_date_str, str):
try:
post_date = datetime.strptime(post_date_str, '%Y-%m-%d %H:%M:%S')
except ValueError:
post_date = datetime.strptime(post_date_str, '%Y-%m-%dT%H:%M:%S')
elif isinstance(post_date_str, datetime):
post_date = post_date_str
else:
post_date = datetime.now()

sitemap_entries.append(self.format_xml_sitemap_entry(post_permalink, post_date))

# Add URLs for pages
for page in self.pages:
page_permalink = f"{site_url.rstrip('/')}/{page.get('permalink', '').lstrip('/')}"
page_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
page_date = datetime.now() # Adjust this as necessary for your requirements
sitemap_entries.append(self.format_xml_sitemap_entry(page_permalink, page_date))

# Generate the full XML sitemap content
Expand All @@ -796,8 +806,16 @@ def generate_xml_sitemap(self, site_url):
def format_xml_sitemap_entry(self, url, lastmod):
"""Format a URL entry for the XML sitemap."""
escaped_url = escape(url)

# Ensure lastmod is a datetime and format it accordingly
if isinstance(lastmod, datetime):
lastmod = lastmod.strftime('%Y-%m-%dT%H:%M:%SZ') # Convert datetime to string format suitable for XML
lastmod = lastmod.strftime('%Y-%m-%dT%H:%M:%SZ')
elif isinstance(lastmod, str):
try:
# Attempt to parse the string to a datetime object
lastmod = datetime.strptime(lastmod, '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%dT%H:%M:%SZ')
except ValueError:
lastmod = datetime.strptime(lastmod, '%Y-%m-%dT%H:%M:%S').strftime('%Y-%m-%dT%H:%M:%SZ')

return f'''
<url>
Expand All @@ -806,7 +824,6 @@ def format_xml_sitemap_entry(self, url, lastmod):
</url>
'''


def build_404_page(self):
"""Build and generate the 404 error page for GitHub Pages."""
try:
Expand Down

0 comments on commit 86d537e

Please sign in to comment.