diff --git a/requirements.txt b/requirements.txt
index f1fa167..3a44c8f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,3 +2,4 @@ Django==4.0.5
wagtail==3.0
django-environ==0.8.1
whitenoise[brotli]==6.2.0
+pygments==2.12.0
diff --git a/static/src/scss/_bulma_overrides.scss b/static/src/scss/_bulma_overrides.scss
index 6598979..7ec1bcb 100644
--- a/static/src/scss/_bulma_overrides.scss
+++ b/static/src/scss/_bulma_overrides.scss
@@ -1,3 +1,4 @@
@use "bulma/sass/utilities/initial-variables" as *;
$container-max-width: $widescreen;
+$pre-background: unset;
diff --git a/templates/base.html b/templates/base.html
index e19a83d..c0a4763 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -16,6 +16,7 @@
+
{% block extra_css %}{% endblock %}
diff --git a/website/blog/migrations/0006_alter_bloglistpage_body_alter_blogpostpage_body.py b/website/blog/migrations/0006_alter_bloglistpage_body_alter_blogpostpage_body.py
new file mode 100644
index 0000000..2388366
--- /dev/null
+++ b/website/blog/migrations/0006_alter_bloglistpage_body_alter_blogpostpage_body.py
@@ -0,0 +1,1443 @@
+# Generated by Django 4.0.5 on 2022-06-27 22:29
+
+import wagtail.blocks
+import wagtail.embeds.blocks
+import wagtail.fields
+import wagtail.images.blocks
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("blog", "0005_alter_bloglistpage_body_alter_blogpostpage_body"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="bloglistpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("embed", wagtail.embeds.blocks.EmbedBlock()),
+ (
+ "rich_text",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "h1",
+ "h2",
+ "h3",
+ "h4",
+ "h5",
+ "h6",
+ "bold",
+ "italic",
+ "ol",
+ "ul",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ (
+ "lorem",
+ wagtail.blocks.StructBlock(
+ [("paragraphs", wagtail.blocks.IntegerBlock(min_value=1))]
+ ),
+ ),
+ ("html", wagtail.blocks.RawHTMLBlock()),
+ (
+ "image",
+ wagtail.blocks.StructBlock(
+ [
+ ("image", wagtail.images.blocks.ImageChooserBlock()),
+ (
+ "caption",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ ]
+ ),
+ ),
+ (
+ "code",
+ wagtail.blocks.StructBlock(
+ [
+ (
+ "language",
+ wagtail.blocks.ChoiceBlock(
+ choices=[
+ ("ABAP", "ABAP"),
+ ("ABNF", "ABNF"),
+ ("ADL", "ADL"),
+ ("AMDGPU", "AMDGPU"),
+ (
+ "ANSYS parametric design language",
+ "ANSYS parametric design language",
+ ),
+ ("ANTLR", "ANTLR"),
+ (
+ "ANTLR With ActionScript Target",
+ "ANTLR With ActionScript Target",
+ ),
+ (
+ "ANTLR With C# Target",
+ "ANTLR With C# Target",
+ ),
+ (
+ "ANTLR With CPP Target",
+ "ANTLR With CPP Target",
+ ),
+ (
+ "ANTLR With Java Target",
+ "ANTLR With Java Target",
+ ),
+ (
+ "ANTLR With ObjectiveC Target",
+ "ANTLR With ObjectiveC Target",
+ ),
+ (
+ "ANTLR With Perl Target",
+ "ANTLR With Perl Target",
+ ),
+ (
+ "ANTLR With Python Target",
+ "ANTLR With Python Target",
+ ),
+ (
+ "ANTLR With Ruby Target",
+ "ANTLR With Ruby Target",
+ ),
+ ("APL", "APL"),
+ ("ASCII armored", "ASCII armored"),
+ ("ActionScript", "ActionScript"),
+ ("ActionScript 3", "ActionScript 3"),
+ ("Ada", "Ada"),
+ ("Agda", "Agda"),
+ ("Aheui", "Aheui"),
+ ("Alloy", "Alloy"),
+ ("AmbientTalk", "AmbientTalk"),
+ ("Ampl", "Ampl"),
+ ("Angular2", "Angular2"),
+ ("ApacheConf", "ApacheConf"),
+ ("AppleScript", "AppleScript"),
+ ("Arduino", "Arduino"),
+ ("Arrow", "Arrow"),
+ ("AspectJ", "AspectJ"),
+ ("Asymptote", "Asymptote"),
+ ("Augeas", "Augeas"),
+ ("AutoIt", "AutoIt"),
+ ("Awk", "Awk"),
+ ("BARE", "BARE"),
+ ("BBC Basic", "BBC Basic"),
+ ("BBCode", "BBCode"),
+ ("BC", "BC"),
+ ("BNF", "BNF"),
+ ("BST", "BST"),
+ ("BUGS", "BUGS"),
+ ("Base Makefile", "Base Makefile"),
+ ("Bash", "Bash"),
+ ("Bash Session", "Bash Session"),
+ ("Batchfile", "Batchfile"),
+ ("Bdd", "Bdd"),
+ ("Befunge", "Befunge"),
+ ("Berry", "Berry"),
+ ("BibTeX", "BibTeX"),
+ ("BlitzBasic", "BlitzBasic"),
+ ("BlitzMax", "BlitzMax"),
+ ("Boa", "Boa"),
+ ("Boo", "Boo"),
+ ("Boogie", "Boogie"),
+ ("Brainfuck", "Brainfuck"),
+ ("C", "C"),
+ ("C#", "C#"),
+ ("C++", "C++"),
+ ("CAmkES", "CAmkES"),
+ ("CBM BASIC V2", "CBM BASIC V2"),
+ ("CDDL", "CDDL"),
+ ("CFEngine3", "CFEngine3"),
+ ("CMake", "CMake"),
+ ("COBOL", "COBOL"),
+ ("COBOLFree", "COBOLFree"),
+ ("CPSA", "CPSA"),
+ ("CSS", "CSS"),
+ ("CSS+Django/Jinja", "CSS+Django/Jinja"),
+ ("CSS+Genshi Text", "CSS+Genshi Text"),
+ ("CSS+Lasso", "CSS+Lasso"),
+ ("CSS+Mako", "CSS+Mako"),
+ ("CSS+Myghty", "CSS+Myghty"),
+ ("CSS+PHP", "CSS+PHP"),
+ ("CSS+Ruby", "CSS+Ruby"),
+ ("CSS+Smarty", "CSS+Smarty"),
+ ("CSS+UL4", "CSS+UL4"),
+ ("CSS+mozpreproc", "CSS+mozpreproc"),
+ ("CUDA", "CUDA"),
+ ("Cap'n Proto", "Cap'n Proto"),
+ ("CapDL", "CapDL"),
+ ("Ceylon", "Ceylon"),
+ ("ChaiScript", "ChaiScript"),
+ ("Chapel", "Chapel"),
+ ("Charmci", "Charmci"),
+ ("Cheetah", "Cheetah"),
+ ("Cirru", "Cirru"),
+ ("Clay", "Clay"),
+ ("Clean", "Clean"),
+ ("Clojure", "Clojure"),
+ ("ClojureScript", "ClojureScript"),
+ ("CoffeeScript", "CoffeeScript"),
+ ("Coldfusion CFC", "Coldfusion CFC"),
+ ("Coldfusion HTML", "Coldfusion HTML"),
+ ("Common Lisp", "Common Lisp"),
+ ("Component Pascal", "Component Pascal"),
+ ("Coq", "Coq"),
+ ("Crmsh", "Crmsh"),
+ ("Croc", "Croc"),
+ ("Cryptol", "Cryptol"),
+ ("Crystal", "Crystal"),
+ ("Csound Document", "Csound Document"),
+ ("Csound Orchestra", "Csound Orchestra"),
+ ("Csound Score", "Csound Score"),
+ ("Cypher", "Cypher"),
+ ("Cython", "Cython"),
+ ("D", "D"),
+ ("DASM16", "DASM16"),
+ ("DTD", "DTD"),
+ ("Darcs Patch", "Darcs Patch"),
+ ("Dart", "Dart"),
+ (
+ "Debian Control file",
+ "Debian Control file",
+ ),
+ ("Debian Sourcelist", "Debian Sourcelist"),
+ ("Delphi", "Delphi"),
+ ("Devicetree", "Devicetree"),
+ ("Diff", "Diff"),
+ ("Django/Jinja", "Django/Jinja"),
+ ("Docker", "Docker"),
+ ("Duel", "Duel"),
+ ("Dylan", "Dylan"),
+ ("Dylan session", "Dylan session"),
+ ("DylanLID", "DylanLID"),
+ ("E-mail", "E-mail"),
+ ("EBNF", "EBNF"),
+ ("ECL", "ECL"),
+ ("ERB", "ERB"),
+ ("Earl Grey", "Earl Grey"),
+ ("Easytrieve", "Easytrieve"),
+ ("Eiffel", "Eiffel"),
+ ("Elixir", "Elixir"),
+ (
+ "Elixir iex session",
+ "Elixir iex session",
+ ),
+ ("Elm", "Elm"),
+ ("Elpi", "Elpi"),
+ ("EmacsLisp", "EmacsLisp"),
+ ("Embedded Ragel", "Embedded Ragel"),
+ ("Erlang", "Erlang"),
+ (
+ "Erlang erl session",
+ "Erlang erl session",
+ ),
+ ("Evoque", "Evoque"),
+ ("Ezhil", "Ezhil"),
+ ("F#", "F#"),
+ ("FStar", "FStar"),
+ ("Factor", "Factor"),
+ ("Fancy", "Fancy"),
+ ("Fantom", "Fantom"),
+ ("Felix", "Felix"),
+ ("Fennel", "Fennel"),
+ ("Fish", "Fish"),
+ ("Flatline", "Flatline"),
+ ("FloScript", "FloScript"),
+ ("Forth", "Forth"),
+ ("Fortran", "Fortran"),
+ ("FortranFixed", "FortranFixed"),
+ ("FoxPro", "FoxPro"),
+ ("Freefem", "Freefem"),
+ ("Futhark", "Futhark"),
+ ("GAP", "GAP"),
+ ("GAS", "GAS"),
+ ("GDScript", "GDScript"),
+ ("GLSL", "GLSL"),
+ ("GSQL", "GSQL"),
+ ("Genshi", "Genshi"),
+ ("Genshi Text", "Genshi Text"),
+ ("Gettext Catalog", "Gettext Catalog"),
+ ("Gherkin", "Gherkin"),
+ ("Gnuplot", "Gnuplot"),
+ ("Go", "Go"),
+ ("Golo", "Golo"),
+ ("GoodData-CL", "GoodData-CL"),
+ ("Gosu", "Gosu"),
+ ("Gosu Template", "Gosu Template"),
+ ("Graphviz", "Graphviz"),
+ ("Groff", "Groff"),
+ ("Groovy", "Groovy"),
+ ("HLSL", "HLSL"),
+ ("HSAIL", "HSAIL"),
+ ("HTML", "HTML"),
+ ("HTML + Angular2", "HTML + Angular2"),
+ ("HTML+Cheetah", "HTML+Cheetah"),
+ ("HTML+Django/Jinja", "HTML+Django/Jinja"),
+ ("HTML+Evoque", "HTML+Evoque"),
+ ("HTML+Genshi", "HTML+Genshi"),
+ ("HTML+Handlebars", "HTML+Handlebars"),
+ ("HTML+Lasso", "HTML+Lasso"),
+ ("HTML+Mako", "HTML+Mako"),
+ ("HTML+Myghty", "HTML+Myghty"),
+ ("HTML+PHP", "HTML+PHP"),
+ ("HTML+Smarty", "HTML+Smarty"),
+ ("HTML+Twig", "HTML+Twig"),
+ ("HTML+UL4", "HTML+UL4"),
+ ("HTML+Velocity", "HTML+Velocity"),
+ ("HTTP", "HTTP"),
+ ("Haml", "Haml"),
+ ("Handlebars", "Handlebars"),
+ ("Haskell", "Haskell"),
+ ("Haxe", "Haxe"),
+ ("Hexdump", "Hexdump"),
+ ("Hspec", "Hspec"),
+ ("Hxml", "Hxml"),
+ ("Hy", "Hy"),
+ ("Hybris", "Hybris"),
+ ("IDL", "IDL"),
+ ("INI", "INI"),
+ ("IRC logs", "IRC logs"),
+ ("Icon", "Icon"),
+ ("Idris", "Idris"),
+ ("Igor", "Igor"),
+ ("Inform 6", "Inform 6"),
+ ("Inform 6 template", "Inform 6 template"),
+ ("Inform 7", "Inform 7"),
+ ("Io", "Io"),
+ ("Ioke", "Ioke"),
+ ("Isabelle", "Isabelle"),
+ ("J", "J"),
+ ("JAGS", "JAGS"),
+ ("JCL", "JCL"),
+ ("JSGF", "JSGF"),
+ ("JSLT", "JSLT"),
+ ("JSON", "JSON"),
+ ("JSON-LD", "JSON-LD"),
+ ("JSONBareObject", "JSONBareObject"),
+ ("Jasmin", "Jasmin"),
+ ("Java", "Java"),
+ ("Java Server Page", "Java Server Page"),
+ ("JavaScript", "JavaScript"),
+ (
+ "JavaScript+Cheetah",
+ "JavaScript+Cheetah",
+ ),
+ (
+ "JavaScript+Django/Jinja",
+ "JavaScript+Django/Jinja",
+ ),
+ (
+ "JavaScript+Genshi Text",
+ "JavaScript+Genshi Text",
+ ),
+ ("JavaScript+Lasso", "JavaScript+Lasso"),
+ ("JavaScript+Mako", "JavaScript+Mako"),
+ ("JavaScript+Myghty", "JavaScript+Myghty"),
+ ("JavaScript+PHP", "JavaScript+PHP"),
+ ("JavaScript+Ruby", "JavaScript+Ruby"),
+ ("JavaScript+Smarty", "JavaScript+Smarty"),
+ ("Javascript+UL4", "Javascript+UL4"),
+ (
+ "Javascript+mozpreproc",
+ "Javascript+mozpreproc",
+ ),
+ ("Julia", "Julia"),
+ ("Julia console", "Julia console"),
+ ("Juttle", "Juttle"),
+ ("K", "K"),
+ ("Kal", "Kal"),
+ ("Kconfig", "Kconfig"),
+ ("Kernel log", "Kernel log"),
+ ("Koka", "Koka"),
+ ("Kotlin", "Kotlin"),
+ ("Kuin", "Kuin"),
+ ("LLVM", "LLVM"),
+ ("LLVM-MIR", "LLVM-MIR"),
+ ("LLVM-MIR Body", "LLVM-MIR Body"),
+ ("LSL", "LSL"),
+ ("Lasso", "Lasso"),
+ ("Lean", "Lean"),
+ ("LessCss", "LessCss"),
+ (
+ "Lighttpd configuration file",
+ "Lighttpd configuration file",
+ ),
+ ("LilyPond", "LilyPond"),
+ ("Limbo", "Limbo"),
+ ("Literate Agda", "Literate Agda"),
+ ("Literate Cryptol", "Literate Cryptol"),
+ ("Literate Haskell", "Literate Haskell"),
+ ("Literate Idris", "Literate Idris"),
+ ("LiveScript", "LiveScript"),
+ ("Logos", "Logos"),
+ ("Logtalk", "Logtalk"),
+ ("Lua", "Lua"),
+ ("MAQL", "MAQL"),
+ ("MCFunction", "MCFunction"),
+ ("MIME", "MIME"),
+ ("MOOCode", "MOOCode"),
+ ("MQL", "MQL"),
+ ("MSDOS Session", "MSDOS Session"),
+ ("MXML", "MXML"),
+ ("Macaulay2", "Macaulay2"),
+ ("Makefile", "Makefile"),
+ ("Mako", "Mako"),
+ ("Markdown", "Markdown"),
+ ("Mask", "Mask"),
+ ("Mason", "Mason"),
+ ("Mathematica", "Mathematica"),
+ ("Matlab", "Matlab"),
+ ("Matlab session", "Matlab session"),
+ ("Maxima", "Maxima"),
+ ("Meson", "Meson"),
+ ("MiniD", "MiniD"),
+ ("MiniScript", "MiniScript"),
+ ("Modelica", "Modelica"),
+ ("Modula-2", "Modula-2"),
+ (
+ "MoinMoin/Trac Wiki markup",
+ "MoinMoin/Trac Wiki markup",
+ ),
+ ("Monkey", "Monkey"),
+ ("Monte", "Monte"),
+ ("MoonScript", "MoonScript"),
+ ("Mosel", "Mosel"),
+ ("Mscgen", "Mscgen"),
+ ("MuPAD", "MuPAD"),
+ ("MySQL", "MySQL"),
+ ("Myghty", "Myghty"),
+ ("NASM", "NASM"),
+ ("NCL", "NCL"),
+ ("NSIS", "NSIS"),
+ ("Nemerle", "Nemerle"),
+ ("NestedText", "NestedText"),
+ ("NewLisp", "NewLisp"),
+ ("Newspeak", "Newspeak"),
+ (
+ "Nginx configuration file",
+ "Nginx configuration file",
+ ),
+ ("Nimrod", "Nimrod"),
+ ("Nit", "Nit"),
+ ("Nix", "Nix"),
+ (
+ "Node.js REPL console session",
+ "Node.js REPL console session",
+ ),
+ ("Notmuch", "Notmuch"),
+ ("NuSMV", "NuSMV"),
+ ("NumPy", "NumPy"),
+ ("OCaml", "OCaml"),
+ ("ODIN", "ODIN"),
+ (
+ "OMG Interface Definition Language",
+ "OMG Interface Definition Language",
+ ),
+ ("Objective-C", "Objective-C"),
+ ("Objective-C++", "Objective-C++"),
+ ("Objective-J", "Objective-J"),
+ ("Octave", "Octave"),
+ ("Ooc", "Ooc"),
+ ("Opa", "Opa"),
+ ("OpenEdge ABL", "OpenEdge ABL"),
+ ("PEG", "PEG"),
+ ("PHP", "PHP"),
+ ("PL/pgSQL", "PL/pgSQL"),
+ ("POVRay", "POVRay"),
+ ("PacmanConf", "PacmanConf"),
+ ("Pan", "Pan"),
+ ("ParaSail", "ParaSail"),
+ ("Pawn", "Pawn"),
+ ("Perl", "Perl"),
+ ("Perl6", "Perl6"),
+ ("Pig", "Pig"),
+ ("Pike", "Pike"),
+ ("PkgConfig", "PkgConfig"),
+ ("Pointless", "Pointless"),
+ ("Pony", "Pony"),
+ ("PostScript", "PostScript"),
+ (
+ "PostgreSQL SQL dialect",
+ "PostgreSQL SQL dialect",
+ ),
+ (
+ "PostgreSQL console (psql)",
+ "PostgreSQL console (psql)",
+ ),
+ ("PowerShell", "PowerShell"),
+ (
+ "PowerShell Session",
+ "PowerShell Session",
+ ),
+ ("Praat", "Praat"),
+ ("Procfile", "Procfile"),
+ ("Prolog", "Prolog"),
+ ("PromQL", "PromQL"),
+ ("Properties", "Properties"),
+ ("Protocol Buffer", "Protocol Buffer"),
+ (
+ "PsySH console session for PHP",
+ "PsySH console session for PHP",
+ ),
+ ("Pug", "Pug"),
+ ("Puppet", "Puppet"),
+ ("PyPy Log", "PyPy Log"),
+ ("Python", "Python"),
+ ("Python 2.x", "Python 2.x"),
+ (
+ "Python 2.x Traceback",
+ "Python 2.x Traceback",
+ ),
+ ("Python Traceback", "Python Traceback"),
+ (
+ "Python console session",
+ "Python console session",
+ ),
+ ("Python+UL4", "Python+UL4"),
+ ("Q", "Q"),
+ ("QBasic", "QBasic"),
+ ("QML", "QML"),
+ ("QVTO", "QVTO"),
+ ("Qlik", "Qlik"),
+ ("RConsole", "RConsole"),
+ ("REBOL", "REBOL"),
+ ("RHTML", "RHTML"),
+ ("RPMSpec", "RPMSpec"),
+ ("RQL", "RQL"),
+ ("RSL", "RSL"),
+ ("Racket", "Racket"),
+ ("Ragel", "Ragel"),
+ ("Ragel in C Host", "Ragel in C Host"),
+ ("Ragel in CPP Host", "Ragel in CPP Host"),
+ ("Ragel in D Host", "Ragel in D Host"),
+ (
+ "Ragel in Java Host",
+ "Ragel in Java Host",
+ ),
+ (
+ "Ragel in Objective C Host",
+ "Ragel in Objective C Host",
+ ),
+ (
+ "Ragel in Ruby Host",
+ "Ragel in Ruby Host",
+ ),
+ ("Raw token data", "Raw token data"),
+ ("Rd", "Rd"),
+ ("ReasonML", "ReasonML"),
+ ("Red", "Red"),
+ ("Redcode", "Redcode"),
+ ("Relax-NG Compact", "Relax-NG Compact"),
+ ("ResourceBundle", "ResourceBundle"),
+ ("Rexx", "Rexx"),
+ ("Ride", "Ride"),
+ ("Rita", "Rita"),
+ ("Roboconf Graph", "Roboconf Graph"),
+ (
+ "Roboconf Instances",
+ "Roboconf Instances",
+ ),
+ ("RobotFramework", "RobotFramework"),
+ ("Ruby", "Ruby"),
+ ("Ruby irb session", "Ruby irb session"),
+ ("Rust", "Rust"),
+ ("S", "S"),
+ ("SARL", "SARL"),
+ ("SAS", "SAS"),
+ ("SCSS", "SCSS"),
+ ("SNBT", "SNBT"),
+ ("SPARQL", "SPARQL"),
+ ("SQL", "SQL"),
+ ("SWIG", "SWIG"),
+ ("Sass", "Sass"),
+ ("Savi", "Savi"),
+ ("Scala", "Scala"),
+ (
+ "Scalate Server Page",
+ "Scalate Server Page",
+ ),
+ ("Scaml", "Scaml"),
+ ("Scheme", "Scheme"),
+ ("Scilab", "Scilab"),
+ ("Sed", "Sed"),
+ ("ShExC", "ShExC"),
+ ("Shen", "Shen"),
+ ("Sieve", "Sieve"),
+ ("Silver", "Silver"),
+ ("Singularity", "Singularity"),
+ ("Slash", "Slash"),
+ ("Slim", "Slim"),
+ ("Slurm", "Slurm"),
+ ("Smali", "Smali"),
+ ("Smalltalk", "Smalltalk"),
+ ("SmartGameFormat", "SmartGameFormat"),
+ ("Smarty", "Smarty"),
+ ("Smithy", "Smithy"),
+ ("Snobol", "Snobol"),
+ ("Snowball", "Snowball"),
+ ("Solidity", "Solidity"),
+ ("Sophia", "Sophia"),
+ ("SourcePawn", "SourcePawn"),
+ ("Spice", "Spice"),
+ ("SquidConf", "SquidConf"),
+ ("Srcinfo", "Srcinfo"),
+ ("Stan", "Stan"),
+ ("Standard ML", "Standard ML"),
+ ("Stata", "Stata"),
+ ("SuperCollider", "SuperCollider"),
+ ("Swift", "Swift"),
+ ("TADS 3", "TADS 3"),
+ ("TAP", "TAP"),
+ ("TASM", "TASM"),
+ ("TOML", "TOML"),
+ ("Tal", "Tal"),
+ ("Tcl", "Tcl"),
+ ("Tcsh", "Tcsh"),
+ ("Tcsh Session", "Tcsh Session"),
+ ("TeX", "TeX"),
+ ("Tea", "Tea"),
+ ("Tera Term macro", "Tera Term macro"),
+ ("Termcap", "Termcap"),
+ ("Terminfo", "Terminfo"),
+ ("Terraform", "Terraform"),
+ ("Text only", "Text only"),
+ ("Text output", "Text output"),
+ ("ThingsDB", "ThingsDB"),
+ ("Thrift", "Thrift"),
+ ("Todotxt", "Todotxt"),
+ ("TrafficScript", "TrafficScript"),
+ ("Transact-SQL", "Transact-SQL"),
+ ("Treetop", "Treetop"),
+ ("Turtle", "Turtle"),
+ ("Twig", "Twig"),
+ ("TypeScript", "TypeScript"),
+ ("TypoScript", "TypoScript"),
+ ("TypoScriptCssData", "TypoScriptCssData"),
+ (
+ "TypoScriptHtmlData",
+ "TypoScriptHtmlData",
+ ),
+ (
+ "Typographic Number Theory",
+ "Typographic Number Theory",
+ ),
+ ("UL4", "UL4"),
+ ("USD", "USD"),
+ ("Unicon", "Unicon"),
+ (
+ "Unix/Linux config files",
+ "Unix/Linux config files",
+ ),
+ ("UrbiScript", "UrbiScript"),
+ ("VB.net", "VB.net"),
+ ("VBScript", "VBScript"),
+ ("VCL", "VCL"),
+ ("VCLSnippets", "VCLSnippets"),
+ ("VCTreeStatus", "VCTreeStatus"),
+ ("VGL", "VGL"),
+ ("Vala", "Vala"),
+ ("Velocity", "Velocity"),
+ ("VimL", "VimL"),
+ ("WDiff", "WDiff"),
+ ("Web IDL", "Web IDL"),
+ ("WebAssembly", "WebAssembly"),
+ ("Whiley", "Whiley"),
+ ("X10", "X10"),
+ ("XML", "XML"),
+ ("XML+Cheetah", "XML+Cheetah"),
+ ("XML+Django/Jinja", "XML+Django/Jinja"),
+ ("XML+Evoque", "XML+Evoque"),
+ ("XML+Lasso", "XML+Lasso"),
+ ("XML+Mako", "XML+Mako"),
+ ("XML+Myghty", "XML+Myghty"),
+ ("XML+PHP", "XML+PHP"),
+ ("XML+Ruby", "XML+Ruby"),
+ ("XML+Smarty", "XML+Smarty"),
+ ("XML+UL4", "XML+UL4"),
+ ("XML+Velocity", "XML+Velocity"),
+ ("XQuery", "XQuery"),
+ ("XSLT", "XSLT"),
+ ("XUL+mozpreproc", "XUL+mozpreproc"),
+ ("Xorg", "Xorg"),
+ ("Xtend", "Xtend"),
+ ("YAML", "YAML"),
+ ("YAML+Jinja", "YAML+Jinja"),
+ ("YANG", "YANG"),
+ ("Zeek", "Zeek"),
+ ("Zephir", "Zephir"),
+ ("Zig", "Zig"),
+ ("aspx-cs", "aspx-cs"),
+ ("aspx-vb", "aspx-vb"),
+ ("autohotkey", "autohotkey"),
+ ("c-objdump", "c-objdump"),
+ ("cADL", "cADL"),
+ ("ca65 assembler", "ca65 assembler"),
+ ("cfstatement", "cfstatement"),
+ ("cplint", "cplint"),
+ ("cpp-objdump", "cpp-objdump"),
+ ("d-objdump", "d-objdump"),
+ ("dg", "dg"),
+ ("eC", "eC"),
+ ("execline", "execline"),
+ ("g-code", "g-code"),
+ ("liquid", "liquid"),
+ ("mozhashpreproc", "mozhashpreproc"),
+ ("mozpercentpreproc", "mozpercentpreproc"),
+ ("nesC", "nesC"),
+ ("objdump", "objdump"),
+ ("objdump-nasm", "objdump-nasm"),
+ ("reStructuredText", "reStructuredText"),
+ ("reg", "reg"),
+ ("scdoc", "scdoc"),
+ ("sqlite3con", "sqlite3con"),
+ ("systemverilog", "systemverilog"),
+ ("teal", "teal"),
+ ("tiddler", "tiddler"),
+ ("ucode", "ucode"),
+ ("verilog", "verilog"),
+ ("vhdl", "vhdl"),
+ ("xtlang", "xtlang"),
+ ]
+ ),
+ ),
+ ("source", wagtail.blocks.TextBlock()),
+ ]
+ ),
+ ),
+ ],
+ blank=True,
+ use_json_field=True,
+ ),
+ ),
+ migrations.AlterField(
+ model_name="blogpostpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("embed", wagtail.embeds.blocks.EmbedBlock()),
+ (
+ "rich_text",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "h1",
+ "h2",
+ "h3",
+ "h4",
+ "h5",
+ "h6",
+ "bold",
+ "italic",
+ "ol",
+ "ul",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ (
+ "lorem",
+ wagtail.blocks.StructBlock(
+ [("paragraphs", wagtail.blocks.IntegerBlock(min_value=1))]
+ ),
+ ),
+ ("html", wagtail.blocks.RawHTMLBlock()),
+ (
+ "image",
+ wagtail.blocks.StructBlock(
+ [
+ ("image", wagtail.images.blocks.ImageChooserBlock()),
+ (
+ "caption",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ ]
+ ),
+ ),
+ (
+ "code",
+ wagtail.blocks.StructBlock(
+ [
+ (
+ "language",
+ wagtail.blocks.ChoiceBlock(
+ choices=[
+ ("ABAP", "ABAP"),
+ ("ABNF", "ABNF"),
+ ("ADL", "ADL"),
+ ("AMDGPU", "AMDGPU"),
+ (
+ "ANSYS parametric design language",
+ "ANSYS parametric design language",
+ ),
+ ("ANTLR", "ANTLR"),
+ (
+ "ANTLR With ActionScript Target",
+ "ANTLR With ActionScript Target",
+ ),
+ (
+ "ANTLR With C# Target",
+ "ANTLR With C# Target",
+ ),
+ (
+ "ANTLR With CPP Target",
+ "ANTLR With CPP Target",
+ ),
+ (
+ "ANTLR With Java Target",
+ "ANTLR With Java Target",
+ ),
+ (
+ "ANTLR With ObjectiveC Target",
+ "ANTLR With ObjectiveC Target",
+ ),
+ (
+ "ANTLR With Perl Target",
+ "ANTLR With Perl Target",
+ ),
+ (
+ "ANTLR With Python Target",
+ "ANTLR With Python Target",
+ ),
+ (
+ "ANTLR With Ruby Target",
+ "ANTLR With Ruby Target",
+ ),
+ ("APL", "APL"),
+ ("ASCII armored", "ASCII armored"),
+ ("ActionScript", "ActionScript"),
+ ("ActionScript 3", "ActionScript 3"),
+ ("Ada", "Ada"),
+ ("Agda", "Agda"),
+ ("Aheui", "Aheui"),
+ ("Alloy", "Alloy"),
+ ("AmbientTalk", "AmbientTalk"),
+ ("Ampl", "Ampl"),
+ ("Angular2", "Angular2"),
+ ("ApacheConf", "ApacheConf"),
+ ("AppleScript", "AppleScript"),
+ ("Arduino", "Arduino"),
+ ("Arrow", "Arrow"),
+ ("AspectJ", "AspectJ"),
+ ("Asymptote", "Asymptote"),
+ ("Augeas", "Augeas"),
+ ("AutoIt", "AutoIt"),
+ ("Awk", "Awk"),
+ ("BARE", "BARE"),
+ ("BBC Basic", "BBC Basic"),
+ ("BBCode", "BBCode"),
+ ("BC", "BC"),
+ ("BNF", "BNF"),
+ ("BST", "BST"),
+ ("BUGS", "BUGS"),
+ ("Base Makefile", "Base Makefile"),
+ ("Bash", "Bash"),
+ ("Bash Session", "Bash Session"),
+ ("Batchfile", "Batchfile"),
+ ("Bdd", "Bdd"),
+ ("Befunge", "Befunge"),
+ ("Berry", "Berry"),
+ ("BibTeX", "BibTeX"),
+ ("BlitzBasic", "BlitzBasic"),
+ ("BlitzMax", "BlitzMax"),
+ ("Boa", "Boa"),
+ ("Boo", "Boo"),
+ ("Boogie", "Boogie"),
+ ("Brainfuck", "Brainfuck"),
+ ("C", "C"),
+ ("C#", "C#"),
+ ("C++", "C++"),
+ ("CAmkES", "CAmkES"),
+ ("CBM BASIC V2", "CBM BASIC V2"),
+ ("CDDL", "CDDL"),
+ ("CFEngine3", "CFEngine3"),
+ ("CMake", "CMake"),
+ ("COBOL", "COBOL"),
+ ("COBOLFree", "COBOLFree"),
+ ("CPSA", "CPSA"),
+ ("CSS", "CSS"),
+ ("CSS+Django/Jinja", "CSS+Django/Jinja"),
+ ("CSS+Genshi Text", "CSS+Genshi Text"),
+ ("CSS+Lasso", "CSS+Lasso"),
+ ("CSS+Mako", "CSS+Mako"),
+ ("CSS+Myghty", "CSS+Myghty"),
+ ("CSS+PHP", "CSS+PHP"),
+ ("CSS+Ruby", "CSS+Ruby"),
+ ("CSS+Smarty", "CSS+Smarty"),
+ ("CSS+UL4", "CSS+UL4"),
+ ("CSS+mozpreproc", "CSS+mozpreproc"),
+ ("CUDA", "CUDA"),
+ ("Cap'n Proto", "Cap'n Proto"),
+ ("CapDL", "CapDL"),
+ ("Ceylon", "Ceylon"),
+ ("ChaiScript", "ChaiScript"),
+ ("Chapel", "Chapel"),
+ ("Charmci", "Charmci"),
+ ("Cheetah", "Cheetah"),
+ ("Cirru", "Cirru"),
+ ("Clay", "Clay"),
+ ("Clean", "Clean"),
+ ("Clojure", "Clojure"),
+ ("ClojureScript", "ClojureScript"),
+ ("CoffeeScript", "CoffeeScript"),
+ ("Coldfusion CFC", "Coldfusion CFC"),
+ ("Coldfusion HTML", "Coldfusion HTML"),
+ ("Common Lisp", "Common Lisp"),
+ ("Component Pascal", "Component Pascal"),
+ ("Coq", "Coq"),
+ ("Crmsh", "Crmsh"),
+ ("Croc", "Croc"),
+ ("Cryptol", "Cryptol"),
+ ("Crystal", "Crystal"),
+ ("Csound Document", "Csound Document"),
+ ("Csound Orchestra", "Csound Orchestra"),
+ ("Csound Score", "Csound Score"),
+ ("Cypher", "Cypher"),
+ ("Cython", "Cython"),
+ ("D", "D"),
+ ("DASM16", "DASM16"),
+ ("DTD", "DTD"),
+ ("Darcs Patch", "Darcs Patch"),
+ ("Dart", "Dart"),
+ (
+ "Debian Control file",
+ "Debian Control file",
+ ),
+ ("Debian Sourcelist", "Debian Sourcelist"),
+ ("Delphi", "Delphi"),
+ ("Devicetree", "Devicetree"),
+ ("Diff", "Diff"),
+ ("Django/Jinja", "Django/Jinja"),
+ ("Docker", "Docker"),
+ ("Duel", "Duel"),
+ ("Dylan", "Dylan"),
+ ("Dylan session", "Dylan session"),
+ ("DylanLID", "DylanLID"),
+ ("E-mail", "E-mail"),
+ ("EBNF", "EBNF"),
+ ("ECL", "ECL"),
+ ("ERB", "ERB"),
+ ("Earl Grey", "Earl Grey"),
+ ("Easytrieve", "Easytrieve"),
+ ("Eiffel", "Eiffel"),
+ ("Elixir", "Elixir"),
+ (
+ "Elixir iex session",
+ "Elixir iex session",
+ ),
+ ("Elm", "Elm"),
+ ("Elpi", "Elpi"),
+ ("EmacsLisp", "EmacsLisp"),
+ ("Embedded Ragel", "Embedded Ragel"),
+ ("Erlang", "Erlang"),
+ (
+ "Erlang erl session",
+ "Erlang erl session",
+ ),
+ ("Evoque", "Evoque"),
+ ("Ezhil", "Ezhil"),
+ ("F#", "F#"),
+ ("FStar", "FStar"),
+ ("Factor", "Factor"),
+ ("Fancy", "Fancy"),
+ ("Fantom", "Fantom"),
+ ("Felix", "Felix"),
+ ("Fennel", "Fennel"),
+ ("Fish", "Fish"),
+ ("Flatline", "Flatline"),
+ ("FloScript", "FloScript"),
+ ("Forth", "Forth"),
+ ("Fortran", "Fortran"),
+ ("FortranFixed", "FortranFixed"),
+ ("FoxPro", "FoxPro"),
+ ("Freefem", "Freefem"),
+ ("Futhark", "Futhark"),
+ ("GAP", "GAP"),
+ ("GAS", "GAS"),
+ ("GDScript", "GDScript"),
+ ("GLSL", "GLSL"),
+ ("GSQL", "GSQL"),
+ ("Genshi", "Genshi"),
+ ("Genshi Text", "Genshi Text"),
+ ("Gettext Catalog", "Gettext Catalog"),
+ ("Gherkin", "Gherkin"),
+ ("Gnuplot", "Gnuplot"),
+ ("Go", "Go"),
+ ("Golo", "Golo"),
+ ("GoodData-CL", "GoodData-CL"),
+ ("Gosu", "Gosu"),
+ ("Gosu Template", "Gosu Template"),
+ ("Graphviz", "Graphviz"),
+ ("Groff", "Groff"),
+ ("Groovy", "Groovy"),
+ ("HLSL", "HLSL"),
+ ("HSAIL", "HSAIL"),
+ ("HTML", "HTML"),
+ ("HTML + Angular2", "HTML + Angular2"),
+ ("HTML+Cheetah", "HTML+Cheetah"),
+ ("HTML+Django/Jinja", "HTML+Django/Jinja"),
+ ("HTML+Evoque", "HTML+Evoque"),
+ ("HTML+Genshi", "HTML+Genshi"),
+ ("HTML+Handlebars", "HTML+Handlebars"),
+ ("HTML+Lasso", "HTML+Lasso"),
+ ("HTML+Mako", "HTML+Mako"),
+ ("HTML+Myghty", "HTML+Myghty"),
+ ("HTML+PHP", "HTML+PHP"),
+ ("HTML+Smarty", "HTML+Smarty"),
+ ("HTML+Twig", "HTML+Twig"),
+ ("HTML+UL4", "HTML+UL4"),
+ ("HTML+Velocity", "HTML+Velocity"),
+ ("HTTP", "HTTP"),
+ ("Haml", "Haml"),
+ ("Handlebars", "Handlebars"),
+ ("Haskell", "Haskell"),
+ ("Haxe", "Haxe"),
+ ("Hexdump", "Hexdump"),
+ ("Hspec", "Hspec"),
+ ("Hxml", "Hxml"),
+ ("Hy", "Hy"),
+ ("Hybris", "Hybris"),
+ ("IDL", "IDL"),
+ ("INI", "INI"),
+ ("IRC logs", "IRC logs"),
+ ("Icon", "Icon"),
+ ("Idris", "Idris"),
+ ("Igor", "Igor"),
+ ("Inform 6", "Inform 6"),
+ ("Inform 6 template", "Inform 6 template"),
+ ("Inform 7", "Inform 7"),
+ ("Io", "Io"),
+ ("Ioke", "Ioke"),
+ ("Isabelle", "Isabelle"),
+ ("J", "J"),
+ ("JAGS", "JAGS"),
+ ("JCL", "JCL"),
+ ("JSGF", "JSGF"),
+ ("JSLT", "JSLT"),
+ ("JSON", "JSON"),
+ ("JSON-LD", "JSON-LD"),
+ ("JSONBareObject", "JSONBareObject"),
+ ("Jasmin", "Jasmin"),
+ ("Java", "Java"),
+ ("Java Server Page", "Java Server Page"),
+ ("JavaScript", "JavaScript"),
+ (
+ "JavaScript+Cheetah",
+ "JavaScript+Cheetah",
+ ),
+ (
+ "JavaScript+Django/Jinja",
+ "JavaScript+Django/Jinja",
+ ),
+ (
+ "JavaScript+Genshi Text",
+ "JavaScript+Genshi Text",
+ ),
+ ("JavaScript+Lasso", "JavaScript+Lasso"),
+ ("JavaScript+Mako", "JavaScript+Mako"),
+ ("JavaScript+Myghty", "JavaScript+Myghty"),
+ ("JavaScript+PHP", "JavaScript+PHP"),
+ ("JavaScript+Ruby", "JavaScript+Ruby"),
+ ("JavaScript+Smarty", "JavaScript+Smarty"),
+ ("Javascript+UL4", "Javascript+UL4"),
+ (
+ "Javascript+mozpreproc",
+ "Javascript+mozpreproc",
+ ),
+ ("Julia", "Julia"),
+ ("Julia console", "Julia console"),
+ ("Juttle", "Juttle"),
+ ("K", "K"),
+ ("Kal", "Kal"),
+ ("Kconfig", "Kconfig"),
+ ("Kernel log", "Kernel log"),
+ ("Koka", "Koka"),
+ ("Kotlin", "Kotlin"),
+ ("Kuin", "Kuin"),
+ ("LLVM", "LLVM"),
+ ("LLVM-MIR", "LLVM-MIR"),
+ ("LLVM-MIR Body", "LLVM-MIR Body"),
+ ("LSL", "LSL"),
+ ("Lasso", "Lasso"),
+ ("Lean", "Lean"),
+ ("LessCss", "LessCss"),
+ (
+ "Lighttpd configuration file",
+ "Lighttpd configuration file",
+ ),
+ ("LilyPond", "LilyPond"),
+ ("Limbo", "Limbo"),
+ ("Literate Agda", "Literate Agda"),
+ ("Literate Cryptol", "Literate Cryptol"),
+ ("Literate Haskell", "Literate Haskell"),
+ ("Literate Idris", "Literate Idris"),
+ ("LiveScript", "LiveScript"),
+ ("Logos", "Logos"),
+ ("Logtalk", "Logtalk"),
+ ("Lua", "Lua"),
+ ("MAQL", "MAQL"),
+ ("MCFunction", "MCFunction"),
+ ("MIME", "MIME"),
+ ("MOOCode", "MOOCode"),
+ ("MQL", "MQL"),
+ ("MSDOS Session", "MSDOS Session"),
+ ("MXML", "MXML"),
+ ("Macaulay2", "Macaulay2"),
+ ("Makefile", "Makefile"),
+ ("Mako", "Mako"),
+ ("Markdown", "Markdown"),
+ ("Mask", "Mask"),
+ ("Mason", "Mason"),
+ ("Mathematica", "Mathematica"),
+ ("Matlab", "Matlab"),
+ ("Matlab session", "Matlab session"),
+ ("Maxima", "Maxima"),
+ ("Meson", "Meson"),
+ ("MiniD", "MiniD"),
+ ("MiniScript", "MiniScript"),
+ ("Modelica", "Modelica"),
+ ("Modula-2", "Modula-2"),
+ (
+ "MoinMoin/Trac Wiki markup",
+ "MoinMoin/Trac Wiki markup",
+ ),
+ ("Monkey", "Monkey"),
+ ("Monte", "Monte"),
+ ("MoonScript", "MoonScript"),
+ ("Mosel", "Mosel"),
+ ("Mscgen", "Mscgen"),
+ ("MuPAD", "MuPAD"),
+ ("MySQL", "MySQL"),
+ ("Myghty", "Myghty"),
+ ("NASM", "NASM"),
+ ("NCL", "NCL"),
+ ("NSIS", "NSIS"),
+ ("Nemerle", "Nemerle"),
+ ("NestedText", "NestedText"),
+ ("NewLisp", "NewLisp"),
+ ("Newspeak", "Newspeak"),
+ (
+ "Nginx configuration file",
+ "Nginx configuration file",
+ ),
+ ("Nimrod", "Nimrod"),
+ ("Nit", "Nit"),
+ ("Nix", "Nix"),
+ (
+ "Node.js REPL console session",
+ "Node.js REPL console session",
+ ),
+ ("Notmuch", "Notmuch"),
+ ("NuSMV", "NuSMV"),
+ ("NumPy", "NumPy"),
+ ("OCaml", "OCaml"),
+ ("ODIN", "ODIN"),
+ (
+ "OMG Interface Definition Language",
+ "OMG Interface Definition Language",
+ ),
+ ("Objective-C", "Objective-C"),
+ ("Objective-C++", "Objective-C++"),
+ ("Objective-J", "Objective-J"),
+ ("Octave", "Octave"),
+ ("Ooc", "Ooc"),
+ ("Opa", "Opa"),
+ ("OpenEdge ABL", "OpenEdge ABL"),
+ ("PEG", "PEG"),
+ ("PHP", "PHP"),
+ ("PL/pgSQL", "PL/pgSQL"),
+ ("POVRay", "POVRay"),
+ ("PacmanConf", "PacmanConf"),
+ ("Pan", "Pan"),
+ ("ParaSail", "ParaSail"),
+ ("Pawn", "Pawn"),
+ ("Perl", "Perl"),
+ ("Perl6", "Perl6"),
+ ("Pig", "Pig"),
+ ("Pike", "Pike"),
+ ("PkgConfig", "PkgConfig"),
+ ("Pointless", "Pointless"),
+ ("Pony", "Pony"),
+ ("PostScript", "PostScript"),
+ (
+ "PostgreSQL SQL dialect",
+ "PostgreSQL SQL dialect",
+ ),
+ (
+ "PostgreSQL console (psql)",
+ "PostgreSQL console (psql)",
+ ),
+ ("PowerShell", "PowerShell"),
+ (
+ "PowerShell Session",
+ "PowerShell Session",
+ ),
+ ("Praat", "Praat"),
+ ("Procfile", "Procfile"),
+ ("Prolog", "Prolog"),
+ ("PromQL", "PromQL"),
+ ("Properties", "Properties"),
+ ("Protocol Buffer", "Protocol Buffer"),
+ (
+ "PsySH console session for PHP",
+ "PsySH console session for PHP",
+ ),
+ ("Pug", "Pug"),
+ ("Puppet", "Puppet"),
+ ("PyPy Log", "PyPy Log"),
+ ("Python", "Python"),
+ ("Python 2.x", "Python 2.x"),
+ (
+ "Python 2.x Traceback",
+ "Python 2.x Traceback",
+ ),
+ ("Python Traceback", "Python Traceback"),
+ (
+ "Python console session",
+ "Python console session",
+ ),
+ ("Python+UL4", "Python+UL4"),
+ ("Q", "Q"),
+ ("QBasic", "QBasic"),
+ ("QML", "QML"),
+ ("QVTO", "QVTO"),
+ ("Qlik", "Qlik"),
+ ("RConsole", "RConsole"),
+ ("REBOL", "REBOL"),
+ ("RHTML", "RHTML"),
+ ("RPMSpec", "RPMSpec"),
+ ("RQL", "RQL"),
+ ("RSL", "RSL"),
+ ("Racket", "Racket"),
+ ("Ragel", "Ragel"),
+ ("Ragel in C Host", "Ragel in C Host"),
+ ("Ragel in CPP Host", "Ragel in CPP Host"),
+ ("Ragel in D Host", "Ragel in D Host"),
+ (
+ "Ragel in Java Host",
+ "Ragel in Java Host",
+ ),
+ (
+ "Ragel in Objective C Host",
+ "Ragel in Objective C Host",
+ ),
+ (
+ "Ragel in Ruby Host",
+ "Ragel in Ruby Host",
+ ),
+ ("Raw token data", "Raw token data"),
+ ("Rd", "Rd"),
+ ("ReasonML", "ReasonML"),
+ ("Red", "Red"),
+ ("Redcode", "Redcode"),
+ ("Relax-NG Compact", "Relax-NG Compact"),
+ ("ResourceBundle", "ResourceBundle"),
+ ("Rexx", "Rexx"),
+ ("Ride", "Ride"),
+ ("Rita", "Rita"),
+ ("Roboconf Graph", "Roboconf Graph"),
+ (
+ "Roboconf Instances",
+ "Roboconf Instances",
+ ),
+ ("RobotFramework", "RobotFramework"),
+ ("Ruby", "Ruby"),
+ ("Ruby irb session", "Ruby irb session"),
+ ("Rust", "Rust"),
+ ("S", "S"),
+ ("SARL", "SARL"),
+ ("SAS", "SAS"),
+ ("SCSS", "SCSS"),
+ ("SNBT", "SNBT"),
+ ("SPARQL", "SPARQL"),
+ ("SQL", "SQL"),
+ ("SWIG", "SWIG"),
+ ("Sass", "Sass"),
+ ("Savi", "Savi"),
+ ("Scala", "Scala"),
+ (
+ "Scalate Server Page",
+ "Scalate Server Page",
+ ),
+ ("Scaml", "Scaml"),
+ ("Scheme", "Scheme"),
+ ("Scilab", "Scilab"),
+ ("Sed", "Sed"),
+ ("ShExC", "ShExC"),
+ ("Shen", "Shen"),
+ ("Sieve", "Sieve"),
+ ("Silver", "Silver"),
+ ("Singularity", "Singularity"),
+ ("Slash", "Slash"),
+ ("Slim", "Slim"),
+ ("Slurm", "Slurm"),
+ ("Smali", "Smali"),
+ ("Smalltalk", "Smalltalk"),
+ ("SmartGameFormat", "SmartGameFormat"),
+ ("Smarty", "Smarty"),
+ ("Smithy", "Smithy"),
+ ("Snobol", "Snobol"),
+ ("Snowball", "Snowball"),
+ ("Solidity", "Solidity"),
+ ("Sophia", "Sophia"),
+ ("SourcePawn", "SourcePawn"),
+ ("Spice", "Spice"),
+ ("SquidConf", "SquidConf"),
+ ("Srcinfo", "Srcinfo"),
+ ("Stan", "Stan"),
+ ("Standard ML", "Standard ML"),
+ ("Stata", "Stata"),
+ ("SuperCollider", "SuperCollider"),
+ ("Swift", "Swift"),
+ ("TADS 3", "TADS 3"),
+ ("TAP", "TAP"),
+ ("TASM", "TASM"),
+ ("TOML", "TOML"),
+ ("Tal", "Tal"),
+ ("Tcl", "Tcl"),
+ ("Tcsh", "Tcsh"),
+ ("Tcsh Session", "Tcsh Session"),
+ ("TeX", "TeX"),
+ ("Tea", "Tea"),
+ ("Tera Term macro", "Tera Term macro"),
+ ("Termcap", "Termcap"),
+ ("Terminfo", "Terminfo"),
+ ("Terraform", "Terraform"),
+ ("Text only", "Text only"),
+ ("Text output", "Text output"),
+ ("ThingsDB", "ThingsDB"),
+ ("Thrift", "Thrift"),
+ ("Todotxt", "Todotxt"),
+ ("TrafficScript", "TrafficScript"),
+ ("Transact-SQL", "Transact-SQL"),
+ ("Treetop", "Treetop"),
+ ("Turtle", "Turtle"),
+ ("Twig", "Twig"),
+ ("TypeScript", "TypeScript"),
+ ("TypoScript", "TypoScript"),
+ ("TypoScriptCssData", "TypoScriptCssData"),
+ (
+ "TypoScriptHtmlData",
+ "TypoScriptHtmlData",
+ ),
+ (
+ "Typographic Number Theory",
+ "Typographic Number Theory",
+ ),
+ ("UL4", "UL4"),
+ ("USD", "USD"),
+ ("Unicon", "Unicon"),
+ (
+ "Unix/Linux config files",
+ "Unix/Linux config files",
+ ),
+ ("UrbiScript", "UrbiScript"),
+ ("VB.net", "VB.net"),
+ ("VBScript", "VBScript"),
+ ("VCL", "VCL"),
+ ("VCLSnippets", "VCLSnippets"),
+ ("VCTreeStatus", "VCTreeStatus"),
+ ("VGL", "VGL"),
+ ("Vala", "Vala"),
+ ("Velocity", "Velocity"),
+ ("VimL", "VimL"),
+ ("WDiff", "WDiff"),
+ ("Web IDL", "Web IDL"),
+ ("WebAssembly", "WebAssembly"),
+ ("Whiley", "Whiley"),
+ ("X10", "X10"),
+ ("XML", "XML"),
+ ("XML+Cheetah", "XML+Cheetah"),
+ ("XML+Django/Jinja", "XML+Django/Jinja"),
+ ("XML+Evoque", "XML+Evoque"),
+ ("XML+Lasso", "XML+Lasso"),
+ ("XML+Mako", "XML+Mako"),
+ ("XML+Myghty", "XML+Myghty"),
+ ("XML+PHP", "XML+PHP"),
+ ("XML+Ruby", "XML+Ruby"),
+ ("XML+Smarty", "XML+Smarty"),
+ ("XML+UL4", "XML+UL4"),
+ ("XML+Velocity", "XML+Velocity"),
+ ("XQuery", "XQuery"),
+ ("XSLT", "XSLT"),
+ ("XUL+mozpreproc", "XUL+mozpreproc"),
+ ("Xorg", "Xorg"),
+ ("Xtend", "Xtend"),
+ ("YAML", "YAML"),
+ ("YAML+Jinja", "YAML+Jinja"),
+ ("YANG", "YANG"),
+ ("Zeek", "Zeek"),
+ ("Zephir", "Zephir"),
+ ("Zig", "Zig"),
+ ("aspx-cs", "aspx-cs"),
+ ("aspx-vb", "aspx-vb"),
+ ("autohotkey", "autohotkey"),
+ ("c-objdump", "c-objdump"),
+ ("cADL", "cADL"),
+ ("ca65 assembler", "ca65 assembler"),
+ ("cfstatement", "cfstatement"),
+ ("cplint", "cplint"),
+ ("cpp-objdump", "cpp-objdump"),
+ ("d-objdump", "d-objdump"),
+ ("dg", "dg"),
+ ("eC", "eC"),
+ ("execline", "execline"),
+ ("g-code", "g-code"),
+ ("liquid", "liquid"),
+ ("mozhashpreproc", "mozhashpreproc"),
+ ("mozpercentpreproc", "mozpercentpreproc"),
+ ("nesC", "nesC"),
+ ("objdump", "objdump"),
+ ("objdump-nasm", "objdump-nasm"),
+ ("reStructuredText", "reStructuredText"),
+ ("reg", "reg"),
+ ("scdoc", "scdoc"),
+ ("sqlite3con", "sqlite3con"),
+ ("systemverilog", "systemverilog"),
+ ("teal", "teal"),
+ ("tiddler", "tiddler"),
+ ("ucode", "ucode"),
+ ("verilog", "verilog"),
+ ("vhdl", "vhdl"),
+ ("xtlang", "xtlang"),
+ ]
+ ),
+ ),
+ ("source", wagtail.blocks.TextBlock()),
+ ]
+ ),
+ ),
+ ],
+ blank=True,
+ use_json_field=True,
+ ),
+ ),
+ ]
diff --git a/website/common/migrations/0007_alter_contentpage_body_alter_listingpage_body.py b/website/common/migrations/0007_alter_contentpage_body_alter_listingpage_body.py
new file mode 100644
index 0000000..f5a80f8
--- /dev/null
+++ b/website/common/migrations/0007_alter_contentpage_body_alter_listingpage_body.py
@@ -0,0 +1,1443 @@
+# Generated by Django 4.0.5 on 2022-06-27 22:29
+
+import wagtail.blocks
+import wagtail.embeds.blocks
+import wagtail.fields
+import wagtail.images.blocks
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("common", "0006_alter_contentpage_body_alter_listingpage_body"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="contentpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("embed", wagtail.embeds.blocks.EmbedBlock()),
+ (
+ "rich_text",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "h1",
+ "h2",
+ "h3",
+ "h4",
+ "h5",
+ "h6",
+ "bold",
+ "italic",
+ "ol",
+ "ul",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ (
+ "lorem",
+ wagtail.blocks.StructBlock(
+ [("paragraphs", wagtail.blocks.IntegerBlock(min_value=1))]
+ ),
+ ),
+ ("html", wagtail.blocks.RawHTMLBlock()),
+ (
+ "image",
+ wagtail.blocks.StructBlock(
+ [
+ ("image", wagtail.images.blocks.ImageChooserBlock()),
+ (
+ "caption",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ ]
+ ),
+ ),
+ (
+ "code",
+ wagtail.blocks.StructBlock(
+ [
+ (
+ "language",
+ wagtail.blocks.ChoiceBlock(
+ choices=[
+ ("ABAP", "ABAP"),
+ ("ABNF", "ABNF"),
+ ("ADL", "ADL"),
+ ("AMDGPU", "AMDGPU"),
+ (
+ "ANSYS parametric design language",
+ "ANSYS parametric design language",
+ ),
+ ("ANTLR", "ANTLR"),
+ (
+ "ANTLR With ActionScript Target",
+ "ANTLR With ActionScript Target",
+ ),
+ (
+ "ANTLR With C# Target",
+ "ANTLR With C# Target",
+ ),
+ (
+ "ANTLR With CPP Target",
+ "ANTLR With CPP Target",
+ ),
+ (
+ "ANTLR With Java Target",
+ "ANTLR With Java Target",
+ ),
+ (
+ "ANTLR With ObjectiveC Target",
+ "ANTLR With ObjectiveC Target",
+ ),
+ (
+ "ANTLR With Perl Target",
+ "ANTLR With Perl Target",
+ ),
+ (
+ "ANTLR With Python Target",
+ "ANTLR With Python Target",
+ ),
+ (
+ "ANTLR With Ruby Target",
+ "ANTLR With Ruby Target",
+ ),
+ ("APL", "APL"),
+ ("ASCII armored", "ASCII armored"),
+ ("ActionScript", "ActionScript"),
+ ("ActionScript 3", "ActionScript 3"),
+ ("Ada", "Ada"),
+ ("Agda", "Agda"),
+ ("Aheui", "Aheui"),
+ ("Alloy", "Alloy"),
+ ("AmbientTalk", "AmbientTalk"),
+ ("Ampl", "Ampl"),
+ ("Angular2", "Angular2"),
+ ("ApacheConf", "ApacheConf"),
+ ("AppleScript", "AppleScript"),
+ ("Arduino", "Arduino"),
+ ("Arrow", "Arrow"),
+ ("AspectJ", "AspectJ"),
+ ("Asymptote", "Asymptote"),
+ ("Augeas", "Augeas"),
+ ("AutoIt", "AutoIt"),
+ ("Awk", "Awk"),
+ ("BARE", "BARE"),
+ ("BBC Basic", "BBC Basic"),
+ ("BBCode", "BBCode"),
+ ("BC", "BC"),
+ ("BNF", "BNF"),
+ ("BST", "BST"),
+ ("BUGS", "BUGS"),
+ ("Base Makefile", "Base Makefile"),
+ ("Bash", "Bash"),
+ ("Bash Session", "Bash Session"),
+ ("Batchfile", "Batchfile"),
+ ("Bdd", "Bdd"),
+ ("Befunge", "Befunge"),
+ ("Berry", "Berry"),
+ ("BibTeX", "BibTeX"),
+ ("BlitzBasic", "BlitzBasic"),
+ ("BlitzMax", "BlitzMax"),
+ ("Boa", "Boa"),
+ ("Boo", "Boo"),
+ ("Boogie", "Boogie"),
+ ("Brainfuck", "Brainfuck"),
+ ("C", "C"),
+ ("C#", "C#"),
+ ("C++", "C++"),
+ ("CAmkES", "CAmkES"),
+ ("CBM BASIC V2", "CBM BASIC V2"),
+ ("CDDL", "CDDL"),
+ ("CFEngine3", "CFEngine3"),
+ ("CMake", "CMake"),
+ ("COBOL", "COBOL"),
+ ("COBOLFree", "COBOLFree"),
+ ("CPSA", "CPSA"),
+ ("CSS", "CSS"),
+ ("CSS+Django/Jinja", "CSS+Django/Jinja"),
+ ("CSS+Genshi Text", "CSS+Genshi Text"),
+ ("CSS+Lasso", "CSS+Lasso"),
+ ("CSS+Mako", "CSS+Mako"),
+ ("CSS+Myghty", "CSS+Myghty"),
+ ("CSS+PHP", "CSS+PHP"),
+ ("CSS+Ruby", "CSS+Ruby"),
+ ("CSS+Smarty", "CSS+Smarty"),
+ ("CSS+UL4", "CSS+UL4"),
+ ("CSS+mozpreproc", "CSS+mozpreproc"),
+ ("CUDA", "CUDA"),
+ ("Cap'n Proto", "Cap'n Proto"),
+ ("CapDL", "CapDL"),
+ ("Ceylon", "Ceylon"),
+ ("ChaiScript", "ChaiScript"),
+ ("Chapel", "Chapel"),
+ ("Charmci", "Charmci"),
+ ("Cheetah", "Cheetah"),
+ ("Cirru", "Cirru"),
+ ("Clay", "Clay"),
+ ("Clean", "Clean"),
+ ("Clojure", "Clojure"),
+ ("ClojureScript", "ClojureScript"),
+ ("CoffeeScript", "CoffeeScript"),
+ ("Coldfusion CFC", "Coldfusion CFC"),
+ ("Coldfusion HTML", "Coldfusion HTML"),
+ ("Common Lisp", "Common Lisp"),
+ ("Component Pascal", "Component Pascal"),
+ ("Coq", "Coq"),
+ ("Crmsh", "Crmsh"),
+ ("Croc", "Croc"),
+ ("Cryptol", "Cryptol"),
+ ("Crystal", "Crystal"),
+ ("Csound Document", "Csound Document"),
+ ("Csound Orchestra", "Csound Orchestra"),
+ ("Csound Score", "Csound Score"),
+ ("Cypher", "Cypher"),
+ ("Cython", "Cython"),
+ ("D", "D"),
+ ("DASM16", "DASM16"),
+ ("DTD", "DTD"),
+ ("Darcs Patch", "Darcs Patch"),
+ ("Dart", "Dart"),
+ (
+ "Debian Control file",
+ "Debian Control file",
+ ),
+ ("Debian Sourcelist", "Debian Sourcelist"),
+ ("Delphi", "Delphi"),
+ ("Devicetree", "Devicetree"),
+ ("Diff", "Diff"),
+ ("Django/Jinja", "Django/Jinja"),
+ ("Docker", "Docker"),
+ ("Duel", "Duel"),
+ ("Dylan", "Dylan"),
+ ("Dylan session", "Dylan session"),
+ ("DylanLID", "DylanLID"),
+ ("E-mail", "E-mail"),
+ ("EBNF", "EBNF"),
+ ("ECL", "ECL"),
+ ("ERB", "ERB"),
+ ("Earl Grey", "Earl Grey"),
+ ("Easytrieve", "Easytrieve"),
+ ("Eiffel", "Eiffel"),
+ ("Elixir", "Elixir"),
+ (
+ "Elixir iex session",
+ "Elixir iex session",
+ ),
+ ("Elm", "Elm"),
+ ("Elpi", "Elpi"),
+ ("EmacsLisp", "EmacsLisp"),
+ ("Embedded Ragel", "Embedded Ragel"),
+ ("Erlang", "Erlang"),
+ (
+ "Erlang erl session",
+ "Erlang erl session",
+ ),
+ ("Evoque", "Evoque"),
+ ("Ezhil", "Ezhil"),
+ ("F#", "F#"),
+ ("FStar", "FStar"),
+ ("Factor", "Factor"),
+ ("Fancy", "Fancy"),
+ ("Fantom", "Fantom"),
+ ("Felix", "Felix"),
+ ("Fennel", "Fennel"),
+ ("Fish", "Fish"),
+ ("Flatline", "Flatline"),
+ ("FloScript", "FloScript"),
+ ("Forth", "Forth"),
+ ("Fortran", "Fortran"),
+ ("FortranFixed", "FortranFixed"),
+ ("FoxPro", "FoxPro"),
+ ("Freefem", "Freefem"),
+ ("Futhark", "Futhark"),
+ ("GAP", "GAP"),
+ ("GAS", "GAS"),
+ ("GDScript", "GDScript"),
+ ("GLSL", "GLSL"),
+ ("GSQL", "GSQL"),
+ ("Genshi", "Genshi"),
+ ("Genshi Text", "Genshi Text"),
+ ("Gettext Catalog", "Gettext Catalog"),
+ ("Gherkin", "Gherkin"),
+ ("Gnuplot", "Gnuplot"),
+ ("Go", "Go"),
+ ("Golo", "Golo"),
+ ("GoodData-CL", "GoodData-CL"),
+ ("Gosu", "Gosu"),
+ ("Gosu Template", "Gosu Template"),
+ ("Graphviz", "Graphviz"),
+ ("Groff", "Groff"),
+ ("Groovy", "Groovy"),
+ ("HLSL", "HLSL"),
+ ("HSAIL", "HSAIL"),
+ ("HTML", "HTML"),
+ ("HTML + Angular2", "HTML + Angular2"),
+ ("HTML+Cheetah", "HTML+Cheetah"),
+ ("HTML+Django/Jinja", "HTML+Django/Jinja"),
+ ("HTML+Evoque", "HTML+Evoque"),
+ ("HTML+Genshi", "HTML+Genshi"),
+ ("HTML+Handlebars", "HTML+Handlebars"),
+ ("HTML+Lasso", "HTML+Lasso"),
+ ("HTML+Mako", "HTML+Mako"),
+ ("HTML+Myghty", "HTML+Myghty"),
+ ("HTML+PHP", "HTML+PHP"),
+ ("HTML+Smarty", "HTML+Smarty"),
+ ("HTML+Twig", "HTML+Twig"),
+ ("HTML+UL4", "HTML+UL4"),
+ ("HTML+Velocity", "HTML+Velocity"),
+ ("HTTP", "HTTP"),
+ ("Haml", "Haml"),
+ ("Handlebars", "Handlebars"),
+ ("Haskell", "Haskell"),
+ ("Haxe", "Haxe"),
+ ("Hexdump", "Hexdump"),
+ ("Hspec", "Hspec"),
+ ("Hxml", "Hxml"),
+ ("Hy", "Hy"),
+ ("Hybris", "Hybris"),
+ ("IDL", "IDL"),
+ ("INI", "INI"),
+ ("IRC logs", "IRC logs"),
+ ("Icon", "Icon"),
+ ("Idris", "Idris"),
+ ("Igor", "Igor"),
+ ("Inform 6", "Inform 6"),
+ ("Inform 6 template", "Inform 6 template"),
+ ("Inform 7", "Inform 7"),
+ ("Io", "Io"),
+ ("Ioke", "Ioke"),
+ ("Isabelle", "Isabelle"),
+ ("J", "J"),
+ ("JAGS", "JAGS"),
+ ("JCL", "JCL"),
+ ("JSGF", "JSGF"),
+ ("JSLT", "JSLT"),
+ ("JSON", "JSON"),
+ ("JSON-LD", "JSON-LD"),
+ ("JSONBareObject", "JSONBareObject"),
+ ("Jasmin", "Jasmin"),
+ ("Java", "Java"),
+ ("Java Server Page", "Java Server Page"),
+ ("JavaScript", "JavaScript"),
+ (
+ "JavaScript+Cheetah",
+ "JavaScript+Cheetah",
+ ),
+ (
+ "JavaScript+Django/Jinja",
+ "JavaScript+Django/Jinja",
+ ),
+ (
+ "JavaScript+Genshi Text",
+ "JavaScript+Genshi Text",
+ ),
+ ("JavaScript+Lasso", "JavaScript+Lasso"),
+ ("JavaScript+Mako", "JavaScript+Mako"),
+ ("JavaScript+Myghty", "JavaScript+Myghty"),
+ ("JavaScript+PHP", "JavaScript+PHP"),
+ ("JavaScript+Ruby", "JavaScript+Ruby"),
+ ("JavaScript+Smarty", "JavaScript+Smarty"),
+ ("Javascript+UL4", "Javascript+UL4"),
+ (
+ "Javascript+mozpreproc",
+ "Javascript+mozpreproc",
+ ),
+ ("Julia", "Julia"),
+ ("Julia console", "Julia console"),
+ ("Juttle", "Juttle"),
+ ("K", "K"),
+ ("Kal", "Kal"),
+ ("Kconfig", "Kconfig"),
+ ("Kernel log", "Kernel log"),
+ ("Koka", "Koka"),
+ ("Kotlin", "Kotlin"),
+ ("Kuin", "Kuin"),
+ ("LLVM", "LLVM"),
+ ("LLVM-MIR", "LLVM-MIR"),
+ ("LLVM-MIR Body", "LLVM-MIR Body"),
+ ("LSL", "LSL"),
+ ("Lasso", "Lasso"),
+ ("Lean", "Lean"),
+ ("LessCss", "LessCss"),
+ (
+ "Lighttpd configuration file",
+ "Lighttpd configuration file",
+ ),
+ ("LilyPond", "LilyPond"),
+ ("Limbo", "Limbo"),
+ ("Literate Agda", "Literate Agda"),
+ ("Literate Cryptol", "Literate Cryptol"),
+ ("Literate Haskell", "Literate Haskell"),
+ ("Literate Idris", "Literate Idris"),
+ ("LiveScript", "LiveScript"),
+ ("Logos", "Logos"),
+ ("Logtalk", "Logtalk"),
+ ("Lua", "Lua"),
+ ("MAQL", "MAQL"),
+ ("MCFunction", "MCFunction"),
+ ("MIME", "MIME"),
+ ("MOOCode", "MOOCode"),
+ ("MQL", "MQL"),
+ ("MSDOS Session", "MSDOS Session"),
+ ("MXML", "MXML"),
+ ("Macaulay2", "Macaulay2"),
+ ("Makefile", "Makefile"),
+ ("Mako", "Mako"),
+ ("Markdown", "Markdown"),
+ ("Mask", "Mask"),
+ ("Mason", "Mason"),
+ ("Mathematica", "Mathematica"),
+ ("Matlab", "Matlab"),
+ ("Matlab session", "Matlab session"),
+ ("Maxima", "Maxima"),
+ ("Meson", "Meson"),
+ ("MiniD", "MiniD"),
+ ("MiniScript", "MiniScript"),
+ ("Modelica", "Modelica"),
+ ("Modula-2", "Modula-2"),
+ (
+ "MoinMoin/Trac Wiki markup",
+ "MoinMoin/Trac Wiki markup",
+ ),
+ ("Monkey", "Monkey"),
+ ("Monte", "Monte"),
+ ("MoonScript", "MoonScript"),
+ ("Mosel", "Mosel"),
+ ("Mscgen", "Mscgen"),
+ ("MuPAD", "MuPAD"),
+ ("MySQL", "MySQL"),
+ ("Myghty", "Myghty"),
+ ("NASM", "NASM"),
+ ("NCL", "NCL"),
+ ("NSIS", "NSIS"),
+ ("Nemerle", "Nemerle"),
+ ("NestedText", "NestedText"),
+ ("NewLisp", "NewLisp"),
+ ("Newspeak", "Newspeak"),
+ (
+ "Nginx configuration file",
+ "Nginx configuration file",
+ ),
+ ("Nimrod", "Nimrod"),
+ ("Nit", "Nit"),
+ ("Nix", "Nix"),
+ (
+ "Node.js REPL console session",
+ "Node.js REPL console session",
+ ),
+ ("Notmuch", "Notmuch"),
+ ("NuSMV", "NuSMV"),
+ ("NumPy", "NumPy"),
+ ("OCaml", "OCaml"),
+ ("ODIN", "ODIN"),
+ (
+ "OMG Interface Definition Language",
+ "OMG Interface Definition Language",
+ ),
+ ("Objective-C", "Objective-C"),
+ ("Objective-C++", "Objective-C++"),
+ ("Objective-J", "Objective-J"),
+ ("Octave", "Octave"),
+ ("Ooc", "Ooc"),
+ ("Opa", "Opa"),
+ ("OpenEdge ABL", "OpenEdge ABL"),
+ ("PEG", "PEG"),
+ ("PHP", "PHP"),
+ ("PL/pgSQL", "PL/pgSQL"),
+ ("POVRay", "POVRay"),
+ ("PacmanConf", "PacmanConf"),
+ ("Pan", "Pan"),
+ ("ParaSail", "ParaSail"),
+ ("Pawn", "Pawn"),
+ ("Perl", "Perl"),
+ ("Perl6", "Perl6"),
+ ("Pig", "Pig"),
+ ("Pike", "Pike"),
+ ("PkgConfig", "PkgConfig"),
+ ("Pointless", "Pointless"),
+ ("Pony", "Pony"),
+ ("PostScript", "PostScript"),
+ (
+ "PostgreSQL SQL dialect",
+ "PostgreSQL SQL dialect",
+ ),
+ (
+ "PostgreSQL console (psql)",
+ "PostgreSQL console (psql)",
+ ),
+ ("PowerShell", "PowerShell"),
+ (
+ "PowerShell Session",
+ "PowerShell Session",
+ ),
+ ("Praat", "Praat"),
+ ("Procfile", "Procfile"),
+ ("Prolog", "Prolog"),
+ ("PromQL", "PromQL"),
+ ("Properties", "Properties"),
+ ("Protocol Buffer", "Protocol Buffer"),
+ (
+ "PsySH console session for PHP",
+ "PsySH console session for PHP",
+ ),
+ ("Pug", "Pug"),
+ ("Puppet", "Puppet"),
+ ("PyPy Log", "PyPy Log"),
+ ("Python", "Python"),
+ ("Python 2.x", "Python 2.x"),
+ (
+ "Python 2.x Traceback",
+ "Python 2.x Traceback",
+ ),
+ ("Python Traceback", "Python Traceback"),
+ (
+ "Python console session",
+ "Python console session",
+ ),
+ ("Python+UL4", "Python+UL4"),
+ ("Q", "Q"),
+ ("QBasic", "QBasic"),
+ ("QML", "QML"),
+ ("QVTO", "QVTO"),
+ ("Qlik", "Qlik"),
+ ("RConsole", "RConsole"),
+ ("REBOL", "REBOL"),
+ ("RHTML", "RHTML"),
+ ("RPMSpec", "RPMSpec"),
+ ("RQL", "RQL"),
+ ("RSL", "RSL"),
+ ("Racket", "Racket"),
+ ("Ragel", "Ragel"),
+ ("Ragel in C Host", "Ragel in C Host"),
+ ("Ragel in CPP Host", "Ragel in CPP Host"),
+ ("Ragel in D Host", "Ragel in D Host"),
+ (
+ "Ragel in Java Host",
+ "Ragel in Java Host",
+ ),
+ (
+ "Ragel in Objective C Host",
+ "Ragel in Objective C Host",
+ ),
+ (
+ "Ragel in Ruby Host",
+ "Ragel in Ruby Host",
+ ),
+ ("Raw token data", "Raw token data"),
+ ("Rd", "Rd"),
+ ("ReasonML", "ReasonML"),
+ ("Red", "Red"),
+ ("Redcode", "Redcode"),
+ ("Relax-NG Compact", "Relax-NG Compact"),
+ ("ResourceBundle", "ResourceBundle"),
+ ("Rexx", "Rexx"),
+ ("Ride", "Ride"),
+ ("Rita", "Rita"),
+ ("Roboconf Graph", "Roboconf Graph"),
+ (
+ "Roboconf Instances",
+ "Roboconf Instances",
+ ),
+ ("RobotFramework", "RobotFramework"),
+ ("Ruby", "Ruby"),
+ ("Ruby irb session", "Ruby irb session"),
+ ("Rust", "Rust"),
+ ("S", "S"),
+ ("SARL", "SARL"),
+ ("SAS", "SAS"),
+ ("SCSS", "SCSS"),
+ ("SNBT", "SNBT"),
+ ("SPARQL", "SPARQL"),
+ ("SQL", "SQL"),
+ ("SWIG", "SWIG"),
+ ("Sass", "Sass"),
+ ("Savi", "Savi"),
+ ("Scala", "Scala"),
+ (
+ "Scalate Server Page",
+ "Scalate Server Page",
+ ),
+ ("Scaml", "Scaml"),
+ ("Scheme", "Scheme"),
+ ("Scilab", "Scilab"),
+ ("Sed", "Sed"),
+ ("ShExC", "ShExC"),
+ ("Shen", "Shen"),
+ ("Sieve", "Sieve"),
+ ("Silver", "Silver"),
+ ("Singularity", "Singularity"),
+ ("Slash", "Slash"),
+ ("Slim", "Slim"),
+ ("Slurm", "Slurm"),
+ ("Smali", "Smali"),
+ ("Smalltalk", "Smalltalk"),
+ ("SmartGameFormat", "SmartGameFormat"),
+ ("Smarty", "Smarty"),
+ ("Smithy", "Smithy"),
+ ("Snobol", "Snobol"),
+ ("Snowball", "Snowball"),
+ ("Solidity", "Solidity"),
+ ("Sophia", "Sophia"),
+ ("SourcePawn", "SourcePawn"),
+ ("Spice", "Spice"),
+ ("SquidConf", "SquidConf"),
+ ("Srcinfo", "Srcinfo"),
+ ("Stan", "Stan"),
+ ("Standard ML", "Standard ML"),
+ ("Stata", "Stata"),
+ ("SuperCollider", "SuperCollider"),
+ ("Swift", "Swift"),
+ ("TADS 3", "TADS 3"),
+ ("TAP", "TAP"),
+ ("TASM", "TASM"),
+ ("TOML", "TOML"),
+ ("Tal", "Tal"),
+ ("Tcl", "Tcl"),
+ ("Tcsh", "Tcsh"),
+ ("Tcsh Session", "Tcsh Session"),
+ ("TeX", "TeX"),
+ ("Tea", "Tea"),
+ ("Tera Term macro", "Tera Term macro"),
+ ("Termcap", "Termcap"),
+ ("Terminfo", "Terminfo"),
+ ("Terraform", "Terraform"),
+ ("Text only", "Text only"),
+ ("Text output", "Text output"),
+ ("ThingsDB", "ThingsDB"),
+ ("Thrift", "Thrift"),
+ ("Todotxt", "Todotxt"),
+ ("TrafficScript", "TrafficScript"),
+ ("Transact-SQL", "Transact-SQL"),
+ ("Treetop", "Treetop"),
+ ("Turtle", "Turtle"),
+ ("Twig", "Twig"),
+ ("TypeScript", "TypeScript"),
+ ("TypoScript", "TypoScript"),
+ ("TypoScriptCssData", "TypoScriptCssData"),
+ (
+ "TypoScriptHtmlData",
+ "TypoScriptHtmlData",
+ ),
+ (
+ "Typographic Number Theory",
+ "Typographic Number Theory",
+ ),
+ ("UL4", "UL4"),
+ ("USD", "USD"),
+ ("Unicon", "Unicon"),
+ (
+ "Unix/Linux config files",
+ "Unix/Linux config files",
+ ),
+ ("UrbiScript", "UrbiScript"),
+ ("VB.net", "VB.net"),
+ ("VBScript", "VBScript"),
+ ("VCL", "VCL"),
+ ("VCLSnippets", "VCLSnippets"),
+ ("VCTreeStatus", "VCTreeStatus"),
+ ("VGL", "VGL"),
+ ("Vala", "Vala"),
+ ("Velocity", "Velocity"),
+ ("VimL", "VimL"),
+ ("WDiff", "WDiff"),
+ ("Web IDL", "Web IDL"),
+ ("WebAssembly", "WebAssembly"),
+ ("Whiley", "Whiley"),
+ ("X10", "X10"),
+ ("XML", "XML"),
+ ("XML+Cheetah", "XML+Cheetah"),
+ ("XML+Django/Jinja", "XML+Django/Jinja"),
+ ("XML+Evoque", "XML+Evoque"),
+ ("XML+Lasso", "XML+Lasso"),
+ ("XML+Mako", "XML+Mako"),
+ ("XML+Myghty", "XML+Myghty"),
+ ("XML+PHP", "XML+PHP"),
+ ("XML+Ruby", "XML+Ruby"),
+ ("XML+Smarty", "XML+Smarty"),
+ ("XML+UL4", "XML+UL4"),
+ ("XML+Velocity", "XML+Velocity"),
+ ("XQuery", "XQuery"),
+ ("XSLT", "XSLT"),
+ ("XUL+mozpreproc", "XUL+mozpreproc"),
+ ("Xorg", "Xorg"),
+ ("Xtend", "Xtend"),
+ ("YAML", "YAML"),
+ ("YAML+Jinja", "YAML+Jinja"),
+ ("YANG", "YANG"),
+ ("Zeek", "Zeek"),
+ ("Zephir", "Zephir"),
+ ("Zig", "Zig"),
+ ("aspx-cs", "aspx-cs"),
+ ("aspx-vb", "aspx-vb"),
+ ("autohotkey", "autohotkey"),
+ ("c-objdump", "c-objdump"),
+ ("cADL", "cADL"),
+ ("ca65 assembler", "ca65 assembler"),
+ ("cfstatement", "cfstatement"),
+ ("cplint", "cplint"),
+ ("cpp-objdump", "cpp-objdump"),
+ ("d-objdump", "d-objdump"),
+ ("dg", "dg"),
+ ("eC", "eC"),
+ ("execline", "execline"),
+ ("g-code", "g-code"),
+ ("liquid", "liquid"),
+ ("mozhashpreproc", "mozhashpreproc"),
+ ("mozpercentpreproc", "mozpercentpreproc"),
+ ("nesC", "nesC"),
+ ("objdump", "objdump"),
+ ("objdump-nasm", "objdump-nasm"),
+ ("reStructuredText", "reStructuredText"),
+ ("reg", "reg"),
+ ("scdoc", "scdoc"),
+ ("sqlite3con", "sqlite3con"),
+ ("systemverilog", "systemverilog"),
+ ("teal", "teal"),
+ ("tiddler", "tiddler"),
+ ("ucode", "ucode"),
+ ("verilog", "verilog"),
+ ("vhdl", "vhdl"),
+ ("xtlang", "xtlang"),
+ ]
+ ),
+ ),
+ ("source", wagtail.blocks.TextBlock()),
+ ]
+ ),
+ ),
+ ],
+ blank=True,
+ use_json_field=True,
+ ),
+ ),
+ migrations.AlterField(
+ model_name="listingpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("embed", wagtail.embeds.blocks.EmbedBlock()),
+ (
+ "rich_text",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "h1",
+ "h2",
+ "h3",
+ "h4",
+ "h5",
+ "h6",
+ "bold",
+ "italic",
+ "ol",
+ "ul",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ (
+ "lorem",
+ wagtail.blocks.StructBlock(
+ [("paragraphs", wagtail.blocks.IntegerBlock(min_value=1))]
+ ),
+ ),
+ ("html", wagtail.blocks.RawHTMLBlock()),
+ (
+ "image",
+ wagtail.blocks.StructBlock(
+ [
+ ("image", wagtail.images.blocks.ImageChooserBlock()),
+ (
+ "caption",
+ wagtail.blocks.RichTextBlock(
+ features=[
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "code",
+ "strikethrough",
+ ]
+ ),
+ ),
+ ]
+ ),
+ ),
+ (
+ "code",
+ wagtail.blocks.StructBlock(
+ [
+ (
+ "language",
+ wagtail.blocks.ChoiceBlock(
+ choices=[
+ ("ABAP", "ABAP"),
+ ("ABNF", "ABNF"),
+ ("ADL", "ADL"),
+ ("AMDGPU", "AMDGPU"),
+ (
+ "ANSYS parametric design language",
+ "ANSYS parametric design language",
+ ),
+ ("ANTLR", "ANTLR"),
+ (
+ "ANTLR With ActionScript Target",
+ "ANTLR With ActionScript Target",
+ ),
+ (
+ "ANTLR With C# Target",
+ "ANTLR With C# Target",
+ ),
+ (
+ "ANTLR With CPP Target",
+ "ANTLR With CPP Target",
+ ),
+ (
+ "ANTLR With Java Target",
+ "ANTLR With Java Target",
+ ),
+ (
+ "ANTLR With ObjectiveC Target",
+ "ANTLR With ObjectiveC Target",
+ ),
+ (
+ "ANTLR With Perl Target",
+ "ANTLR With Perl Target",
+ ),
+ (
+ "ANTLR With Python Target",
+ "ANTLR With Python Target",
+ ),
+ (
+ "ANTLR With Ruby Target",
+ "ANTLR With Ruby Target",
+ ),
+ ("APL", "APL"),
+ ("ASCII armored", "ASCII armored"),
+ ("ActionScript", "ActionScript"),
+ ("ActionScript 3", "ActionScript 3"),
+ ("Ada", "Ada"),
+ ("Agda", "Agda"),
+ ("Aheui", "Aheui"),
+ ("Alloy", "Alloy"),
+ ("AmbientTalk", "AmbientTalk"),
+ ("Ampl", "Ampl"),
+ ("Angular2", "Angular2"),
+ ("ApacheConf", "ApacheConf"),
+ ("AppleScript", "AppleScript"),
+ ("Arduino", "Arduino"),
+ ("Arrow", "Arrow"),
+ ("AspectJ", "AspectJ"),
+ ("Asymptote", "Asymptote"),
+ ("Augeas", "Augeas"),
+ ("AutoIt", "AutoIt"),
+ ("Awk", "Awk"),
+ ("BARE", "BARE"),
+ ("BBC Basic", "BBC Basic"),
+ ("BBCode", "BBCode"),
+ ("BC", "BC"),
+ ("BNF", "BNF"),
+ ("BST", "BST"),
+ ("BUGS", "BUGS"),
+ ("Base Makefile", "Base Makefile"),
+ ("Bash", "Bash"),
+ ("Bash Session", "Bash Session"),
+ ("Batchfile", "Batchfile"),
+ ("Bdd", "Bdd"),
+ ("Befunge", "Befunge"),
+ ("Berry", "Berry"),
+ ("BibTeX", "BibTeX"),
+ ("BlitzBasic", "BlitzBasic"),
+ ("BlitzMax", "BlitzMax"),
+ ("Boa", "Boa"),
+ ("Boo", "Boo"),
+ ("Boogie", "Boogie"),
+ ("Brainfuck", "Brainfuck"),
+ ("C", "C"),
+ ("C#", "C#"),
+ ("C++", "C++"),
+ ("CAmkES", "CAmkES"),
+ ("CBM BASIC V2", "CBM BASIC V2"),
+ ("CDDL", "CDDL"),
+ ("CFEngine3", "CFEngine3"),
+ ("CMake", "CMake"),
+ ("COBOL", "COBOL"),
+ ("COBOLFree", "COBOLFree"),
+ ("CPSA", "CPSA"),
+ ("CSS", "CSS"),
+ ("CSS+Django/Jinja", "CSS+Django/Jinja"),
+ ("CSS+Genshi Text", "CSS+Genshi Text"),
+ ("CSS+Lasso", "CSS+Lasso"),
+ ("CSS+Mako", "CSS+Mako"),
+ ("CSS+Myghty", "CSS+Myghty"),
+ ("CSS+PHP", "CSS+PHP"),
+ ("CSS+Ruby", "CSS+Ruby"),
+ ("CSS+Smarty", "CSS+Smarty"),
+ ("CSS+UL4", "CSS+UL4"),
+ ("CSS+mozpreproc", "CSS+mozpreproc"),
+ ("CUDA", "CUDA"),
+ ("Cap'n Proto", "Cap'n Proto"),
+ ("CapDL", "CapDL"),
+ ("Ceylon", "Ceylon"),
+ ("ChaiScript", "ChaiScript"),
+ ("Chapel", "Chapel"),
+ ("Charmci", "Charmci"),
+ ("Cheetah", "Cheetah"),
+ ("Cirru", "Cirru"),
+ ("Clay", "Clay"),
+ ("Clean", "Clean"),
+ ("Clojure", "Clojure"),
+ ("ClojureScript", "ClojureScript"),
+ ("CoffeeScript", "CoffeeScript"),
+ ("Coldfusion CFC", "Coldfusion CFC"),
+ ("Coldfusion HTML", "Coldfusion HTML"),
+ ("Common Lisp", "Common Lisp"),
+ ("Component Pascal", "Component Pascal"),
+ ("Coq", "Coq"),
+ ("Crmsh", "Crmsh"),
+ ("Croc", "Croc"),
+ ("Cryptol", "Cryptol"),
+ ("Crystal", "Crystal"),
+ ("Csound Document", "Csound Document"),
+ ("Csound Orchestra", "Csound Orchestra"),
+ ("Csound Score", "Csound Score"),
+ ("Cypher", "Cypher"),
+ ("Cython", "Cython"),
+ ("D", "D"),
+ ("DASM16", "DASM16"),
+ ("DTD", "DTD"),
+ ("Darcs Patch", "Darcs Patch"),
+ ("Dart", "Dart"),
+ (
+ "Debian Control file",
+ "Debian Control file",
+ ),
+ ("Debian Sourcelist", "Debian Sourcelist"),
+ ("Delphi", "Delphi"),
+ ("Devicetree", "Devicetree"),
+ ("Diff", "Diff"),
+ ("Django/Jinja", "Django/Jinja"),
+ ("Docker", "Docker"),
+ ("Duel", "Duel"),
+ ("Dylan", "Dylan"),
+ ("Dylan session", "Dylan session"),
+ ("DylanLID", "DylanLID"),
+ ("E-mail", "E-mail"),
+ ("EBNF", "EBNF"),
+ ("ECL", "ECL"),
+ ("ERB", "ERB"),
+ ("Earl Grey", "Earl Grey"),
+ ("Easytrieve", "Easytrieve"),
+ ("Eiffel", "Eiffel"),
+ ("Elixir", "Elixir"),
+ (
+ "Elixir iex session",
+ "Elixir iex session",
+ ),
+ ("Elm", "Elm"),
+ ("Elpi", "Elpi"),
+ ("EmacsLisp", "EmacsLisp"),
+ ("Embedded Ragel", "Embedded Ragel"),
+ ("Erlang", "Erlang"),
+ (
+ "Erlang erl session",
+ "Erlang erl session",
+ ),
+ ("Evoque", "Evoque"),
+ ("Ezhil", "Ezhil"),
+ ("F#", "F#"),
+ ("FStar", "FStar"),
+ ("Factor", "Factor"),
+ ("Fancy", "Fancy"),
+ ("Fantom", "Fantom"),
+ ("Felix", "Felix"),
+ ("Fennel", "Fennel"),
+ ("Fish", "Fish"),
+ ("Flatline", "Flatline"),
+ ("FloScript", "FloScript"),
+ ("Forth", "Forth"),
+ ("Fortran", "Fortran"),
+ ("FortranFixed", "FortranFixed"),
+ ("FoxPro", "FoxPro"),
+ ("Freefem", "Freefem"),
+ ("Futhark", "Futhark"),
+ ("GAP", "GAP"),
+ ("GAS", "GAS"),
+ ("GDScript", "GDScript"),
+ ("GLSL", "GLSL"),
+ ("GSQL", "GSQL"),
+ ("Genshi", "Genshi"),
+ ("Genshi Text", "Genshi Text"),
+ ("Gettext Catalog", "Gettext Catalog"),
+ ("Gherkin", "Gherkin"),
+ ("Gnuplot", "Gnuplot"),
+ ("Go", "Go"),
+ ("Golo", "Golo"),
+ ("GoodData-CL", "GoodData-CL"),
+ ("Gosu", "Gosu"),
+ ("Gosu Template", "Gosu Template"),
+ ("Graphviz", "Graphviz"),
+ ("Groff", "Groff"),
+ ("Groovy", "Groovy"),
+ ("HLSL", "HLSL"),
+ ("HSAIL", "HSAIL"),
+ ("HTML", "HTML"),
+ ("HTML + Angular2", "HTML + Angular2"),
+ ("HTML+Cheetah", "HTML+Cheetah"),
+ ("HTML+Django/Jinja", "HTML+Django/Jinja"),
+ ("HTML+Evoque", "HTML+Evoque"),
+ ("HTML+Genshi", "HTML+Genshi"),
+ ("HTML+Handlebars", "HTML+Handlebars"),
+ ("HTML+Lasso", "HTML+Lasso"),
+ ("HTML+Mako", "HTML+Mako"),
+ ("HTML+Myghty", "HTML+Myghty"),
+ ("HTML+PHP", "HTML+PHP"),
+ ("HTML+Smarty", "HTML+Smarty"),
+ ("HTML+Twig", "HTML+Twig"),
+ ("HTML+UL4", "HTML+UL4"),
+ ("HTML+Velocity", "HTML+Velocity"),
+ ("HTTP", "HTTP"),
+ ("Haml", "Haml"),
+ ("Handlebars", "Handlebars"),
+ ("Haskell", "Haskell"),
+ ("Haxe", "Haxe"),
+ ("Hexdump", "Hexdump"),
+ ("Hspec", "Hspec"),
+ ("Hxml", "Hxml"),
+ ("Hy", "Hy"),
+ ("Hybris", "Hybris"),
+ ("IDL", "IDL"),
+ ("INI", "INI"),
+ ("IRC logs", "IRC logs"),
+ ("Icon", "Icon"),
+ ("Idris", "Idris"),
+ ("Igor", "Igor"),
+ ("Inform 6", "Inform 6"),
+ ("Inform 6 template", "Inform 6 template"),
+ ("Inform 7", "Inform 7"),
+ ("Io", "Io"),
+ ("Ioke", "Ioke"),
+ ("Isabelle", "Isabelle"),
+ ("J", "J"),
+ ("JAGS", "JAGS"),
+ ("JCL", "JCL"),
+ ("JSGF", "JSGF"),
+ ("JSLT", "JSLT"),
+ ("JSON", "JSON"),
+ ("JSON-LD", "JSON-LD"),
+ ("JSONBareObject", "JSONBareObject"),
+ ("Jasmin", "Jasmin"),
+ ("Java", "Java"),
+ ("Java Server Page", "Java Server Page"),
+ ("JavaScript", "JavaScript"),
+ (
+ "JavaScript+Cheetah",
+ "JavaScript+Cheetah",
+ ),
+ (
+ "JavaScript+Django/Jinja",
+ "JavaScript+Django/Jinja",
+ ),
+ (
+ "JavaScript+Genshi Text",
+ "JavaScript+Genshi Text",
+ ),
+ ("JavaScript+Lasso", "JavaScript+Lasso"),
+ ("JavaScript+Mako", "JavaScript+Mako"),
+ ("JavaScript+Myghty", "JavaScript+Myghty"),
+ ("JavaScript+PHP", "JavaScript+PHP"),
+ ("JavaScript+Ruby", "JavaScript+Ruby"),
+ ("JavaScript+Smarty", "JavaScript+Smarty"),
+ ("Javascript+UL4", "Javascript+UL4"),
+ (
+ "Javascript+mozpreproc",
+ "Javascript+mozpreproc",
+ ),
+ ("Julia", "Julia"),
+ ("Julia console", "Julia console"),
+ ("Juttle", "Juttle"),
+ ("K", "K"),
+ ("Kal", "Kal"),
+ ("Kconfig", "Kconfig"),
+ ("Kernel log", "Kernel log"),
+ ("Koka", "Koka"),
+ ("Kotlin", "Kotlin"),
+ ("Kuin", "Kuin"),
+ ("LLVM", "LLVM"),
+ ("LLVM-MIR", "LLVM-MIR"),
+ ("LLVM-MIR Body", "LLVM-MIR Body"),
+ ("LSL", "LSL"),
+ ("Lasso", "Lasso"),
+ ("Lean", "Lean"),
+ ("LessCss", "LessCss"),
+ (
+ "Lighttpd configuration file",
+ "Lighttpd configuration file",
+ ),
+ ("LilyPond", "LilyPond"),
+ ("Limbo", "Limbo"),
+ ("Literate Agda", "Literate Agda"),
+ ("Literate Cryptol", "Literate Cryptol"),
+ ("Literate Haskell", "Literate Haskell"),
+ ("Literate Idris", "Literate Idris"),
+ ("LiveScript", "LiveScript"),
+ ("Logos", "Logos"),
+ ("Logtalk", "Logtalk"),
+ ("Lua", "Lua"),
+ ("MAQL", "MAQL"),
+ ("MCFunction", "MCFunction"),
+ ("MIME", "MIME"),
+ ("MOOCode", "MOOCode"),
+ ("MQL", "MQL"),
+ ("MSDOS Session", "MSDOS Session"),
+ ("MXML", "MXML"),
+ ("Macaulay2", "Macaulay2"),
+ ("Makefile", "Makefile"),
+ ("Mako", "Mako"),
+ ("Markdown", "Markdown"),
+ ("Mask", "Mask"),
+ ("Mason", "Mason"),
+ ("Mathematica", "Mathematica"),
+ ("Matlab", "Matlab"),
+ ("Matlab session", "Matlab session"),
+ ("Maxima", "Maxima"),
+ ("Meson", "Meson"),
+ ("MiniD", "MiniD"),
+ ("MiniScript", "MiniScript"),
+ ("Modelica", "Modelica"),
+ ("Modula-2", "Modula-2"),
+ (
+ "MoinMoin/Trac Wiki markup",
+ "MoinMoin/Trac Wiki markup",
+ ),
+ ("Monkey", "Monkey"),
+ ("Monte", "Monte"),
+ ("MoonScript", "MoonScript"),
+ ("Mosel", "Mosel"),
+ ("Mscgen", "Mscgen"),
+ ("MuPAD", "MuPAD"),
+ ("MySQL", "MySQL"),
+ ("Myghty", "Myghty"),
+ ("NASM", "NASM"),
+ ("NCL", "NCL"),
+ ("NSIS", "NSIS"),
+ ("Nemerle", "Nemerle"),
+ ("NestedText", "NestedText"),
+ ("NewLisp", "NewLisp"),
+ ("Newspeak", "Newspeak"),
+ (
+ "Nginx configuration file",
+ "Nginx configuration file",
+ ),
+ ("Nimrod", "Nimrod"),
+ ("Nit", "Nit"),
+ ("Nix", "Nix"),
+ (
+ "Node.js REPL console session",
+ "Node.js REPL console session",
+ ),
+ ("Notmuch", "Notmuch"),
+ ("NuSMV", "NuSMV"),
+ ("NumPy", "NumPy"),
+ ("OCaml", "OCaml"),
+ ("ODIN", "ODIN"),
+ (
+ "OMG Interface Definition Language",
+ "OMG Interface Definition Language",
+ ),
+ ("Objective-C", "Objective-C"),
+ ("Objective-C++", "Objective-C++"),
+ ("Objective-J", "Objective-J"),
+ ("Octave", "Octave"),
+ ("Ooc", "Ooc"),
+ ("Opa", "Opa"),
+ ("OpenEdge ABL", "OpenEdge ABL"),
+ ("PEG", "PEG"),
+ ("PHP", "PHP"),
+ ("PL/pgSQL", "PL/pgSQL"),
+ ("POVRay", "POVRay"),
+ ("PacmanConf", "PacmanConf"),
+ ("Pan", "Pan"),
+ ("ParaSail", "ParaSail"),
+ ("Pawn", "Pawn"),
+ ("Perl", "Perl"),
+ ("Perl6", "Perl6"),
+ ("Pig", "Pig"),
+ ("Pike", "Pike"),
+ ("PkgConfig", "PkgConfig"),
+ ("Pointless", "Pointless"),
+ ("Pony", "Pony"),
+ ("PostScript", "PostScript"),
+ (
+ "PostgreSQL SQL dialect",
+ "PostgreSQL SQL dialect",
+ ),
+ (
+ "PostgreSQL console (psql)",
+ "PostgreSQL console (psql)",
+ ),
+ ("PowerShell", "PowerShell"),
+ (
+ "PowerShell Session",
+ "PowerShell Session",
+ ),
+ ("Praat", "Praat"),
+ ("Procfile", "Procfile"),
+ ("Prolog", "Prolog"),
+ ("PromQL", "PromQL"),
+ ("Properties", "Properties"),
+ ("Protocol Buffer", "Protocol Buffer"),
+ (
+ "PsySH console session for PHP",
+ "PsySH console session for PHP",
+ ),
+ ("Pug", "Pug"),
+ ("Puppet", "Puppet"),
+ ("PyPy Log", "PyPy Log"),
+ ("Python", "Python"),
+ ("Python 2.x", "Python 2.x"),
+ (
+ "Python 2.x Traceback",
+ "Python 2.x Traceback",
+ ),
+ ("Python Traceback", "Python Traceback"),
+ (
+ "Python console session",
+ "Python console session",
+ ),
+ ("Python+UL4", "Python+UL4"),
+ ("Q", "Q"),
+ ("QBasic", "QBasic"),
+ ("QML", "QML"),
+ ("QVTO", "QVTO"),
+ ("Qlik", "Qlik"),
+ ("RConsole", "RConsole"),
+ ("REBOL", "REBOL"),
+ ("RHTML", "RHTML"),
+ ("RPMSpec", "RPMSpec"),
+ ("RQL", "RQL"),
+ ("RSL", "RSL"),
+ ("Racket", "Racket"),
+ ("Ragel", "Ragel"),
+ ("Ragel in C Host", "Ragel in C Host"),
+ ("Ragel in CPP Host", "Ragel in CPP Host"),
+ ("Ragel in D Host", "Ragel in D Host"),
+ (
+ "Ragel in Java Host",
+ "Ragel in Java Host",
+ ),
+ (
+ "Ragel in Objective C Host",
+ "Ragel in Objective C Host",
+ ),
+ (
+ "Ragel in Ruby Host",
+ "Ragel in Ruby Host",
+ ),
+ ("Raw token data", "Raw token data"),
+ ("Rd", "Rd"),
+ ("ReasonML", "ReasonML"),
+ ("Red", "Red"),
+ ("Redcode", "Redcode"),
+ ("Relax-NG Compact", "Relax-NG Compact"),
+ ("ResourceBundle", "ResourceBundle"),
+ ("Rexx", "Rexx"),
+ ("Ride", "Ride"),
+ ("Rita", "Rita"),
+ ("Roboconf Graph", "Roboconf Graph"),
+ (
+ "Roboconf Instances",
+ "Roboconf Instances",
+ ),
+ ("RobotFramework", "RobotFramework"),
+ ("Ruby", "Ruby"),
+ ("Ruby irb session", "Ruby irb session"),
+ ("Rust", "Rust"),
+ ("S", "S"),
+ ("SARL", "SARL"),
+ ("SAS", "SAS"),
+ ("SCSS", "SCSS"),
+ ("SNBT", "SNBT"),
+ ("SPARQL", "SPARQL"),
+ ("SQL", "SQL"),
+ ("SWIG", "SWIG"),
+ ("Sass", "Sass"),
+ ("Savi", "Savi"),
+ ("Scala", "Scala"),
+ (
+ "Scalate Server Page",
+ "Scalate Server Page",
+ ),
+ ("Scaml", "Scaml"),
+ ("Scheme", "Scheme"),
+ ("Scilab", "Scilab"),
+ ("Sed", "Sed"),
+ ("ShExC", "ShExC"),
+ ("Shen", "Shen"),
+ ("Sieve", "Sieve"),
+ ("Silver", "Silver"),
+ ("Singularity", "Singularity"),
+ ("Slash", "Slash"),
+ ("Slim", "Slim"),
+ ("Slurm", "Slurm"),
+ ("Smali", "Smali"),
+ ("Smalltalk", "Smalltalk"),
+ ("SmartGameFormat", "SmartGameFormat"),
+ ("Smarty", "Smarty"),
+ ("Smithy", "Smithy"),
+ ("Snobol", "Snobol"),
+ ("Snowball", "Snowball"),
+ ("Solidity", "Solidity"),
+ ("Sophia", "Sophia"),
+ ("SourcePawn", "SourcePawn"),
+ ("Spice", "Spice"),
+ ("SquidConf", "SquidConf"),
+ ("Srcinfo", "Srcinfo"),
+ ("Stan", "Stan"),
+ ("Standard ML", "Standard ML"),
+ ("Stata", "Stata"),
+ ("SuperCollider", "SuperCollider"),
+ ("Swift", "Swift"),
+ ("TADS 3", "TADS 3"),
+ ("TAP", "TAP"),
+ ("TASM", "TASM"),
+ ("TOML", "TOML"),
+ ("Tal", "Tal"),
+ ("Tcl", "Tcl"),
+ ("Tcsh", "Tcsh"),
+ ("Tcsh Session", "Tcsh Session"),
+ ("TeX", "TeX"),
+ ("Tea", "Tea"),
+ ("Tera Term macro", "Tera Term macro"),
+ ("Termcap", "Termcap"),
+ ("Terminfo", "Terminfo"),
+ ("Terraform", "Terraform"),
+ ("Text only", "Text only"),
+ ("Text output", "Text output"),
+ ("ThingsDB", "ThingsDB"),
+ ("Thrift", "Thrift"),
+ ("Todotxt", "Todotxt"),
+ ("TrafficScript", "TrafficScript"),
+ ("Transact-SQL", "Transact-SQL"),
+ ("Treetop", "Treetop"),
+ ("Turtle", "Turtle"),
+ ("Twig", "Twig"),
+ ("TypeScript", "TypeScript"),
+ ("TypoScript", "TypoScript"),
+ ("TypoScriptCssData", "TypoScriptCssData"),
+ (
+ "TypoScriptHtmlData",
+ "TypoScriptHtmlData",
+ ),
+ (
+ "Typographic Number Theory",
+ "Typographic Number Theory",
+ ),
+ ("UL4", "UL4"),
+ ("USD", "USD"),
+ ("Unicon", "Unicon"),
+ (
+ "Unix/Linux config files",
+ "Unix/Linux config files",
+ ),
+ ("UrbiScript", "UrbiScript"),
+ ("VB.net", "VB.net"),
+ ("VBScript", "VBScript"),
+ ("VCL", "VCL"),
+ ("VCLSnippets", "VCLSnippets"),
+ ("VCTreeStatus", "VCTreeStatus"),
+ ("VGL", "VGL"),
+ ("Vala", "Vala"),
+ ("Velocity", "Velocity"),
+ ("VimL", "VimL"),
+ ("WDiff", "WDiff"),
+ ("Web IDL", "Web IDL"),
+ ("WebAssembly", "WebAssembly"),
+ ("Whiley", "Whiley"),
+ ("X10", "X10"),
+ ("XML", "XML"),
+ ("XML+Cheetah", "XML+Cheetah"),
+ ("XML+Django/Jinja", "XML+Django/Jinja"),
+ ("XML+Evoque", "XML+Evoque"),
+ ("XML+Lasso", "XML+Lasso"),
+ ("XML+Mako", "XML+Mako"),
+ ("XML+Myghty", "XML+Myghty"),
+ ("XML+PHP", "XML+PHP"),
+ ("XML+Ruby", "XML+Ruby"),
+ ("XML+Smarty", "XML+Smarty"),
+ ("XML+UL4", "XML+UL4"),
+ ("XML+Velocity", "XML+Velocity"),
+ ("XQuery", "XQuery"),
+ ("XSLT", "XSLT"),
+ ("XUL+mozpreproc", "XUL+mozpreproc"),
+ ("Xorg", "Xorg"),
+ ("Xtend", "Xtend"),
+ ("YAML", "YAML"),
+ ("YAML+Jinja", "YAML+Jinja"),
+ ("YANG", "YANG"),
+ ("Zeek", "Zeek"),
+ ("Zephir", "Zephir"),
+ ("Zig", "Zig"),
+ ("aspx-cs", "aspx-cs"),
+ ("aspx-vb", "aspx-vb"),
+ ("autohotkey", "autohotkey"),
+ ("c-objdump", "c-objdump"),
+ ("cADL", "cADL"),
+ ("ca65 assembler", "ca65 assembler"),
+ ("cfstatement", "cfstatement"),
+ ("cplint", "cplint"),
+ ("cpp-objdump", "cpp-objdump"),
+ ("d-objdump", "d-objdump"),
+ ("dg", "dg"),
+ ("eC", "eC"),
+ ("execline", "execline"),
+ ("g-code", "g-code"),
+ ("liquid", "liquid"),
+ ("mozhashpreproc", "mozhashpreproc"),
+ ("mozpercentpreproc", "mozpercentpreproc"),
+ ("nesC", "nesC"),
+ ("objdump", "objdump"),
+ ("objdump-nasm", "objdump-nasm"),
+ ("reStructuredText", "reStructuredText"),
+ ("reg", "reg"),
+ ("scdoc", "scdoc"),
+ ("sqlite3con", "sqlite3con"),
+ ("systemverilog", "systemverilog"),
+ ("teal", "teal"),
+ ("tiddler", "tiddler"),
+ ("ucode", "ucode"),
+ ("verilog", "verilog"),
+ ("vhdl", "vhdl"),
+ ("xtlang", "xtlang"),
+ ]
+ ),
+ ),
+ ("source", wagtail.blocks.TextBlock()),
+ ]
+ ),
+ ),
+ ],
+ blank=True,
+ use_json_field=True,
+ ),
+ ),
+ ]
diff --git a/website/common/streamfield.py b/website/common/streamfield.py
index e63dce0..b67280e 100644
--- a/website/common/streamfield.py
+++ b/website/common/streamfield.py
@@ -7,6 +7,8 @@ from wagtail import blocks
from wagtail.embeds.blocks import EmbedBlock
from wagtail.images.blocks import ImageChooserBlock
+from website.contrib.code_block.blocks import CodeBlock
+
IGNORE_PLAINTEXT_BLOCKS = (blocks.RawHTMLBlock, EmbedBlock)
RICH_TEXT_FEATURES = [
@@ -68,6 +70,7 @@ def get_blocks() -> list[tuple[str, blocks.BaseBlock]]:
("lorem", LoremBlock()),
("html", blocks.RawHTMLBlock()),
("image", ImageCaptionBlock()),
+ ("code", CodeBlock()),
]
diff --git a/website/contrib/README.md b/website/contrib/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/website/contrib/__init__.py b/website/contrib/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/website/contrib/code_block/README.md b/website/contrib/code_block/README.md
new file mode 100644
index 0000000..254cffc
--- /dev/null
+++ b/website/contrib/code_block/README.md
@@ -0,0 +1,3 @@
+# `code_block`
+
+Heavily based on [`wagtail-pygments`](https://github.com/truongvan/wagtail-pygments), with several changes to the block, as well as a view for exposing the CSS styles.
diff --git a/website/contrib/code_block/__init__.py b/website/contrib/code_block/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/website/contrib/code_block/blocks.py b/website/contrib/code_block/blocks.py
new file mode 100644
index 0000000..0f76a5d
--- /dev/null
+++ b/website/contrib/code_block/blocks.py
@@ -0,0 +1,33 @@
+from typing import Iterator
+
+from django.utils.safestring import mark_safe
+from pygments import highlight
+from pygments.formatters.html import HtmlFormatter
+from pygments.lexers import get_all_lexers, get_lexer_by_name
+from wagtail.blocks import ChoiceBlock, StructBlock, StructValue, TextBlock
+
+
+def get_language_choices() -> Iterator[tuple[str, str]]:
+ for name, _, _, _ in sorted(get_all_lexers()):
+ yield (name, name)
+
+
+class CodeStructValue(StructValue):
+ def code(self) -> str:
+ lexer = get_lexer_by_name(self.get("language"))
+ formatter = HtmlFormatter(
+ linenos=None,
+ )
+ return mark_safe(highlight(self.get("source"), lexer, formatter))
+
+
+class CodeBlock(StructBlock):
+ language = ChoiceBlock(
+ choices=get_language_choices(),
+ )
+ source = TextBlock()
+
+ class Meta:
+ icon = "code"
+ value_class = CodeStructValue
+ template = "contrib/blocks/code.html"
diff --git a/website/contrib/code_block/templates/contrib/blocks/code.html b/website/contrib/code_block/templates/contrib/blocks/code.html
new file mode 100644
index 0000000..97af219
--- /dev/null
+++ b/website/contrib/code_block/templates/contrib/blocks/code.html
@@ -0,0 +1 @@
+{{ value.code }}
diff --git a/website/contrib/code_block/tests.py b/website/contrib/code_block/tests.py
new file mode 100644
index 0000000..2c5edd8
--- /dev/null
+++ b/website/contrib/code_block/tests.py
@@ -0,0 +1,20 @@
+from django.test import TestCase
+from django.urls import reverse
+from pygments.styles import get_all_styles
+
+
+class PygmentsStylesTestCase(TestCase):
+ def test_accessible(self) -> None:
+ for style in get_all_styles():
+ with self.subTest(style=style):
+ response = self.client.get(
+ reverse("static-pygments:styles", args=[style])
+ )
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(response["Cache-Control"], "max-age=3600, public")
+
+ def test_unknown_style(self) -> None:
+ response = self.client.get(
+ reverse("static-pygments:styles", args=["not-a-style"])
+ )
+ self.assertEqual(response.status_code, 404)
diff --git a/website/contrib/code_block/urls.py b/website/contrib/code_block/urls.py
new file mode 100644
index 0000000..8e61e93
--- /dev/null
+++ b/website/contrib/code_block/urls.py
@@ -0,0 +1,7 @@
+from django.urls import path
+
+from .views import pygments_styles
+
+app_name = "code_block"
+
+urlpatterns = [path(".css", pygments_styles, name="styles")]
diff --git a/website/contrib/code_block/views.py b/website/contrib/code_block/views.py
new file mode 100644
index 0000000..cd79ff5
--- /dev/null
+++ b/website/contrib/code_block/views.py
@@ -0,0 +1,16 @@
+from django.http import Http404, HttpRequest, HttpResponse
+from django.views.decorators.cache import cache_control
+from pygments.formatters.html import HtmlFormatter
+from pygments.util import ClassNotFound
+
+
+@cache_control(max_age=3600, public=True)
+def pygments_styles(request: HttpRequest, name: str) -> HttpResponse:
+ try:
+ formatter = HtmlFormatter(style=name)
+ except ClassNotFound:
+ # Raising an exception here bypasses the cache header
+ raise Http404
+ return HttpResponse(
+ formatter.get_style_defs("." + formatter.cssclass), content_type="text/css"
+ )
diff --git a/website/settings.py b/website/settings.py
index 83b9148..b940d91 100644
--- a/website/settings.py
+++ b/website/settings.py
@@ -23,6 +23,7 @@ INSTALLED_APPS = [
"website.home",
"website.search",
"website.blog",
+ "website.contrib.code_block",
"wagtail.contrib.forms",
"wagtail.contrib.redirects",
"wagtail.contrib.modeladmin",
diff --git a/website/urls.py b/website/urls.py
index d4d06bb..7644ea4 100644
--- a/website/urls.py
+++ b/website/urls.py
@@ -13,6 +13,10 @@ urlpatterns = [
path("admin/", include(wagtailadmin_urls)),
path("documents/", include(wagtaildocs_urls)),
path("search/", search_views.search, name="search"),
+ path(
+ "static-pygments/",
+ include("website.contrib.code_block.urls", namespace="static-pygments"),
+ ),
re_path(
r"^images/([^/]*)/(\d*)/([^/]*)/[^/]*$",
ServeView.as_view(action="redirect"),