跳转到主要内容

从网页列表中为您的网站添加一个友情链接

项目描述

友情链接

Build Status PyPI Version

此Pelican插件可以从网页列表中为您的网站添加友情链接或内容聚合。

它从网页列表中检索最新帖子,并在模板中提供它们,从而有效地创建一个部分友情链接或内容聚合。帖子按时间从新到旧排序。

本插件灵感来源于openring,一个用于从模板和一组网站源生成HTML文件的工具,以及pelican-planet,一个用于创建源聚合的Pelican插件。

安装

此插件可以通过以下方式安装

python -m pip install pelican-webring

设置

WEBRING_FEED_URLS = []

以URL或本地文件形式存在的网站源列表。

WEBRING_MAX_ARTICLES = 3

文章的最大数量。

WEBRING_ARTICLES_PER_FEED = 1

每个源的文章最大数量。

WEBRING_SUMMARY_WORDS = 20

文章摘要的最大单词数。如果设置为0,则禁用截断。

WEBRING_CLEAN_SUMMARY_HTML = True

是否从摘要中清除HTML标签。

示例

假设我们在我们的环中有两个博客,并希望每个博客显示两篇文章。我们还希望显示一个非常短的摘要。

WEBRING_FEED_URLS = [
    'https://justinmayer.com/feeds/all.atom.xml',
    'https://danluu.com/atom.xml'
]
WEBRING_ARTICLES_PER_FEED = 2
WEBRING_MAX_ARTICLES = 4
WEBRING_SUMMARY_LENGTH = 25

模板

该插件通过变量webring_articles提供结果网站源文章。

所有现有的日期属性都是Pelican utils.SafeDatetime对象,可以使用Pelican的Jinja过滤器strftime进行使用。

每篇文章都包含原始源条目中的所有可用属性,例如

  • article.title:文章标题。
  • article.link:文章URL。
  • article.date:文章日期,作为Pelican utils.SafeDatetime对象。
  • article.summary:文章摘要,如网站源提供并据此插件设置修改。
  • article.description:原始文章摘要,不带清理或截断。

文章还包含有关源源的信息,可以通过以下属性访问:source_前缀属性

  • source_title:网站源标题。
  • source_link:网站源的链接。
  • source_id:一些网站源中提供的标识字段。

如果您访问的属性在条目或源源中不存在,将返回空字符串,除了日期publishedupdatedcreatedexpired)之外,将返回None

有关可用条目和源源属性的列表,请阅读feedparser参考文档

您可以在任何内容类型中使用webring_articles,包括页面文章。请参阅以下部分,了解如何在模板中使用此变量的示例。

在文章底部添加环链部分

假设我们想在文章底部放置我们的环链,使用默认的Pelican模板(即notmyidea)。为了简化,我们将使用现有的CSS类。

编辑notmyidea/templates/base.html文件,使其看起来像这样

        ...
        <section id="extras" class="body">
        {% if WEBRING_FEED_URLS %}
            <div class="webring">
                <h2>Webring</h2>
                {% for article in webring_articles %}
                <p><a href="{{ article.link }}">{{ article.title }}</a></p>
                <p>{{ article.date|strftime('%d %B %Y') }} - {{ article.summary}}</p>
                {% endfor %}
            </div>
        {% endif %}
        {% if LINKS %}
        ...

如果没有链接或社交小部件,结果将如下面的图片所示

Footer Webring

添加源聚合页面

在这种情况下,我们希望生成一个新页面,其中包含此插件处理的全部源内容。例如,假设我们想访问该页面为:https://my-domain.com/feed-aggregation

Pelican中有几种方法可以完成此目标。这里我们展示了一种只需要新HTML模板的方法。

以下是一个基于page.html的示例模板文件,名为feed-aggregation.html,应位于您的主题模板目录中

{% extends "base.html" %}
{% block title %}Feed aggregation{% endblock %}

{% block content %}
<section id="content" class="body">
    <h1 class="entry-title">Feed aggregation</h1>

    {% if WEBRING_FEED_URLS %}
        {% for article in webring_articles %}
            <article class="hentry">
                <header>
                    <h2><a href="{{ article.link }}">{{ article.title }}</a></h2>
                </header>
                <p>{{ article.date|strftime('%d %B %Y') }}</p>
                <div class="entry-content">
                {{ article.summary}}
                </div>
            </article>
        {% endfor %}
    {% endif %}

</section>
{% endblock %}

最后,为了使我们的模板在所需的位置呈现,我们在pelicanconf.py中添加以下模板页面。请注意,feed-aggregation.html相对于您的主题模板目录。

TEMPLATE_PAGES = { 'feed-aggregation.html': 'feed-aggregation/index.html' }

最终结果如下面的图片所示

Page Webring

贡献

欢迎并非常感谢您的贡献。每一份努力都很重要。您可以通过改进文档、添加缺失功能以及修复错误来做出贡献。您还可以通过审查和评论现有问题来提供帮助。

要开始为此插件做出贡献,请查阅向 Pelican 做出贡献文档,从“贡献代码”部分开始。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

pelican_webring-1.4.0.tar.gz (25.9 kB 查看哈希值)

上传时间 源代码

构建分发

pelican_webring-1.4.0-py3-none-any.whl (24.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持