9ページ目

git/svnの差分抽出スクリプトのサポートスクリプト

Hisateru TanakaさんのGitやSvnなどの差分ファイル抽出決定版に掲載されている差分抽出スクリプトをより簡単に利用するためのシェルスクリプト。


シェルスクリプト


PATH=$PATH:$HOME/Tools

exportdiff() {
    if [ "$2" = "" ]; then
        d="../release"
    else d="$2"
    fi
    rm -rf $d/*
    git diff --name-status $1 | export-diff.py $d
}

使い方


最新コミットと1つ前のコミットの差分が現在より1つ上の階層のreleaseディレクトリに出力される。


exportdiff HEAD~1

サイトメンテナンスに使った.htaccess設定

Wordpressを利用したサイトに不正なコードが挿入されており、他社からの依頼でそのサイトをメンテナンスする際に利用した.htaccess設定。本来であればオフラインにして修復すべき。


admin.htmlにアクセスするとCookieが設定され、通常通りサイトにアクセスが可能。サイトの再審査用にGooglebotもアクセス可能にする。その他のアクセスはメンテナンス中ページに転送する。


.htaccess


RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(phpMyAdmin|admin.html|maintenance.html)
RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]
RewriteCond %{HTTP_COOKIE} !user=admin
RewriteRule ^.*$ /maintenance.html [R=302,L]

レスポンシブWebデザイン採用サイトでのzenback利用サポート

ソーシャルボタンとFacebookのコメント欄により問題が発生する。とりあえず以下のコードで対処可能。


ちなみに、個人的にはzenbackは好きではない。


JavaScript


IE8以下はRWD対応にする気がないので除外。


window.jQuery && (function ($) {
    (function () {
        var zb_pcc_checker;

        if (typeof window.attachEvent === "object" || $(window).width() > 480) {
            return;
        }

        zb_pcc_checker = setInterval(function () {
            var loadChekerId,
                loadCheker;

            loadCheker = function () {
                var $target = $("#zenback-facebook-comment");    // 存在調査のため毎回収集しなおす
                if ($target.length) {
                    $target.find(".fb_iframe_widget").removeAttr("width");
                    $target.find(".fb_iframe_widget > span").css("width", "auto");
                }
            };

            if (window.zb_pcc) {
                clearInterval(zb_pcc_checker);
                loadCheckerId = setInterval(loadCheker, 250);
            }
        }, 200);
    }());
}(jQuery));

CSS


zenbackのスタイル付けを上書きするためにくどいセレクタになっている。


#zenback-widget #zenback-social-button .zenback-module-item{
display:inline-block;
*display:inline;
zoom:1;
}

インデックステンプレートで記事を年別にグループ化

例えばプレスリリースや新着情報のインデックスページで、記事を年別にグループ化(見出しに2012年などを置き、テーブルで2012年の記事をリストアップ)して表示したい場合に利用する。年別アーカイブを作るほど記事数がない場合に利用する。


MTML


<h1 class="hdg-category">プレスリリース</h1>
<$mt:SetVar name="currentYear" value="0"$>
<$mt:SetVar name="tableOpen" value="false"$>

<mt:Entries sort_by="authored_on" sort_order="descend">
<$mt:EntryDate format="%Y" setvar="year"$>
<mt:If name="year" ne="$currentYear">
<mt:If name="tableOpen" eq="true">
</tbody>
</table>
</section>
</mt:If>
<section>
<h2 class="hdg-l2-02"><$mt:Var name="year"$>年</h2>
<table class="tbl-02">
<tbody>
<$mt:SetVar name="currentYear" value="$year"$>
<$mt:SetVar name="tableOpen" value="true"$>
</mt:If>
<tr>
<th class="date"><$mt:EntryDate format="%Y年%m月%d日"$></th>
<td><a href="<$mt:EntryPermalink abs2rel="1">"><$mt:EntryTitle$></a></td>
</tr>
</mt:Entries>
</tbody>
</table>
</section>