[Tool] CSSをWebページに表示する際に色付けするJavascript
今日は、Webページにソースコードを表示するときに簡単に色付けしたい。
そう思い立ち、さっそくCSSを表示する際に色付けするJavaScriptを作成しました。
あとは、ソースコードの色づけ方法を自分でも実装してみたかったということも。
jQueryPluginとすればとか、もっと奇麗な実装にすればという色々な意見を頂きましたが、今回はこんな感じ♪(´ε` )
http://www.yoheim.net/labo/html5/jsSample/attachColorToCSS.html
使い方
1、サイトで使っているcolorizeCSS.jsというJavaScriptファイルをダウンロードする。そして使いたいサイトにて読み込む。
2、利用したいサイトのonloadイベント時に、colorizeCSS関数を呼ぶ。引数には色付けしたいCSSを記載したタグのクラス名を指定する。
<script type="text/javascript" src="../../javascript/colorizeCSS.js"></script> <script> window.addEventListener("load", function(){colorizeCSS("source_css");}, false); </script> <pre class="source_css"> .jp {font-style : italic; color : #555555; font-size : small;} </pre>
気をつけること
1、色付け対象のCSSにコメントがある場合には上手く動作しません。
2、ソースの色づけを変えたい場合には自分でソースで色指定しているところを編集する。
3、colorizeCSSというグローバル変数を定義します。衝突したらすみません。ご自由に変数名を変えてください。
ソースコード
スースコードも記載しておきます(・∀・)
function () {
var red = "#880000";
var green = "#006600";
var blue = "#000088";
var black = "#000000";
var elms = document.getElementsByClassName("source_css");
for (var i = 0; i < elms.length; i++) {
var css = elms[i].innerHTML;
elms[i].innerHTML = "";
while (true) {
// attach color to SELECTOR.
var index = css.search("{");
if (index == -1) {break;}
var selector = css.substring(0, index);
elms[i].appendChild(createSpan(selector, green));
elms[i].appendChild(createSpan("{"), black);
css = css.substring(++index, css.length);
// attach color to PROPERTIES and VALUES.
index = css.search("}");
if (index == -1) {break;}
var contents = css.substring(0, index).split(";");
for (var j = 0; j < (contents.length - 1); j++) {
var strs = contents[j].split(":");
if (strs.length == 2) {
elms[i].appendChild(createSpan(strs[0], red));
elms[i].appendChild(createSpan(":", black));
elms[i].appendChild(createSpan(strs[1], blue));
elms[i].appendChild(createSpan(";", black));
} else {
elms[i].appendChild(createSpan(contents[j], black));
elms[i].appendChild(createSpan(";", black));
}
}
elms[i].appendChild(createSpan(contents[contents.length-1], "#000000"));
elms[i].appendChild(createSpan("}", "#000000"));
css = css.substring(++index, css.length);
} /*end while (true)*/
}
}
var createSpan = function (str, color) {
var span = document.createElement("span");
span.innerHTML = str;
span.style.color = color;
return span;
}
最後に
個人的に使いたいから作ったもの。もっと使いやすいように出来るような気もするけど、今はこのままにしよっと。
あと、エディタの多くはソースコードの色付けに対応しているけど、そーゆうのを実装してみたかった。
今回のは超簡単な正規表現ですが、もっともっと正規表現を自由に扱えるようになると、色付けが自由に出来るんだろうなぁ。
最後に、HTML5Learnersも宜しくお願いします。






