跳转到主要内容

Django页面编写器

项目描述

Django Composer

通过组合列表和单个内容构建页面

https://travis-ci.org/praekelt/django-composer-prk.svg?branch=develop https://coveralls.io/repos/github/praekelt/django-composer-prk/badge.svg?branch=develop

快速开始

django-composer-prk 旨在成为一个独立的库,而不是一个项目,但它确实可以运行

- virtualenv ve
- ./ve/bin/pip install -r composer/tests/requirements/19.txt
- ./ve/bin/python manage.py migrate --run-syncdb --settings=composer.tests.settings.19
- ./ve/bin/python manage.py runserver 0.0.0.0:8000 --settings=composer.tests.settings.19

安装

  1. composer/tests/requirements/19.txt 的内容安装到您的Python环境中。

  2. composer 添加到 INSTALLED_APPS 设置中。

  3. composer.middleware.ComposerFallbackMiddleware 添加到中间件设置中。这将 替换 flatpages 404 中间件,如果需要,请删除。

  4. composer.context_processors.slots 添加到上下文处理器设置中。

  5. 将以下内容添加到您的 urls.py 中

url(r"^nested_admin/", include("nested_admin.urls"))

内容类型

  • url:槽应出现的位置的URL或URL模式。这可能是一个正则表达式。

  • slot_name: 在您的项目中,插槽名称定义在 templates/base.html 中。此字段提供了从基础模板中找到的作曲家插槽自动生成的选项。

  • 每行都嵌套在一个插槽内(有序)。

  • 行可以具有额外的CSS类。

  • 每列都嵌套在一个行内(有序)。

  • 宽度:一行是12列宽,因此列可以并排排列。

  • 标题:在列顶部渲染。可以为空。

  • class_name:可以添加到列包裹div的额外CSS类。

瓦片

  • 每个瓦片都嵌套在一个列内(有序)。

  • 瓦片目标是通用的外键,因此它可以引用任何内容类型。

  • 视图名称可以是任何Django命名视图。

  • Markdown是临时内容。当前Markdown的admin UI不是最优的,需要访问瓦片列表。

  • style:用于查找用于渲染目标的合适模板。例如 templates/myapp/inclusion_tags/mymodel_tile.html

  • class_name:要添加到瓦片的额外CSS类。

用法

基础模板通常定义了一些作曲家插槽。通常这将是头部插槽、内容插槽和底部插槽。这可以通过向templates/base.html模板添加插槽来轻松扩展。例如添加侧边栏插槽

{% if composer_slots %}{% load composer_tags %}{% endif %}

{% if composer_slots.sidebar %}
    <div id="sidebar">
        {% composer sidebar %}
    </div>
{% endif %}

在网站的任何URL上,如果存在匹配URL和插槽名称的适当插槽,则该插槽将在页面上渲染。当前的匹配逻辑如下

  1. 找到与当前URL最佳匹配的插槽。插槽URL被视为正则表达式,因此一个插槽可以匹配多个URL。

内容插槽是特殊的

  1. 如果正在渲染的模板填充了内容块,则它将覆盖任何尝试填充内容块的插槽。

设置

您需要在设置中定义系统可用的瓦片类型。隐式添加了瓦片样式。有关如何创建相应模板的信息,请参阅瓦片渲染部分

COMPOSER = {"styles": (("block", "Block"), ("tiny": "Tiny"))}

如果您希望样式从所有已安装的应用程序中推断出来,请添加

COMPOSER = {"load-existing-styles": {"greedy": True}}

它将尝试添加所有已绑定到遵循正确命名约定的应用程序和模型的样式。可以与styles设置一起使用。

或者可以排除或包含整个应用程序和特定的应用程序模型。

包含

COMPOSER = {"load-existing-styles": {"includes": {"<app_label>": ["<modelname>",]}}}
COMPOSER = {"load-existing-styles": {"includes": {"<app_label>": "__all__"}}}

排除

COMPOSER = {"load-existing-styles": {"excludes": {"<app_label>": ["<modelname>",]}}}
COMPOSER = {"load-existing-styles": {"excludes": {"<app_label>": "__all__"}}}

即兴页面

django-composer-prk 提供了类似于Django Flatpages的功能。如果任何请求导致页面找不到错误,则中间件将尝试渲染一个名为content的页面和匹配的URL。这对于创建所谓的活动页面特别有用。

瓷砖渲染

作曲家尝试按以下顺序渲染:视图名称、目标、Markdown。

视图名称

渲染视图并尝试提取<div id="content">中的任何内容。然后由templates/composer/tile.html打印结果。变量tilecontent在模板上下文中可用。

目标

通过继承层次结构向上遍历,直到找到最佳匹配的模板。变量tileobject(目标)和content在模板上下文中可用。

命名约定

  • templates/{{ app_label }}/inclusion_tags/{{ model_name }}_{{ tile_style }}.html

  • templates/{{ app_label }}/inclusion_tags/{{ tile_style }}.html

如果没有找到模板,则渲染由 target.get_absolute_url() 返回的视图(如果存在)。它尝试提取 <div id="content"> 中的任何内容。然后通过 templates/composer/tile.html 打印结果。变量 tilecontent 在模板上下文中可用。

Markdown

Markdown 转换为 HTML,然后通过 templates/composer/tile.html 打印。变量 tilecontent 在模板上下文中可用。

作者

Praekelt 咨询公司

  • Johan Beyers

  • Hedley Roos

  • Altus Barry

  • Cilliers Blignaut

变更日志

0.1.1

  1. 处理 options 请求方法。

0.1

  1. 第一个版本。

项目详情


下载文件

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

源分布

django-composer-prk-0.1.1.tar.gz (22.7 kB 查看散列)

上传时间

构建分布

django_composer_prk-0.1.1-py2.7.egg (57.3 kB 查看散列)

上传时间

由以下机构支持

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