“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试图使用GUI解决问题,但如果语句让我困惑   将JavaSOAP请求转换为Javascript?   java请求的资源在使用Struts 2时不可用   Java FutureTask不工作?   java JPA计算布尔值   Java8到OpenJDK11Com。太阳组织。阿帕奇。xml。内部。*无法访问的类型   java我想从给定的字符串中打印数字1和数字0我怎么能?   在If statemet中调用方法的java   多线程线程能够看到java中主线程设置的更新的静态变量   java JPA/Hibernate@OrderBy random