日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年5月16日金曜日

Blogger:投稿一覧を作成する-ラベルを付与する

イントロダクション

前回は番号付きリストにて記事一覧を表示しました。

今回は前回のコードを少し修正し、ラベルを付与して記事一覧を表示するように修正します。


今回作成する投稿一覧

ラベルを付与して記事一覧を表示するようにします。

コード

以下のコードを記事一覧を表示したい部分に埋め込みます。

一番最後の行の、

<script type="text/javascript" src="http://upa-pc.blogspot.com/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&redirect=false"></script>

の src のドメイン部に各自の Blogger のアドレスを入れます。


<script type="text/javascript">
<!--
function loadtoc(data) {

    document.writeln("<ol>");
    for (var i = 0; i < data.feed.entry.length; i++) {
        
        // リンク先の探索
        var href = "javascript:void(0);";
        for (var j = 0; j < data.feed.entry[i].link.length; j++) {
            if (data.feed.entry[i].link[j].title == data.feed.entry[i].title.$t) {
                href = data.feed.entry[i].link[j].href;
            }
        }

        // ラベル一覧作成
        var labels = "";
        if (data.feed.entry[i].category) {
            for (var j = 0; j < data.feed.entry[i].category.length; j++) {
                labels += "<span>" + data.feed.entry[i].category[j].term + "<span>";
                if (j < data.feed.entry[i].category.length - 1) {
                    labels += ",";
                }
            }
        }

        document.writeln("<li><a href=\"" + href + "\" title=\"" +
            fixForAttributeTitle(escapeForAttributeText(data.feed.entry[i].summary.$t)) + "\">" +
            escapeHTML(data.feed.entry[i].title.$t) + "</a><br />ラベル:" + labels + "<br /><br /></li>");

    }
    document.writeln("</ol>");

    // テキストをエスケープ処理する
    function escapeHTML(html) {

        var div = document.createElement("div");
        if (div.innerText !== void 0) div.innerText = html;          // innerText が定義されていれば innerText へ設定
        else div.textContent = html;                                 // Firefox のように innerText がないブラウザ向け

        return div.innerHTML;
    }

    // 属性用にテキストをエスケープ処理する
    function escapeForAttributeText(html) {

        // " をエスケープ
        html = html.replace(/\&/g, "&amp;");

        html = html.replace(/\</g, "&lt;");
        html = html.replace(/\>/g, "&gt;");
        html = html.replace(/\"/g, "&quot;");
        html = html.replace(/\'/g, "&apos;");
        return html;
    }

    // 属性の title 用にテキストを整理する
    function fixForAttributeTitle(text) {

        text = text.replace(/(\r\n){2,}/g, "$1$1");
        text = text.replace(/(\r){2,}/g, "$1$1");
        text = text.replace(/(\n){2,}/g, "$1$1");

        return text;
    }
}

//-->
</script>
<script type="text/javascript" src="http://upa-pc.blogspot.com/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&redirect=false"></script>


記事一覧を<ol>タグで囲み、一つの記事を<li>タグで囲んでいます。


結果

上記のコードを埋め込み、実行すると次のような結果が得られます。

  1. JavaScript:特定の要素を配下の要素も含めて有効・無効(disabled)を制御する
    ラベル:JavaScript
  2. Closure Compiler:コンパイルしたらJavaScriptの実行時にエラーが出るようになった。コードの順番を変えたら正常に動作した
    ラベル:Closure Compiler,JavaScript
  3. 2台のパソコンを同じ机で使う場合、USB切替機を使うと圧倒的に便利!!
    ラベル:USB切替機,パソコン周辺機器
  4. リモートデスクトップのクライアントの画面がマルチディスプレイだと作業が捗る!
    ラベル:マルチディスプレイ,リモートデスクトップ

~省略~

まとめ

上記コードにて、ラベルを付与した記事一覧を作成できました。

次回は上記コードに少し手を加えて、ラベルへリンクを設定してみます。





関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...