git @ Cat's Eye Technologies Feedmark / master src / feedmark / feeds.py
master

Tree @master (Download .tar.gz)

feeds.py @masterraw · history · blame

# 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