# Copyright (c) 2019-2024 Chris Pressey, Cat's Eye Technologies
# This file is distributed under an MIT license. See LICENSES/ directory.
# SPDX-License-Identifier: LicenseRef-MIT-X-Feedmark
# Feed-related, but Atom-independent, functions.
from feedmark.utils import quote_plus
def construct_entry_url(section):
# Currently supports links to anchors generated by Github's Markdown renderer.
if "link-target-url" not in section.document.properties:
return None
return "{}#{}".format(
section.document.properties["link-target-url"], quote_plus(section.anchor)
)
def extract_feed_properties(document):
properties = {}
properties["title"] = document.title
properties["author"] = document.properties["author"]
properties["url"] = document.properties["url"]
properties["link-target-url"] = document.properties.get("link-target-url")
return properties
def extract_sections(documents):
sections = []
for document in documents:
for section in document.sections:
sections.append(section)
sections.sort(key=lambda section: section.publication_date, reverse=True)
return sections