Hatena::Let self fork Fork

    @@ -1,19 +1,34 @@ /* - * @title Hatena::Let Selffork - * @description supply self-fork on Hatena::Let (useable as userscript) + * @title Hatena::Let self fork + * @description append self-fork icon on Hatena::Let * @include http://let.hatelabo.jp/* * @contributor taizooo http://let.hatelabo.jp/taizooo/let/gYC-ydPttrvedg (Fork of) * @author noromanba http://let.hatelabo.jp/noromanba/let/gYC-x6_02LnWEg - * @license MIT License http://opensource.org/licenses/MIT + * @license MIT License https://opensource.org/licenses/MIT */ - (function () { - var a = document.querySelector("a.edit-link[href*='let.edit']"); - if (!a) return; + // UserScript + // https://gist.github.com/noromanba/f5bc6779c3c3005d6d106da5aa624990 - var b = a.cloneNode(); - b.href = a.href.replace("edit", "fork"); - b.textContent = "Fork"; - // Fx must be needs 2nd args c.f. https://developer.mozilla.org/en/DOM/element.insertBefore - a.parentNode.insertBefore(b, null); + (() => { + 'use strict'; + + const edit = document.body.querySelector('a.edit-link[href*="let.edit"]'); + if (!edit) return; + + // fork URL syntax + // http://let.hatelabo.jp/<USER_ID>/let.fork?code_id=<LET_ID> + const fork = edit.cloneNode(); + fork.pathname = edit.pathname.replace(/\.edit$/, '.fork'); + fork.textContent = 'Fork'; + // TBD change image + + edit.parentNode.appendChild(fork); })(); + + /* for mobile + javascript:(function(){if(a){var b=a.cloneNode();b.pathname=a.pathname.replace(/\.edit$/,'.fork'),b.textContent='Fork',a.parentNode.appendChild(b)}})(); + */ + // minified and transpiled w/ Babili + // https://babeljs.io/repl/ +
  • /*
     * @title Hatena::Let self fork
     * @description append self-fork icon on Hatena::Let
     * @include http://let.hatelabo.jp/*
     * @contributor taizooo     http://let.hatelabo.jp/taizooo/let/gYC-ydPttrvedg (Fork of)
     * @author      noromanba   http://let.hatelabo.jp/noromanba/let/gYC-x6_02LnWEg
     * @license MIT License     https://opensource.org/licenses/MIT
     */
    
    // UserScript
    // https://gist.github.com/noromanba/f5bc6779c3c3005d6d106da5aa624990
    
    (() => {
      'use strict';
    
      const edit = document.body.querySelector('a.edit-link[href*="let.edit"]');
      if (!edit) return;
    
      // fork URL syntax
      // http://let.hatelabo.jp/<USER_ID>/let.fork?code_id=<LET_ID>
      const fork = edit.cloneNode();
      fork.pathname = edit.pathname.replace(/\.edit$/, '.fork');
      fork.textContent = 'Fork';
      // TBD change image
    
      edit.parentNode.appendChild(fork);
    })();
    
    /* for mobile
    javascript:(function(){if(a){var b=a.cloneNode();b.pathname=a.pathname.replace(/\.edit$/,'.fork'),b.textContent='Fork',a.parentNode.appendChild(b)}})();
    */
    // minified and transpiled w/ Babili
    // https://babeljs.io/repl/
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。