从网页列表中为您的网站添加一个友情链接
项目描述
友情链接
此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
:文章日期,作为Pelicanutils.SafeDatetime
对象。article.summary
:文章摘要,如网站源提供并据此插件设置修改。article.description
:原始文章摘要,不带清理或截断。
文章还包含有关源源的信息,可以通过以下属性访问:source_
前缀属性
source_title
:网站源标题。source_link
:网站源的链接。source_id
:一些网站源中提供的标识字段。
如果您访问的属性在条目或源源中不存在,将返回空字符串,除了日期(published
、updated
、created
和expired
)之外,将返回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 %}
...
如果没有链接或社交小部件,结果将如下面的图片所示
添加源聚合页面
在这种情况下,我们希望生成一个新页面,其中包含此插件处理的全部源内容。例如,假设我们想访问该页面为: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' }
最终结果如下面的图片所示
贡献
欢迎并非常感谢您的贡献。每一份努力都很重要。您可以通过改进文档、添加缺失功能以及修复错误来做出贡献。您还可以通过审查和评论现有问题来提供帮助。
要开始为此插件做出贡献,请查阅向 Pelican 做出贡献文档,从“贡献代码”部分开始。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
pelican_webring-1.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 68518bd264d875e6eccc5fc97422069efed7944fab4a00a4a03f932804614940 |
|
MD5 | 8c0de8657483847f3620974d2619c2a6 |
|
BLAKE2b-256 | b5dac319b97e6e11d5db6c6aead675daaea4edd8c50aa20f2604094f1781f018 |
pelican_webring-1.4.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e60bba7f2e314b069ab6bd5d3730b113c3bfd10f402fb89a506a144dec7e3e71 |
|
MD5 | 438ba95457d3f3a8f9be9a2a03b24799 |
|
BLAKE2b-256 | 30fa902a3e303cf69f3483ac7076011a21a3f004ef190f54e748195b15c1fded |