AtCoder Better Highlighter

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

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

ئاپتورى
shouth
باھا نومۇرى
0 0 0
نەشرى
0.5.3
قۇرۇلغان ۋاقتى
2020-10-10
يېڭىلانغان ۋاقتى
2020-10-18
Size
4.9 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をコピーし,スクリプト冒頭にある

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

次の行に以下の行を追記しましょう.{コピーしたURL} を先ほどコピーしたURLで置き換えて下さい.

// @require      {コピーしたURL}

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

別のテーマを使うには

デフォルトではhighlight.jsのdefault.cssを使用しています.テーマを別のものに変えるには, https://cdnjs.com/libraries/highlight.js のリストから目的のcssのURLをコピーし,スクリプト冒頭の

// @resource        css https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/styles/default.min.css

を以下のものに置き換えましょう.{コピーしたURL} を先ほどコピーしたURLで置き換えて下さい.

// @resource        css {コピーしたURL}