From bceb1ff5536fe05ff56ff9e11b4f85120a68434f Mon Sep 17 00:00:00 2001 From: Oscar Otero Date: Sat, 13 Sep 2025 18:40:14 +0200 Subject: [PATCH] added Vento --- src/languages/vento.js | 37 ++++++++++++++++++++++++++++ test/markup/vento/default.expect.txt | 14 +++++++++++ test/markup/vento/default.txt | 13 ++++++++++ 3 files changed, 64 insertions(+) create mode 100644 src/languages/vento.js create mode 100644 test/markup/vento/default.expect.txt create mode 100644 test/markup/vento/default.txt diff --git a/src/languages/vento.js b/src/languages/vento.js new file mode 100644 index 0000000000..d74214d69d --- /dev/null +++ b/src/languages/vento.js @@ -0,0 +1,37 @@ +/* +Language: Vento +Requires: xml.js, yaml.js, javascript.js +Author: Óscar Otero +Description: Syntax for Vento templates with front matter. +Website: https://vento.js.org +Category: template +*/ + +/** @type LanguageFn */ +export default function(hljs) { + return { + name: 'Vento', + aliases: ['vto'], + subLanguage: 'xml', + keywords: { + keyword: "for of if else include set layout echo function async function import from export await continue break slot" + }, + contains: [ + hljs.COMMENT("{{#", "#}}"), + { + begin: "{{[-]?", + end: "[-]?}}", + subLanguage: "javascript", + excludeBegin: true, + excludeEnd: true, + }, + { + begin: "^---\n", + end: "\n---\n", + subLanguage: "yaml", + excludeBegin: true, + excludeEnd: true, + }, + ] + }; +} diff --git a/test/markup/vento/default.expect.txt b/test/markup/vento/default.expect.txt new file mode 100644 index 0000000000..6415d94616 --- /dev/null +++ b/test/markup/vento/default.expect.txt @@ -0,0 +1,14 @@ +--- +title: "This is a title" +--- +{{# this is a comment #}} + +{{ for post of posts }} + <p>{{ post.title |> toUpperCase }}</p> +{{ /for }} + +{{- set value = things.select("available=true") -}} +{{ set x = 1 + 2 }} +{{ set value = `Thing ${title} ${x}` }} +{{ value }} + \ No newline at end of file diff --git a/test/markup/vento/default.txt b/test/markup/vento/default.txt new file mode 100644 index 0000000000..3fdb43161e --- /dev/null +++ b/test/markup/vento/default.txt @@ -0,0 +1,13 @@ +--- +title: "This is a title" +--- +{{# this is a comment #}} + +{{ for post of posts }} +

{{ post.title |> toUpperCase }}

+{{ /for }} + +{{- set value = things.select("available=true") -}} +{{ set x = 1 + 2 }} +{{ set value = `Thing ${title} ${x}` }} +{{ value }}