2024-09-28 03:18:19 发布
网友
我刚开始了解摇尾蛇。如何为我的Wagtail配置所有内置的draftail格式。 我需要添加code和qoutes。在
draftail
code
我认为如果您使用StreamField来实现这个目的,我是这样做的(wagtail 1.13.1):
StreamField
块.py
from django.utils.safestring import mark_safe from django.utils.html import format_html from pygments import highlight from pygments.formatters import get_formatter_by_name from pygments.lexers import get_lexer_by_name from wagtail.wagtailcore import blocks class CodeBlock(blocks.StructBlock): """ Code Highlighting Block """ LANGUAGE_CHOICES = ( ('python', 'Python'), ('bash', 'Bash/Shell'), ('html', 'HTML'), ('css', 'CSS'), ('scss', 'SCSS'), ('json', 'JSON'), ('js', 'javaScript'), ('mysql', 'mysql'), ('jinja', 'jinja'), ('go', 'go') ) STYLE_CHOICES = ( ('default', 'default'), ('monokai', 'monokai'), ) language = blocks.ChoiceBlock(choices=LANGUAGE_CHOICES) style = blocks.ChoiceBlock(choices=STYLE_CHOICES, default='default') code = blocks.TextBlock() class Meta: icon = 'code' def render(self, value, context=None): src = value['code'].strip('\n') lang = value['language'] lexer = get_lexer_by_name(lang) css_classes = ['code', value['style']] formatter = get_formatter_by_name( 'html', linenos='inline', cssclass=' '.join(css_classes), noclasses=False, ) return mark_safe(highlight(src, lexer, formatter)) class BlockQuoteBlock(blocks.TextBlock): def render_basic(self, value, context=None): if value: return format_html( '<blockquote>{0}</blockquote>', mark_safe(value)) else: return '' class Meta: icon = "openquote"
模型.py
我使用自定义BlockQuoteBlock,因为this issue。还要检查StreamField:http://docs.wagtail.io/en/v2.0/topics/streamfield.html#上的文档
BlockQuoteBlock
我认为如果您使用
StreamField
来实现这个目的,我是这样做的(wagtail 1.13.1):块.py
模型.py
^{pr2}$我使用自定义
BlockQuoteBlock
,因为this issue。还要检查StreamField
:http://docs.wagtail.io/en/v2.0/topics/streamfield.html#上的文档相关问题 更多 >
编程相关推荐