diff --git a/doc/function/combined_editor.txt b/doc/function/combined_editor.txt
index 6438505b..9339484d 100644
--- a/doc/function/combined_editor.txt
+++ b/doc/function/combined_editor.txt
@@ -2,12 +2,12 @@ Function: combined_editor
--Usage--
> forward_editor(field: some_text_value)
-> combined_editor(field1: some_text_value, field2: some_text_value, ..., separtor1: some_string, ...)
+> combined_editor(field1: some_text_value, field2: some_text_value, ..., separator1: some_string, ...)
Use one text field to edit one or more others.
This function must be used in the @script@ of a [[type:field#text|text field]].
-This field will then contain the combined values of the given fields, separated by the separtors in <sep> tags.
+This field will then contain the combined values of the given fields, separated by the separators in @@ tags.
When the field changes the underlying values are updated and vice versa.
Note: @forward_editor@ and @combined_editor@ are the same function.
@@ -20,10 +20,10 @@ Note: @forward_editor@ and @combined_editor@ are the same function.
| @separator@ [[type:string]] Separator between field 1 and 2
| @separator1@ [[type:string]] Multiple separators
| @separator2@ [[type:string]] Next separator, ''etc.''
-| @prefix@ [[type:string]] ''optional'' Prefix before the combined editor; like a separtor between the start and the first field.
-| @suffix@ [[type:string]] ''optional'' Suffix after the combined editor; like a separtor between the last field and the end.
+| @prefix@ [[type:string]] ''optional'' Prefix before the combined editor; like a separator between the start and the first field.
+| @suffix@ [[type:string]] ''optional'' Suffix after the combined editor; like a separator between the last field and the end.
| @hide when empty@ [[type:boolean]] @false@ Don't include separators if the entire value is empty.
-| @soft before empty@ [[type:boolean]] @false@ Make separators 'soft' when the value folowing it is empty.
+| @soft before empty@ [[type:boolean]] @false@ Make separators 'soft' when the value following it is empty.
Soft separators are hidden by default and shown grayed when the field is selected.
--Examples--
diff --git a/doc/function/expand_keywords.txt b/doc/function/expand_keywords.txt
index b4b8304e..bd48e4eb 100644
--- a/doc/function/expand_keywords.txt
+++ b/doc/function/expand_keywords.txt
@@ -13,10 +13,10 @@ The it is determined whether the reminder text should be shown.
This is either because the user explicitly selected it, or when @default_expand(mode: keyword.mode)@ returns true.
Whether reminder text is shown is stored in a @@ tag around the keyword.
! Tag Reminder text Changed by user
-| @""@ hidden no
-| @""@ shown no
-| @""@ hidden yes
-| @""@ shown yes
+| @@ hidden no
+| @@ shown no
+| @@ hidden yes
+| @@ shown yes
If the reminder text is shown the function @combine@ is called which should combine the reminder text with (in the variable @reminder@) with the keyword and its parameters (in the variable @keyword@).
@@ -40,7 +40,7 @@ is used. This shows reminder text by default based on a [[type:set]] option, and
The @condition@, @default_expand@ and @combine@ functions will be called for each potential keyword match in the input.
! Parameter Type Description
-| @param1@, @param2@, ... [[type:tagged string]]* The parameter values.
+| @param1@, @param2@, ... [[type:tagged string]]s The parameter values.
| @mode@ [[type:string]] The @mode@ of the keyword.
| @used_placeholders@ [[type:boolean]] DOC_MSE_VERSION: since 0.3.7
Is a placeholder used for any of the parameters?
diff --git a/doc/function/format.txt b/doc/function/format.txt
index f5645364..d809309e 100644
--- a/doc/function/format.txt
+++ b/doc/function/format.txt
@@ -1,5 +1,7 @@
Function: format
+DOC_MSE_VERSION: deprecated in 0.3.7, use to_string
+
--Usage--
> format(some_number, format: format_specification)
@@ -18,3 +20,6 @@ Format a number or other string as a string, [[http://www.cplusplus.com/referenc
>
> f := format@(format: "%03d")
> f(1) == "001"
+
+--See also--
+| [[fun:to_string]] Convert any value to a [[type:string]]
diff --git a/doc/function/symbol_variation.txt b/doc/function/symbol_variation.txt
index 58b39c36..c17bf60b 100644
--- a/doc/function/symbol_variation.txt
+++ b/doc/function/symbol_variation.txt
@@ -4,7 +4,7 @@ Function: symbol_variation
> symbol_variation(symbol: symbol_value, variation: name_of_variation)
Render a [[type:symbol variation|variation]] of a symbol.
-The variation name refers to one of the varations declared in the [[type:style]] of the symbol field.
+The variation name refers to one of the variations declared in the [[type:style]] of the symbol field.
> symbol_variation(symbol: symbol_value, border_radius: .., fill_type: .., ...)
diff --git a/doc/type/font.txt b/doc/type/font.txt
index f52bf454..ea3c24f3 100644
--- a/doc/type/font.txt
+++ b/doc/type/font.txt
@@ -19,7 +19,7 @@ A reference to a normal [[type:font]] for drawing text.
| @shadow displacement x@ [[type:double]] @0@ Relative position of the shadow in pixels.
| @shadow displacement y@ [[type:double]] @0@ ^^^
| @shadow blur@ [[type:double]] @0@ How much should the shadow be blurred?
-| @separator color@ [[type:color]] @rgba(0,0,0,128)@ Color for @""@ tags inserted by the [[fun:combined_editor]] function.
+| @separator color@ [[type:color]] @rgba(0,0,0,128)@ Color for @@ tags inserted by the [[fun:combined_editor]] function.
--Example--
>font:
diff --git a/doc/type/style.txt b/doc/type/style.txt
index be22a77d..7e893ee8 100644
--- a/doc/type/style.txt
+++ b/doc/type/style.txt
@@ -103,7 +103,7 @@ The rest of the properties depend on the type of [[type:field]] this style is fo
| ^^^ @line height hard max@ ^^^ ^^^ ^^^
| ^^^ @line height line max@ ^^^ ^^^ ^^^
| ^^^ @paragraph height@ [[type:double]] ''flexible'' The height of paragraphs. If specified, each paragraph is given this much space, and aligned inside that space as specified by @alignment@.
- A paragraph break is any line break that is not soft (i.e. caused by word wrap or a @""@ break).
+ A paragraph break is any line break that is not soft (i.e. caused by word wrap or a @@ break).
| ^^^ @mask@ [[type:image|scriptable image]] ''none'' A mask that indicates where in the box text can be placed.
Text is never put in black areas of the box:

diff --git a/doc/type/tagged_string.txt b/doc/type/tagged_string.txt
index f1b8760d..844f65af 100644
--- a/doc/type/tagged_string.txt
+++ b/doc/type/tagged_string.txt
@@ -12,40 +12,44 @@ This is written as the character with code 1 in files.
--Basic markup--
! Tag Description
-| @""@ The text inside the tag is bold.
-| @""@ The text inside the tag is italic.
-| @""@ The text inside the tag is rendered as symbols, if a [[prop:style:symbol font]] is set for the text box.
-| @""@ The text inside the tag is rendered with the given [[type:color]].
-| @""@ The text inside the tag is rendered with the given font size in points, for example @"text"@ makes the text 12 points. The text is scaled down proportionally when it does not fit in a text box and the @scale down to@ attribute allows it.
-| @""@ Line breaks inside this tag use the [[prop:style:line height line]], and they show a horizontal line.
-| @""@ Line breaks inside this tag use the [[prop:style:soft line height]].
-| @""@ An atomic piece of text. The cursor can never be inside it; it is selected as a whole.
- The program automatically inserts @""@.
-| @""@ The text inside the text is rendered in a monospace font. This is used for syntax highlighting script code.
-| @""@ The text inside the text is highlighted as a keyword in source code.
-| @""@ The text inside the text is highlighted as a string in source code.
+| @@ The text inside the tag is bold.
+| @@ The text inside the tag is italic.
+| @@ The text inside the tag is rendered as symbols, if a [[prop:style:symbol font]] is set for the text box.
+| @@ The text inside the tag is rendered with the given [[type:color]].
+| @@ The text inside the tag is rendered with the given font size in points, for example @"text"@ makes the text 12 points. The text is scaled down proportionally when it does not fit in a text box and the @scale down to@ attribute allows it.
+| @@ Line breaks inside this tag use the [[prop:style:line height line]], and they show a horizontal line.
+| @@ Line breaks inside this tag use the [[prop:style:soft line height]].
+| @@ An atomic piece of text. The cursor can never be inside it; it is selected as a whole.
+ The program automatically inserts @@.
+| @@ The text inside the tag is rendered in a monospace font. This is used for syntax highlighting script code.
+| @@ The text inside the tag is highlighted as a keyword in source code.
+| @@ The text inside the tag is highlighted as a string in source code.
--Other tags--
! Tag Description
-| @""@ Indicates that the text inside it is a keyword. This tag is automatically inserted by
+| @@ Indicates that the text inside it is a keyword. This tag is automatically inserted by
The [[fun:expand_keywords]] function.
There are four versions, indicating whether or not reminder text is shown:
- * @""@, Reminder text hidden, by default
- * @""@, Reminder text shown, by default
- * @""@, Reminder hidden manually
- * @""@, Reminder shown manually
-| @""@ A separator between fields. This tag is automatically inserted by the [[fun:combined_editor]] function.
+ * @@, Reminder text hidden, by default
+ * @@, Reminder text shown, by default
+ * @@, Reminder hidden manually
+ * @@, Reminder shown manually
+| @@ A separator between fields. This tag is automatically inserted by the [[fun:combined_editor]] function.
Inserting this tag manually will confuse that function!
This tag can never be selected, and its contents can not be edited.
-| @""@ At the beginning of a string, indicates a part that can not be selected. This tag is automatically inserted by the [[fun:combined_editor]] function.
-| @""@ At the end of a string, indicates a part that can not be selected. This tag is automatically inserted by the [[fun:combined_editor]] function.
-| @""@ Like @""@, only hidden. This is inserted by [[fun:combined_editor]]
-| @""@ Text who's width is ignored for alignment, similar to @""@, but not a separator.
-| @""@ Indicate that the text inside the tag should be selected from a [[type:word list]].
- The ? must be the name of a word list in the game.
+| @@ At the beginning of a string, indicates a part that can not be selected. This tag is automatically inserted by the [[fun:combined_editor]] function.
+| @@ At the end of a string, indicates a part that can not be selected. This tag is automatically inserted by the [[fun:combined_editor]] function.
+| @@ Like @@, only hidden. This is inserted by [[fun:combined_editor]]
+| @@ Text who's width is ignored for alignment, similar to @@, but not a separator.
+| @@ Indicate that the text inside the tag should be selected from a [[type:word list]].
+ The ??? must be the name of a word list in the game.
+| @@ The text inside the tag is an error, and is shown with a red wavy underline.
+| @@ A spelling error, marked by the [[fun::check_spelling]] function.
+ The ??? part indicates the language used for spelling checking.
| any other tag Other tags are ignored.
+
--Related functions--
The following script functions deal with tags:
| [[fun:tag_contents]] Change the contents of a specific tag.
diff --git a/tools/website/drupal/mse-drupal-modules/highlight.inc b/tools/website/drupal/mse-drupal-modules/highlight.inc
index e07b8b96..4c60362a 100644
--- a/tools/website/drupal/mse-drupal-modules/highlight.inc
+++ b/tools/website/drupal/mse-drupal-modules/highlight.inc
@@ -98,6 +98,8 @@ $built_in_functions = array(
function syntax_highlight($code) {
if (preg_match("@^(\s*#.*\n)*\s*[-a-zA-Z0-9 _/,]+:([^=]|$)@", $code)) {
return highlight_reader($code);
+ } else if (preg_match("@^<[^&>]*?(>|>)$@", $code)) {
+ return "$code";
} else {
return highlight_script($code);
}