“cms.plugins.snippet”(来自djangocms)被克隆以使用一些工具扩展它

emencia-cms-snippet的Python项目详细描述


这是一个“cms.plugins.snippet”(来自djangocms)的克隆,可以用一些工具来扩展它。

原始代码来自原始的DjangoCMS插件。

更改原始代码

此克隆尝试更改尽可能少的原始代码,实际上它们的区别是:

  • 添加模板标记以直接使用模板中的片段,而不仅仅是来自CMS页面;
  • 为HTML编辑器添加djangocodemirror的用法;
  • 添加一个slug字段;

需要

在管理员中,html内容将使用djangocodemirror编辑器进行编辑。

安装

唯一需要做的是替换DjangoCMS设置中的cms.plugins.snippet,如下所示:

INSTALLED_APPS = (
    'cms',
    # Plugins
    ...
    #'cms.plugins.snippet',
    'snippet', # the snippet plugin clone
    'djangocodemirror', # the editor
    ...
)

然后添加:

CODEMIRROR_SETTINGS = {
    'cms_snippet': {
        'mode': {'name': "jinja2", 'htmlMode': True},
        'lineWrapping': True,
        'lineNumbers': True,
        'search_enabled': True,
        'embed_settings': True,
        'add_jquery': True,
        'lib_buttons_path': 'djangocodemirror/snippet_buttons.js',
    },
}

因为代码只是从一些插件中克隆出来的,所以所有的CMS都应该和原来的插件一样工作,你甚至应该把它添加到现有的安装中,而不丢失数据库,也不需要任何SycDB。

用法

模板标记

在模板中使用模板标记:

{% load snippet_tags %}
{% snippet_fragment [Snippet ID or slug or instance] %}

像这样:

{% load snippet_tags %}
{% snippet_fragment 42 %}

或者用鼻涕虫:

{% load snippet_tags %}
{% snippet_fragment 'my-snippet' %}

第一个参数是必需的,您可以使用

  • 代码段id;
  • 片段slug;
  • 代码段实例。

用作具有回退功能的模板块:

{% snippet_fragment 'my-snippet' or %}
    ... clumsy safe ...
{% endsnippet_fragment %}

如果没有snippet instance/id/slug,将呈现回退模板。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java计时器结束得太早?   java通过行选择编辑jtable内容   java如何将数组的值传递给另一个类?   java对象。hashCode()算法   代号为1且lambda不工作的java Android本机代码   泛型Java方法签名中是否真的需要“?扩展”?   异常处理声纳问题“main”不应“抛出”任何JAVA 7   java无法使用MVEL导入静态方法   java什么是类路径容器?   java从InputStream解码字节   Eclipse重构仅限Java   java使用Qpid通过SSL与AMQP1.0代理通信   java有没有一种方法可以在Oracle中使用带有时区的时间戳作为函数输入   保存文件时运行安卓 lint的java出错   尽管添加了JScrollPane,java JList视图区域仍在增长   java计算第n个浮点   java如何在mysql中插入日期?   GWT中异步回调的java问题