ロゼッタコードを調べやすくするTampermonkeyScript


概要

ロゼッタコードにはいろんなプログラミング言語によるコードの書き方がストックされていますが、
任意の言語のみを調べたいときにはいささか不便なサイト構造となっています。

たとえば、Javaの日付時刻フォーマットを調べたいとき、
* http://rosettacode.org/wiki/Category:Java でJavaカテゴリに移動
* トピック一覧から Date_Format を選択し、http://rosettacode.org/wiki/Date_format へ移動
* Date_Formatページにある言語一覧リンクの中からJavaを選択し、見たい場所(http://rosettacode.org/wiki/Date_format#Java)へジャンプ

といった手順となり、目的のトピックページへ飛んでから、さらに目的の言語の場所にたどり着かないと、見たいコードが見られないということになり、ちょっとしたストレスを感じています(私が)。

以下のコードは、言語カテゴリーページを表示した時に、リンク先に言語名をハッシュとして追加してくれるTampermonkyスクリプト(Chrome拡張)です。

TampermonkeyScriptのインストールはこちらのChrome-Webstoreからどうぞ

// ==UserScript==
// @name         ロゼッタさん
// @namespace    https://github.com/6in
// @version      0.1
// @description  ロゼッタコードの任意の言語だけを表示できるように、アンカーを編集する
// @author       https://github.com/6in
// @match        http://rosettacode.org/wiki/Category:*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // Your code here...

    setTimeout( function() {
        // URLからどの言語カテゴリかを取得
        var url = window.location.href;
        var lang = url.split(':')[2];
        // アンカー一覧を取得
        var ancher = document.querySelectorAll('div.mw-category-group ul li a');
        // アンカーの末尾に言語名を付与
        [].forEach.call(ancher, function (a) {
            a.href = a.href + '#'+lang;
            // 別ウィンドウに表示
            a.target='LangFrame-' + lang;
        });
    },0);
})();

使い方

  • Tampermonkeyスクリプトを適用します。
  • http://rosettacode.org/にアクセスします。
  • 上部にある検索ウィンドウで、検索したい言語(例: nim)を入力します。
  • 検索結果として、カテゴリページ http://rosettacode.org/wiki/Category:Nim が表示されます。
  • 上記のTamperMonkeyスクリプトが適用され、各トピックへのリンク先のURLに言語ハッシュが追加されます。
  • 任意のトピックをクリックすると、別タブ(ウィンドウ)にそのトピックの指定言語版が表示されます。
  • トピック用表示タブ(ウィンドウ)がフレーム名が固定となるので、トピックページを別ウィンドウにしておくと、色々と捗ります。

まとめ?

簡単なTampermonkeyスクリプトでしたが、言語がブレイクしそうな時にRosettaCodeで「アノ言語でアレってどう書くの?」っていうのが、調べやすくなった気がします(当社比200%)