day of Haiku

  • /*
     * @title day of Haiku
     * @description insert day to timestamp @ Haiku
     * @include http://h.hatena.ne.jp/*
     * @license MIT http://opensource.org/licenses/MIT
     * @javascript_url
     */
    (() => {
        function insert_day(target) {
            const w = "日月火水木金土";
            const re = new RegExp(String.raw`^(\d{4}/\d{2}/\d{2})\s(\d{1,2}:\d{2}:\d{2})$`);
            Array.from(target.querySelectorAll(".list-body > .info time[datetime]")).forEach(e => {
                let t = new Date(e.getAttribute("datetime"));
                e.innerHTML = e.innerHTML.replace(re, `$1(${w.charAt(t.getDay())}) $2`);
            });
        }
    
        insert_day(document.body);
    
        // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
        new MutationObserver(records => {
            records.forEach(record => {
                if (record.addedNodes) {
                    // record.addedNodes.length maybe 1
                    Array.from(record.addedNodes).forEach(entry_list => {
                        insert_day(entry_list);
                    });
                }
            });
        }).observe(document.querySelector(".tl-entry-list"), {childList: true});
    
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2017/05/10 10:32:03 - 2017-05-10
  2. 2017/05/10 10:29:37 - 2017-05-10
  3. 2017/05/10 10:21:38 - 2017-05-10