Skip to content

AtCoderでCRLF (\r\n) ではなくLF (\n) で改行したソースコードを提出するボタンを追加します。また、LFで改行した場合のコード長(Byte単位)をソースコードエディタの下に表示します。

License

Notifications You must be signed in to change notification settings

dnek/atcoder-lf-submit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

atcoder-lf-submit

概要

AtCoderでCRLF (\r\n) ではなくLF (\n) で改行したソースコードを提出するボタンを追加します。 また、LFで改行した場合のコード長(Byte単位)をソースコードエディタの下に表示します。 特に512 KiBの提出制限を超過する場合はそのByte数を表示してボタンを押せなくします。

詳細

AtCoderのソースコードエディタは改行をLFとして処理する実装になっています。 しかし、ジャッジサーバーにソースコードを送信する過程で、ウェブブラウザがHTMLの仕様に従ってLFをCRLFに正規化してしまいます。 これは特にコードゴルフをする上で煩わしい挙動です。

この問題を解決するため、2018年にAtCoder dos2unix UserScriptが作られました。 これはソースコード文字列のURLエンコード処理をJavaScriptで代替することでCRLF正規化を回避するものでした。

しかし、dos2unixは2025年にAtCoderがソースコード提出時の認証を導入した影響で動作しなくなりました。 既にGitHubリポジトリもアーカイブされていたため修正の見込みもありませんでした。

そこで、代わりにこのatcoder-lf-submitを作ることにしました。 より現代的かつシンプルな実装を目指して一から作り直し、コード長表示も追加しましたが、根本的なアイデアは同じです。 これまで利用させていただいたことと合わせて感謝申し上げます。

ちなみに、AtCoderのコードテストはジャッジへの提出とは異なり、元からJavaScriptで処理してLFのままテストサーバーへ送信する実装になっています。 そのため、コードテストページにLF用ボタンは追加せず、コード長表示のみとしています。

注意

AtCoderが導入した認証手段はCloudflare Turnstileというものです。 atcoder-lf-submitは、ブラウザ上で正規に取得したTurnstileのトークンを含むフォームの内容をそのまま送信しています。 特にAtCoder運営の意に反する挙動はしていないと思いますが、各々自己責任でご利用ください。

インストール

ソース

About

AtCoderでCRLF (\r\n) ではなくLF (\n) で改行したソースコードを提出するボタンを追加します。また、LFで改行した場合のコード長(Byte単位)をソースコードエディタの下に表示します。

Topics

Resources

License

Stars

Watchers

Forks