Skip to content

Commit

Permalink
Added support for etlua (#2050)
Browse files Browse the repository at this point in the history
This adds support for etlua (Embedded Lua templating).
  • Loading branch information
RunDevelopment committed Oct 16, 2019
1 parent aaaa29a commit 0b771c9
Show file tree
Hide file tree
Showing 10 changed files with 90 additions and 3 deletions.
2 changes: 1 addition & 1 deletion components.js

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,11 @@
"title": "Elm",
"owner": "zwilias"
},
"etlua": {
"title": "Embedded Lua templating",
"require": ["lua", "markup-templating"],
"owner": "RunDevelopment"
},
"erb": {
"title": "ERB",
"require": ["ruby", "markup-templating"],
Expand Down
23 changes: 23 additions & 0 deletions components/prism-etlua.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
(function (Prism) {

Prism.languages.etlua = {
'delimiter': {
pattern: /^<%[-=]?|-?%>$/,
alias: 'punctuation'
},
'language-lua': {
pattern: /[\s\S]+/,
inside: Prism.languages.lua
}
};

Prism.hooks.add('before-tokenize', function (env) {
var pattern = /<%[\s\S]+?%>/g;
Prism.languages['markup-templating'].buildPlaceholders(env, 'etlua', pattern);
});

Prism.hooks.add('after-tokenize', function (env) {
Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua');
});

}(Prism));
1 change: 1 addition & 0 deletions components/prism-etlua.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions examples/prism-etlua.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<h2>Full example</h2>
<pre><code>&lt;div class="foo">
&lt;% if true then %>
Hello &lt;%= name %>,
Here are your items:
&lt;% for i, item in pairs(items) do %>
* &lt;%= item -%>
&lt;% --[[ comment block ]] %>
&lt;% end %>
&lt;%- "&lt;b>this is not escaped&lt;/b>" %>
&lt;% end %>
&lt;/div></code></pre>
4 changes: 4 additions & 0 deletions plugins/autoloader/prism-autoloader.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@
"javascript",
"markup-templating"
],
"etlua": [
"lua",
"markup-templating"
],
"erb": [
"ruby",
"markup-templating"
Expand Down
2 changes: 1 addition & 1 deletion plugins/autoloader/prism-autoloader.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions plugins/show-language/prism-show-language.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"dockerfile": "Docker",
"ebnf": "Extended Backus–Naur form",
"ejs": "EJS",
"etlua": "Embedded Lua templating",
"erb": "ERB",
"fsharp": "F#",
"firestore-security-rules": "Firestore security rules",
Expand Down
2 changes: 1 addition & 1 deletion plugins/show-language/prism-show-language.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 41 additions & 0 deletions tests/languages/etlua/delimiter_feature.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<% lua_code %>
<%= lua_expression %>
<%- lua_expression %>
<%= 'hello' -%>

----------------------------------------------------

[
["etlua", [
["delimiter", "<%"],
["language-lua", [
" lua_code "
]],
["delimiter", "%>"]
]],
["etlua", [
["delimiter", "<%="],
["language-lua", [
" lua_expression "
]],
["delimiter", "%>"]
]],
["etlua", [
["delimiter", "<%-"],
["language-lua", [
" lua_expression "
]],
["delimiter", "%>"]
]],
["etlua", [
["delimiter", "<%="],
["language-lua", [
["string", "'hello'"]
]],
["delimiter", "-%>"]
]]
]

----------------------------------------------------

Checks for different delimiters.

0 comments on commit 0b771c9

Please sign in to comment.