GitHub: Rewrite History

  • /*
     * @title GitHub: Rewrite History
     * @description Use on https://github.com/{your_name}, then click days in your contribution calendar.
     * @include https://github.com/*
     * @license CC0
     * @inspired_by http://tricknotes.hateblo.jp/entry/2014/01/15/105741
     */
    
    var $cal = $("#contributions-calendar");
    var palette = $cal.find(".legend li").map(function(){return this.style.backgroundColor});
    var brush = palette[palette.length - 1];
    
    /* Suppress default behaviors */
    d3.selectAll("rect.day").on("mouseover", null).on("click", null);
    
    $cal.on("click", ".legend li", function setBrush(){
        $(this).fadeOut(100).fadeIn(100);
        brush = this.style.backgroundColor;
    });
    
    $cal.find("g").on("click mouseover", ".day", function paint(event){
        var hand;
        if(event.type == "mouseover" && event.which == 0) return;
        if(event.ctrlKey)
            hand = palette[0];
        else if(event.shiftKey)
            hand = palette[2];
        else if(event.altKey)
            hand = palette[4];
        else
            hand = brush;
        $(this).attr("style", "fill: " + hand);
    });
    
    $cal.find(".day").each(function(){$(this).attr("style", "fill: #eee;")});
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/01/17 02:29:47 - 2014-01-17
  2. 2014/01/17 02:09:56 - 2014-01-17