AtCoder Better Highlighter

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

2020-10-11 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

ئاپتورى
shouth
باھا نومۇرى
0 0 0
نەشرى
0.5.1
قۇرۇلغان ۋاقتى
2020-10-10
يېڭىلانغان ۋاقتى
2020-10-11
Size
4.8 KB
ئىجازەتنامىسى
يوق
قوللايدىغىنى

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;
    }