我問自己同樣的問題。我有幾個代碼段的問題,其中的一部分HTML頁面。它看起來非常可怕並且難以維護。
我需要注入CSS,HTML和JS代碼片段。 但也有代碼突出顯示,使代碼更愉快的閱讀和理解。
的示例實現是在elevatezoom-plus demo/examples page
所以我的解決方案/解釋基本上是如下異步的資源注入。突出顯示是通過Prism完成的。片段都應該在/ snippets目錄下。
即:
- /snippets/code-ezp-e03f.html
- /snippets/code-ezp-e03f.css
- /snippets/code-ezp-e03f.js
- 等
HTML(帶ID的)
<script type="text/javascript" src="https://cdn.rawgit.com/igorlino/snippet-helper/1.0.1/src/snippet-helper.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.rawgit.com/igorlino/elevatezoom-plus/1.1.8/demo/css/prism.css"/>
<script type="text/javascript" src="https://cdn.rawgit.com/igorlino/elevatezoom-plus/1.1.8/demo/js/prism.js"></script>
<h6>HTML</h6>
<pre><code id="code-ezp-e03f-html"></code></pre>
<h6>JAVASCRIPT</h6>
<pre><code id="code-ezp-e03f-js"></code></pre>
<h6>CSS</h6>
<pre><code id="code-ezp-e03f-css"></code></pre>
JS框架(片段 - helper.js)
var snippetHelper = {};
(function() {
snippetHelper.loadSnippet = function (filename, ext) {
jQuery.get('snippets/' + filename + '.' + ext, function (data) {
var element = $('#' + filename + '-' + ext);
if (ext === 'html') {
element.addClass('language-markup');
}
if (ext === 'js') {
element.addClass('language-javascript');
}
if (ext === 'css') {
element.addClass('language-css');
}
element.text(data);
if (Prism) {
Prism.highlightAll();
}
});
}
snippetHelper.loadSnippets = function (snippets) {
$.each(snippets, function (idx, snippet) {
$.each(snippet.ext.toLowerCase().split(','), function (idx, ext) {
snippetHelper.loadSnippet(snippet.code, ext)
});
});
}
}());
REGULAR JS(非角變體)
<script type="text/javascript">
var snippets = [
{code: "code-ezp-e01", ext: "html,js"},
{code: "code-ezp-e02", ext: "html,js"},
{code: "code-ezp-e03f", ext: "html,js,css"},
{code: "code-ezp-e12", ext: "html,js"}
];
$(document).ready(function() {
snippetHelper.loadSnippets(snippets);
});
</script>
ANGULAR(爲您的方案)
var app = angular.module('yourapp', ['somedependency']);
app.run(function() {
var snippets = [
{code: "code-ezp-e01", ext: "html,js"},
{code: "code-ezp-e02", ext: "html,js"},
{code: "code-ezp-e03f", ext: "html,js,css"},
{code: "code-ezp-e12", ext: "html,js"}
];
$(document).ready(function() {
snippetHelper.loadSnippets(snippets);
});
});
框架JS我已經把在免費開源項目snippet-helper(免責聲明:我是作者)
(免責聲明2 :我是免費開源項目elevatezoom-plus的維護者)
有許多腳本可用於此,無需手動執行。讓谷歌成爲你的朋友 – charlietfl
這是90分鐘的網絡搜索失敗,導致我問...我錯過了一些東西。另外,這個問題是關於「我怎麼不手動做這個」。 – Dan
搜索'javascript syntax highlighter'或'javascript code editor',具體取決於您想要的用途。不應該有問題找到很多結果 – charlietfl