プレビューに長時間かかる sed のコードがある #851
Replies: 2 comments 1 reply
-
| @mikecat Qiita のハイライトは Rouge を使用しているのですが、確認してみたところ Rouge が原因で時間がかかっていそうです。 | 
Beta Was this translation helpful? Give feedback.
-
| 通りすがりのものです。 Rouge のソースを確認しましたが、いくつか問題があって複合的に起きているようです。 一つ目の問題は、sed の          rule %r/([:btT])(\s+)(\S+)/ do本来、sed では空白は必須ではないと思うので、 Rouge 側のバグだろうと思います。 ↓細かい動作確認などはしていませんが、Rouge 側を直すなら以下のような感じだと思います(  -         rule %r/([:btT])(\s+)(\S+)/ do
+         rule %r/([:btT])(\s*)(\S+)/ do逆にいえば、ラベルの前に空白を入れれば( Rouge 的に適正な  ↓暫定的に修正するなら、こんな感じ : thousand  # <- ラベルの前にスペースを追加
s/d\(.*\)0\(...\)$/\11\2/
s/d\(.*\)1\(...\)$/\12\2/
s/d\(.*\)2\(...\)$/\13\2/
s/d\(.*\)3\(...\)$/\14\2/
t thousand  # <- ラベルの前にスペースを追加二つ目の問題は、 
 この場合の不正な  s/d\(.*\)0\(...\)$/\11\2/ラベル内の  :thousand
 なので、ラベルから  :thouand  # <- s を削除
s/d\(.*\)0\(...\)$/\11\2/
s/d\(.*\)1\(...\)$/\12\2/
s/d\(.*\)2\(...\)$/\13\2/
s/d\(.*\)3\(...\)$/\14\2/
tthouand # <- s を削除ただし、 また、 これを Rouge 側で直すなら、多分  -       edot = /\\.|./m
+       edot = /\\.|[^\\]/m利用者側の暫定対策としては、ラベルの前にスペースを 1 つ入れることが一番簡単、かつ見栄えも悪くないと思います。 ご参考まで。 | 
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Sed で Welcome to AtCoder を解いてみた #競技プログラミング - Qiita
を書いていて気付いたのですが、sed のシンタックスハイライトをしようとするとプレビューに長時間かかることがあるようです。
たとえば、新規記事を書く画面を開き、本文に
を入力すると、1回の preview のクエリに9秒くらいかかるようです。
Beta Was this translation helpful? Give feedback.
All reactions