A Code input lets your team members write code or mono-spaced plain text in your data files or the front matter of markup files. Code inputs have a code area for your content.
For each input, you can configure the height of the code area, tab size, theme color, gutter visibility, syntax highlighting, and how CloudCannon handles empty values. You can also use the general configuration options available for all inputs.
Code#
The Code input provides an editing interface for code or mono-spaced plain text content.
You can configure a Code input using the type
key with the value code
. Define the type
key under your input key name within _inputs
. For more information, please read our documentation on configuring your inputs.
All inputs are defined under the _inputs
key, regardless of where they are in the configuration cascade.
This Code input is called example_ruby
.
The value of the type
key determines the input type. This is a code
input.
All inputs are defined under the _inputs
key, regardless of where they are in the configuration cascade.
This Code input is called example_ruby
.
The value of the type
key determines the input type. This is a code
input.
Once configured, the Code input will appear in the Data Editor or the Visual or Content Editor sidebar when you add it to a data file or the front matter of a markup file.
Options#
You can configure Code inputs using the options
key under your input key, inside of _inputs
.
Code inputs have the following options available:
This key determines the maximum number of visible lines in the code area, controlling maximum height. When content exceeds this number of lines, the input becomes a scroll area. Defaults to 30
.
This key determines the minimum number of visible lines in the code area, controlling initial height. When content exceeds this number of lines, the input expands line by line until it reaches the value of max_visible_lines
. Defaults to 10
.
This key toggles the line numbers and code-folding controls. Defaults to true
.
This key determines how the input parses your content for syntax highlighting. The value should match the code language. This key has no default.
Value must be one of:
abap
abc
actionscript
ada
alda
apache_conf
apex
applescript
aql
asciidoc
asl
assembly_x86
autohotkey
batchfile
c9search
c_cpp
cirru
clojure
cobol
coffee
coldfusion
crystal
csharp
csound_document
csound_orchestra
csound_score
csp
css
curly
d
dart
diff
django
dockerfile
dot
drools
edifact
eiffel
ejs
elixir
elm
erlang
forth
fortran
fsharp
fsl
ftl
gcode
gherkin
gitignore
glsl
gobstones
golang
graphqlschema
groovy
haml
handlebars
haskell
haskell_cabal
haxe
hjson
html
html_elixir
html_ruby
ini
io
jack
jade
java
javascript
json
json5
jsoniq
jsp
jssm
jsx
julia
kotlin
latex
less
liquid
lisp
livescript
logiql
logtalk
lsl
lua
luapage
lucene
makefile
markdown
mask
matlab
maze
mediawiki
mel
mixal
mushcode
mysql
nginx
nim
nix
nsis
nunjucks
objectivec
ocaml
pascal
perl
perl6
pgsql
php
php_laravel_blade
pig
plain_text
powershell
praat
prisma
prolog
properties
protobuf
puppet
python
qml
r
razor
rdoc
red
redshift
rhtml
rst
ruby
rust
sass
scad
scala
scheme
scss
sh
sjs
slim
smarty
snippets
soy_template
space
sparql
sql
sqlserver
stylus
svg
swift
tcl
terraform
tex
text
textile
toml
tsx
turtle
twig
typescript
vala
vbscript
velocity
verilog
vhdl
visualforce
wollok
xml
xquery
yaml
zeek
Alternatively, you can configure syntax
with the naming convention. syntax
is assumed to be the section preceding the normalized _code_block
suffix (e.g. my_javascript_code_block
for javascript
).
This key defines how many spaces each line is auto indented by, and how many spaces a tab is shown as. Defaults to 2
.
This key determines the color scheme for syntax highlighting. This key is only applicable if syntax
is also defined. Defaults to monokai
.
Value must be one of:
ambiance
chaos
chrome
clouds
clouds_midnight
cobalt
crimson_editor
dawn
dracula
dreamweaver
eclipse
github
gob
gruvbox
idle_fingers
iplastic
katzenmilch
kr_theme
kuroir
merbivore
merbivore_soft
mono_industrial
monokai
nord_dark
pastel_on_dark
solarized_dark
solarized_light
sqlserver
terminal
textmate
tomorrow
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
xcode
This key determines how CloudCannon handles an empty value. This key does not apply to existing empty values.
Value must be one of the following:
string
- an empty value for this input will be stored as""
.null
- an empty value for this input will be stored as a null value (default). This does not apply to TOML files.
Unconfigured Code inputs#
In some cases, CloudCannon can still detect a Code input even if you have not configured it.
CloudCannon will interpret any unconfigured input with the key name code_block
, or that ends in _code_block
as a Code input.
This behavior is convenient if you have simple inputs or do not want to configure inputs. It is also beneficial for new websites on CloudCannon where you have yet to create any CloudCannon-specific configuration.
We recommend configuring your inputs for greater control over their functionality and appearance.
Valid values#
Code inputs can have multiple valid values for empty, single-line, and multiline content. Here are some examples of valid values for the key code
.
Empty/null value:
code:
Any valid string (quoted or unquoted):
code: ""
code: ''
code: any string
code: "any string"
code: 'any string'
Any valid multiline string:
-
code: >
multiline string -
code: >-
multiline string -
code: >+
multiline string -
code: |
multiline string -
code: |-
multiline string -
code: |+
multiline string
Any valid string:
code = ""
code = "any string"
Any valid escaped string:
code = ''
code = 'any string (literal)'
Any valid multiline string:
-
code = """
multiline string""" -
code = """\
multiline string (trimmed)
\""" -
code = '''
literal multiline string'''
Null value:
"code": null
Any valid string:
"code": ""
"code": "any string"
Any valid multiline string:
"code": "multiline \n string"