一个具有灵活块内容的博客引擎(基于django-fluent-contents)。
项目描述
django-fluent-blogs
这是一个基本的博客引擎,具有以下功能:
按日期、作者、类别和标签归档视图。
内容由 django-fluent-contents 填充。
RSS和Atom源
在模板中提供粒度以覆盖布局。
用于自定义博客模型的抽象基类。
使用应用
基于 django-categories-i18n(或 django-categories)的类别。
可选 基于的评论 django-contrib-comments
可选 基于的国际化支持 django-parler
可选 集成 django-taggit 和 django-taggit-autocomplete-modified 以支持标签
可选 集成 django-fluent-comments 以支持基于Ajax的评论
可选 集成 django-fluent-pages
可选 与 django.contrib.sitemaps 的集成
待办事项
具有与博客发布协议的集成(如 django-blog-zinnia 提供),以类似 django.contrib.syndication 的方式构建。
安装
首先安装模块,最好是在虚拟环境中
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 设置来更改。
将页面添加到网站地图
可选地,博客页面可以包含在网站地图中。在 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(例如 DISQUS 或 Facebook评论)不同的评论系统,请覆盖以下模板
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_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 的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | dc4310f580754c482277d09694240881102b8fd7e6f14d834686cae18029bfb7 |
|
MD5 | 57156ccb0bc849df03ca37a4f5a4c0e8 |
|
BLAKE2b-256 | 8bb3ef234c127f7ef45d7217066ecdefd8c96277417204a8ede0061b3f5c5018 |
django_fluent_blogs-3.1-py3-none-any.whl 的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | 2863ca76251cc7a0d11bf273c7521816f1b111409d579b69c01e23e3a2d8b892 |
|
MD5 | e672ecf84087f3907a2c99d70c8c8497 |
|
BLAKE2b-256 | 41374d167552ee996ca77e21b42d1d9e6e0bbaba49dcf6fc52dcb815766221a4 |
评论
评论支持可以基于 django-contrib-comments 或您选择的任何其他系统。要集成 django-contrib-comments 到您的站点主题,还需要创建一个 comments/base.html 模板,该模板映射以下块
标题
内容
extrahead(仅适用于 django-fluent-comments)