跳转到主要内容

一个具有灵活块内容的博客引擎(基于django-fluent-contents)。

项目描述

django-fluent-blogs

https://github.com/django-fluent/django-fluent-blogs/actions/workflows/tests.yaml/badge.svg?branch=master https://img.shields.io/pypi/v/django-fluent-blogs.svg https://img.shields.io/pypi/l/django-fluent-blogs.svg https://img.shields.io/codecov/c/github/django-fluent/django-fluent-blogs/master.svg

这是一个基本的博客引擎,具有以下功能:

  • 按日期、作者、类别和标签归档视图。

  • 内容由 django-fluent-contents 填充。

  • RSS和Atom源

  • 在模板中提供粒度以覆盖布局。

  • 用于自定义博客模型的抽象基类。

使用应用

待办事项

安装

首先安装模块,最好是在虚拟环境中

pip install django-fluent-blogs

# Install the plugins of fluent-contents that you use:
pip install django-fluent-contents[text]

# Optional: to add tagging support + autocomplete use:
pip install django-taggit django-taggit-autocomplete-modified

配置

将应用添加到 settings.py

INSTALLED_APPS += (
    # Blog engine
    'fluent_blogs',

    # The content plugins
    'fluent_contents',
    'fluent_contents.plugins.text',

    # Support libs
    'categories_i18n',
    'django_wysiwyg',
    'slug_preview',

    # Optional commenting support
    'django_comments',

    # Optional tagging
    'taggit',
    'taggit_autocomplete_modified',
)

DJANGO_WYSIWYG_FLAVOR = "yui_advanced"

请注意,并非所有应用都是必需的;标签是可选的,以及各种 fluent_contents.plugin.* 包也是可选的。

urls.py 中包含应用

urlpatterns += patterns('',
    url(r'^admin/util/taggit_autocomplete_modified/', include('taggit_autocomplete_modified.urls')),
    url(r'^blog/comments/', include('django_comments.urls')),
    url(r'^blog/', include('fluent_blogs.urls')),
)

之后可以创建数据库

./manage.py migrate

如果使用 django-fluent-contents 的附加插件,请按照它们的 安装说明 进行操作。通常这包括

  • 将包名添加到 INSTALLED_APPS

  • 运行 pip install django-fluent-contents[pluginname]

  • 运行 ./manage.py syncdb

配置模板

为了显示博客内容,需要创建一个 fluent_blogs/base.html 文件。这将用于将模块的输出映射到您的站点模板。

基本模板需要包含以下块

  • content - 显示主要内容

  • title - <head> 标题片段。

  • link - 显示 RSS 源的 <link> 标签。

  • script - 包含额外的 <script> 标签。

  • meta-description - meta-description 标签的值。

  • meta-keywords - meta-keywords 标签的值。

  • og-type - Facebook 的 OpenGraph 类型(可选)

  • og-description Facebook 的 OpenGraph 描述(可选)

fluent_blogs/base.html 模板可以简单地重命名块名到站点的 base.html 模板。例如

{% extends "base.html" %}

{% block headtitle %}{% block title %}{% endblock %}{% endblock %}

{% block main %}
    {# This area is filled with the blog archive/details:
    {% block content %}{% endblock %}

    {# Add any common layout, e.g. a sidebar here #}
{% endblock %}

当所有其他块名已在站点的 base.html 模板中可用时,此示例应足够。

基本模板的文件名也可以通过定义 FLUENT_BLOGS_BASE_TEMPLATE 设置来更改。

评论

评论支持可以基于 django-contrib-comments 或您选择的任何其他系统。要集成 django-contrib-comments 到您的站点主题,还需要创建一个 comments/base.html 模板,该模板映射以下块

将页面添加到网站地图

可选地,博客页面可以包含在网站地图中。在 urls.py 中添加以下内容

from fluent_blogs.sitemaps import EntrySitemap, CategoryArchiveSitemap, AuthorArchiveSitemap, TagArchiveSitemap

sitemaps = {
    'blog_entries': EntrySitemap,
    'blog_categories': CategoryArchiveSitemap,
    'blog_authors': AuthorArchiveSitemap,
    'blog_tags': TagArchiveSitemap,
}

urlpatterns += patterns('',
    url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)

与 django-fluent-pages 集成

要集成 django-fluent-pages 的页面类型,不要在 URLconf 中包含 fluent_blogs.urls

urlpatterns += patterns('',
    url(r'^admin/util/taggit_autocomplete_modified/', include('taggit_autocomplete_modified.urls')),
    url(r'^blog/comments/', include('django_comments.urls')),   # or fluent_comments.urls
)

相反,添加一个页面类型

INSTALLED_APPS += (
    'fluent_pages',
    'fluent_blogs.pagetypes.blogpage',
)

现在可以在 django-fluent-pages 的页面树中创建一个“博客”页面,在所需的 URL 路径下。

与 django-fluent-comments 集成

要使用基于 Ajax 的评论功能 django-fluent-comments,请将其包含在 settings.py

INSTALLED_APPS += (
    'fluent_blogs',
    'fluent_comments',      # Before django_comments
    'django_comments',

    ...
)

urls.py 中包含适当的模块

urlpatterns += patterns('',
    url(r'^blog/comments/', include('fluent_comments.urls')),

    ...
)

此模块将检测安装情况,并启用审核功能,包括必要的CSS和JavaScript文件以实现基于Ajax的评论系统。

与其他评论系统的集成

要使用与 django-contrib-comments(例如 DISQUSFacebook评论)不同的评论系统,请覆盖以下模板

  • fluent_blogs/entry_detail/comments.html

这些CSS/JavaScript包含是通过以下方式生成的

  • fluent_blogs/entry_detail/comments_css.html

  • fluent_blogs/entry_detail/comments_script.html

覆盖博客布局

要更改博客布局,可以覆盖以下模板

在存档/列表页面

  • fluent_blogs/entry_archive.html - 起始点,包括所有子模板

  • fluent_blogs/entry_archive/item.html - 单个列表项(扩展 fluent_blogs/entry_contents_base.html)。

  • fluent_blogs/entry_archive/empty.html - 当没有条目时的默认消息。

  • fluent_blogs/entry_archive/pagination.html - 页面底部的分页。

在详细页面

  • fluent_blogs/entry_detail.html - 起始点,包括所有子模板

  • fluent_blogs/entry_detail/contents.html - 条目内容(扩展 fluent_blogs/entry_contents_base.html)。

  • fluent_blogs/entry_detail/widgets.html - 添加社交媒体按钮的空间。

  • fluent_blogs/entry_detail/comments.html - 评论。

  • fluent_blogs/entry_detail/navigation.html - 条目导航链接

  • fluent_blogs/entry_detail/page_footer.html - 在评论下方添加社交媒体按钮的空间。

  • fluent_blogs/entry_detail/comments_css.html

  • fluent_blogs/entry_detail/comments_script.html

通用外观

  • fluent_blogs/entry_contents_base.html - 存档和详细页面中条目的通用外观。

  • fluent_blogs/base.html - 基础模板,例如引入通用侧边栏。

共享条目布局

当与单个条目的布局共享时

  • 默认情况下,内容 fluent_blogs/entry_archive/item.html 和基于默认的 fluent_blogs/entry_archive/item.html

自定义条目模型

此应用程序支持使用自定义模型进行博客条目。在您的项目中包含以下设置

FLUENT_BLOGS_ENTRY_MODEL = 'myapp.ModelName'

该应用程序将使用自定义模型进行源、视图和网站地图。模型可以继承以下类之一

  • fluent_blogs.models.Entry(默认条目)

  • fluent_blogs.base_models.AbstractEntry(默认条目,作为抽象模型)

  • fluent_blogs.base_models.AbstractEntryBase 与以下结合使用

  • fluent_blogs.base_models.ExcerptEntryMixin

  • fluent_blogs.base_models.ContentsEntryMixin

  • fluent_blogs.base_models.CommentsEntryMixin

  • fluent_blogs.base_models.CategoriesEntryMixin

  • fluent_blogs.base_models.TagsEntryMixin

使用自定义模型时,需要手动注册管理器。管理器可以继承以下之一

  • fluent_blogs.admin.AbstractEntryBaseAdmin

  • fluent_blogs.admin.EntryAdmin

视图仍然使用相同的模板进行渲染,但您也可以覆盖

  • myapp/modelname_archive_*.html

  • myapp/modelname_detail.html

  • myapp/modelname_feed_description.html

贡献

此模块旨在通用且易于集成到您的网站中。如果您对此有任何不喜欢的地方,或者认为它不够灵活,请告诉我们。我们很高兴改进它!

如果您有任何其他有价值的贡献、建议或想法,也请告诉我们,因为我们会认真考虑。我们也欢迎拉取请求。:-)

项目详情


下载文件

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

源代码分布

django-fluent-blogs-3.1.tar.gz (60.8 kB 查看散列值)

上传时间 源代码

构建分布

django_fluent_blogs-3.1-py3-none-any.whl (87.8 kB 查看散列值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面