是否可以在Node-RED上的模板节点上添加其他编程语言的语法高亮?
Is it possible to add the syntax highlight of other programming languages on the template node on Node-RED?
使用 Node-RED 上的 function
节点,我们可以创建一个函数来执行存储在 template
节点上的任何其他编程语言的一段代码。我创建了一个节点,它基本上编译并执行存储在 template
节点上的 c++
代码,只要它有变化。它的工作原理如下:
但是,template
节点不支持 C++ 的语法。使用 python 一个很好,而我对代码没有任何评论,而 Javascript 一个用于评论,但它指示所有行都有错误,因为它需要 Javascript 代码。除了 template
节点上的默认语言之外,是否可以包括其他编程语言的 语法高亮显示 ?
Node-RED 使用的编辑器是 Ace 组件。虽然这可以支持许多不同的语言,但包含的列表是有限的,以帮助将 Node-RED 包大小保持在合理的大小。
我知道人们过去曾在 Node-RED Slack 团队或论坛(两者都从 Node-RED 主页链接)上询问过对不同语言的支持。可能值得搜索论坛或在 Slack 上询问。
基于官方 Node-RED 论坛上的 's answer and this issue,我找到了如何为 template
节点包含不同类型的语法高亮显示。基本上,我们需要做四件事:
- 在系统中找到创建模板节点的 HTML 文件的位置。在 Linux 上,它位于
/usr/local/lib/node_modules/node-red/node_modules/@node-red/nodes/core/function/80-template.html
在文件 80-template.html
中,找到以下代码块并添加您需要的额外语法选项(在本例中我添加了 C++
和 Java
):
<select id="node-input-format" style="width:110px; font-size: 10px !important; height: 24px; padding:0;">
<option value="handlebars">mustache</option>
<option value="html">HTML</option>
<option value="json">JSON</option>
<option value="javascript">Javascript</option>
<option value="css">CSS</option>
<option value="markdown">Markdown</option>
<option value="python">Python</option>
<option value="sql">SQL</option>
<option value="yaml">YAML</option>
<option value="c_cpp">C++</option>
<option value="java">Java</option>
<option value="text" data-i18n="template.label.none"></option>
</select>
在 Ace 编辑器的 this GitHub page 上,下载 mode-desiredLanguage
文件并将其复制到 /usr/local/lib/node_modules/node-red/node_modules/@node-red/editor-client/public/vendor/ace
。就我而言,我已经下载了 mode-c_cpp.js
和 mode-java.js
...
重新启动 运行 Node-RED 服务并在浏览器上重新加载其页面。
最终结果
使用 Node-RED 上的 function
节点,我们可以创建一个函数来执行存储在 template
节点上的任何其他编程语言的一段代码。我创建了一个节点,它基本上编译并执行存储在 template
节点上的 c++
代码,只要它有变化。它的工作原理如下:
但是,template
节点不支持 C++ 的语法。使用 python 一个很好,而我对代码没有任何评论,而 Javascript 一个用于评论,但它指示所有行都有错误,因为它需要 Javascript 代码。除了 template
节点上的默认语言之外,是否可以包括其他编程语言的 语法高亮显示 ?
Node-RED 使用的编辑器是 Ace 组件。虽然这可以支持许多不同的语言,但包含的列表是有限的,以帮助将 Node-RED 包大小保持在合理的大小。
我知道人们过去曾在 Node-RED Slack 团队或论坛(两者都从 Node-RED 主页链接)上询问过对不同语言的支持。可能值得搜索论坛或在 Slack 上询问。
基于官方 Node-RED 论坛上的 template
节点包含不同类型的语法高亮显示。基本上,我们需要做四件事:
- 在系统中找到创建模板节点的 HTML 文件的位置。在 Linux 上,它位于
/usr/local/lib/node_modules/node-red/node_modules/@node-red/nodes/core/function/80-template.html
在文件
80-template.html
中,找到以下代码块并添加您需要的额外语法选项(在本例中我添加了C++
和Java
):<select id="node-input-format" style="width:110px; font-size: 10px !important; height: 24px; padding:0;"> <option value="handlebars">mustache</option> <option value="html">HTML</option> <option value="json">JSON</option> <option value="javascript">Javascript</option> <option value="css">CSS</option> <option value="markdown">Markdown</option> <option value="python">Python</option> <option value="sql">SQL</option> <option value="yaml">YAML</option> <option value="c_cpp">C++</option> <option value="java">Java</option> <option value="text" data-i18n="template.label.none"></option> </select>
在 Ace 编辑器的 this GitHub page 上,下载
mode-desiredLanguage
文件并将其复制到/usr/local/lib/node_modules/node-red/node_modules/@node-red/editor-client/public/vendor/ace
。就我而言,我已经下载了mode-c_cpp.js
和mode-java.js
...重新启动 运行 Node-RED 服务并在浏览器上重新加载其页面。
最终结果