wagtail代码块在wagtail中提供prismjs语法高亮显示。

wagtailcodeblock的Python项目详细描述


wagtail代码块

wagtail代码块是wagtail cms源代码的语法突出显示块。它的特点是在wagtail编辑器中实时高亮显示、前端、行编号和对prismjs主题的支持。

它使用wagtail管理和网站中的PrismJS库,并且需要jquery。

示例用法

fromwagtailcodeblock.blocksimportCodeBlockclassContentStreamBlock(StreamBlock):heading=TextBlock()paragraph=TextBlock()code=CodeBlock(label='Code')

还可以通过提供必须包含在WAGTAIL_CODE_BLOCK_LANGUAGES设置中的语言代码来强制它使用单一语言:

code=CodeBlock(label='Bash Code',language='bash')

CMS编辑器界面的屏幕截图

Admin in Action

安装和设置

要安装wagtail代码块,只需运行:

pip install wagtailcodeblock

并将wagtailcodeblock添加到INSTALLED_APPS设置:

INSTALLED_APPS=[...'wagtailcodeblock',...]

django设置

主题

wagtail代码块默认为prismjs的“coy”主题,这在wagtail的cms编辑器设计中看起来很不错。您可以通过在django设置中配置WAGTAIL_CODE_BLOCK_THEME来选择不同的主题。Prismjs提供了几个主题:

例如,在您想要使用日光主题中:WAGTAIL_CODE_BLOCK_THEME = 'solarizedlight' 如果要使用默认主题:WAGTAIL_CODE_BLOCK_THEME = None

可用语言

通过在django设置中配置WAGTAIL_CODE_BLOCK_LANGUAGES,可以自定义可用语言。 默认情况下,它将使用这些语言进行设置,因为大多数用户都在python web开发社区中:

WAGTAIL_CODE_BLOCK_LANGUAGES=(('bash','Bash/Shell'),('css','CSS'),('diff','diff'),('html','HTML'),('javascript','Javascript'),('json','JSON'),('python','Python'),('scss','SCSS'),('yaml','YAML'),)

此设置中的每种语言都是prismjs代码的元组和描述性标签。如果您想使用所有可用语言,这里有一个列表:

WAGTAIL_CODE_BLOCK_LANGUAGES=(('abap','ABAP'),('abnf','Augmented Backus–Naur form'),('actionscript','ActionScript'),('ada','Ada'),('apacheconf','Apache Configuration'),('apl','APL'),('applescript','AppleScript'),('arduino','Arduino'),('arff','ARFF'),('asciidoc','AsciiDoc'),('asm6502','6502 Assembly'),('aspnet','ASP.NET (C#)'),('autohotkey','AutoHotkey'),('autoit','AutoIt'),('bash','Bash + Shell'),('basic','BASIC'),('batch','Batch'),('bison','Bison'),('bnf','Backus–Naur form + Routing Backus–Naur form'),('brainfuck','Brainfuck'),('bro','Bro'),('c','C'),('clike','C-like'),('csharp','C#'),('cpp','C++'),('cil','CIL'),('coffeescript','CoffeeScript'),('clojure','Clojure'),('crystal','Crystal'),('csp','Content-Security-Policy'),('css','CSS'),('css-extras','CSS Extras'),('d','D'),('dart','Dart'),('diff','Diff'),('django','Django/Jinja2'),('docker','Docker'),('ebnf','Extended Backus–Naur form'),('eiffel','Eiffel'),('ejs','EJS'),('elixir','Elixir'),('elm','Elm'),('erb','ERB'),('erlang','Erlang'),('fsharp','F#'),('flow','Flow'),('fortran','Fortran'),('gcode','G-code'),('gedcom','GEDCOM'),('gherkin','Gherkin'),('git','Git'),('glsl','GLSL'),('gml','GameMaker Language'),('go','Go'),('graphql','GraphQL'),('groovy','Groovy'),('haml','Haml'),('handlebars','Handlebars'),('haskell','Haskell'),('haxe','Haxe'),('hcl','HCL'),('http','HTTP'),('hpkp','HTTP Public-Key-Pins'),('hsts','HTTP Strict-Transport-Security'),('ichigojam','IchigoJam'),('icon','Icon'),('inform7','Inform 7'),('ini','Ini'),('io','Io'),('j','J'),('java','Java'),('javadoc','JavaDoc'),('javadoclike','JavaDoc-like'),('javascript','JavaScript'),('javastacktrace','Java stack trace'),('jolie','Jolie'),('jsdoc','JSDoc'),('js-extras','JS Extras'),('json','JSON'),('jsonp','JSONP'),('json5','JSON5'),('julia','Julia'),('keyman','Keyman'),('kotlin','Kotlin'),('latex','LaTeX'),('less','Less'),('liquid','Liquid'),('lisp','Lisp'),('livescript','LiveScript'),('lolcode','LOLCODE'),('lua','Lua'),('makefile','Makefile'),('markdown','Markdown'),('markup','Markup + HTML + XML + SVG + MathML'),('markup-templating','Markup templating'),('matlab','MATLAB'),('mel','MEL'),('mizar','Mizar'),('monkey','Monkey'),('n1ql','N1QL'),('n4js','N4JS'),('nand2tetris-hdl','Nand To Tetris HDL'),('nasm','NASM'),('nginx','nginx'),('nim','Nim'),('nix','Nix'),('nsis','NSIS'),('objectivec','Objective-C'),('ocaml','OCaml'),('opencl','OpenCL'),('oz','Oz'),('parigp','PARI/GP'),('parser','Parser'),('pascal','Pascal + Object Pascal'),('perl','Perl'),('php','PHP'),('phpdoc','PHPDoc'),('php-extras','PHP Extras'),('plsql','PL/SQL'),('powershell','PowerShell'),('processing','Processing'),('prolog','Prolog'),('properties','.properties'),('protobuf','Protocol Buffers'),('pug','Pug'),('puppet','Puppet'),('pure','Pure'),('python','Python'),('q','Q (kdb+ database)'),('qore','Qore'),('r','R'),('jsx','React JSX'),('tsx','React TSX'),('renpy','Ren\'py'),('reason','Reason'),('regex','Regex'),('rest','reST (reStructuredText)'),('rip','Rip'),('roboconf','Roboconf'),('ruby','Ruby'),('rust','Rust'),('sas','SAS'),('sass','Sass (Sass)'),('scss','Sass (Scss)'),('scala','Scala'),('scheme','Scheme'),('smalltalk','Smalltalk'),('smarty','Smarty'),('sql','SQL'),('soy','Soy (Closure Template)'),('stylus','Stylus'),('swift','Swift'),('tap','TAP'),('tcl','Tcl'),('textile','Textile'),('toml','TOML'),('tt2','Template Toolkit 2'),('twig','Twig'),('typescript','TypeScript'),('t4-cs','T4 Text Templates (C#)'),('t4-vb','T4 Text Templates (VB)'),('t4-templating','T4 templating'),('vala','Vala'),('vbnet','VB.Net'),('velocity','Velocity'),('verilog','Verilog'),('vhdl','VHDL'),('vim','vim'),('visual-basic','Visual Basic'),('wasm','WebAssembly'),('wiki','Wiki markup'),('xeora','Xeora + XeoraCube'),('xojo','Xojo (REALbasic)'),('xquery','XQuery'),('yaml','YAML'),)

更改日志

1.15.0.0

  • 更新至prismjs 1.15.0
  • 错误修复:不要关闭Language标签,因为它是可翻译的。

1.14.0.0

  • 升级至prismjs 1.14.0
  • 允许将语言代码作为属性传递,只允许使用单一语言。
  • 修复wagtail和标记语法类型的tag类之间的css冲突。

1.11.0.0

  • 升级至prismjs 1.11.0
    • 更改版本号以匹配附带的Prismjs版本
  • 添加对本机包含的prismjs语言的支持的修补程序[“html”、“mathml”、“svg”、“xml”]

0.4

  • 支持Wagtail 2.0

0.4.1

  • 升级至prismjs 1.9.0,其中包括一个补丁,我们对“coy”主题,我们使用作为默认。

0.3

  • 支持Prismjs主题

0.3.1

  • 一些前端问题的错误修复。更新文档。

项目维护人员

贡献者

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

推荐PyPI第三方库


热门话题
java如何从ImageIO中排除特定的TIFF读取器?   JavaJMockit和passbyreference。我们中一定有一个人错了(可能是我!)   java Android camera2放弃了牛轧糖的表面,但在棉花糖上工作   java按字符串中出现的顺序对字符数组进行排序   如何获取Groovy生成的java源代码   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java为什么我的冒泡排序代码会打印出这些奇怪的东西?   java JAXB:typesafeEnumMemberName=“generateName”是否可自定义?   Java编程输入:今天是星期天输出:星期天是今天   java不理解首个OOAD书的吉他示例   java如何从JformattedTextfield检索货币格式值   java可以从相同的源代码生成功能不同的可执行文件吗?