Greasy Fork is available in English.

AtCoder Better Highlighter

highlight.jsを使用してAtCoderの提出コードの表示を置き換えるUserScriptです.

2020/10/11時点のページです。最新版はこちら。

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
作者
shouth
評価
0 0 0
バージョン
0.5.1
作成日
2020/10/10
更新日
2020/10/11
ライセンス
不明
対象サイト

AtCoder Better Highlighter

AtCoderの提出結果ページのコードをhighlight.jsでハイライトしたものに置き換えるスクリプトです.

デフォルトで置き換わる言語

  • Bash
  • C
  • C++
  • C#
  • Go
  • Java
  • JavaScript
  • Kotlin
  • Objective-C
  • PHP
  • Perl
  • Python
  • Ruby
  • Rust
  • Swift
  • TypeScript

上記以外の言語で置き換えるには

まずはスクリプトの編集画面を開きましょう.方法は2通りあります.

方法1 依存ライブラリを追加する

https://cdnjs.com/libraries/highlight.js のリストから,置き換えたい言語のスクリプトのURL(https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.1/languages/{置き換えたい言語}.min.js)をコピーし,スクリプト冒頭にある

// @require      https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/highlight.min.js

次の行に以下の行を追記しましょう.

// @require      https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.1/languages/{置き換えたい言語}.min.js

方法2 eval() を使用する

この方法ではhighlight.jsが対応している全ての言語の置き換えが可能になります.しかしながら,よく知られているようにeval()の使用には危険が伴います.その点を踏まえた上でこの方法を使って下さい.

スクリプト84行目付近に

    if (!hljs.getLanguage(name)) {
        // const response = await fetch(`https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/languages/${name}.min.js`);
        // eval(await response.text());
        return;
    }

という記述があるので,これを以下のように書き換えましょう.

    if (!hljs.getLanguage(name)) {
        const response = await fetch(`https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/languages/${name}.min.js`);
        eval(await response.text());
        // return;
    }