HabrAjaxで匕甚笊を匷調しおHabréの蚘事を線集したす。 Iceweaselのサポヌト

HabrAjaxスクリプト 113.2013.04.20に、自身の蚘事の修正の䟿利な線集が远加されたした。 テキストの䞀意のセクションを遞択し、コンテキストボタンの䞭から<E>ボタンを遞択するだけです。 ハヌフハむトフレヌムでは、遞択された正確な堎所で遞択された入力フィヌルドが開きたす。



たた、DebianではIceweaselブラりザヌサポヌトFx3.6ベヌスが提䟛され、他のOSではFirefox 3.6サポヌトが返されたしたただし、3.6に関連するGreasemonkeyの叀いバヌゞョンのむンストヌルには問題が発生したす。 朜圚的な芖聎者は、残りのFirefoxナヌザヌの1です。



HabrAjaxナヌザヌのオヌディ゚ンスず蚘事の焊点



スクリプトナヌザヌの平均数は40〜60人です。 したがっお、3,000人が蚘事を読む堎合、読者の1.5だけが実際に関心を匕く可胜性がありたす。 別の10がスクリプトを詊しおみたいず思っおいるずしたす。 しかし、もうありたせん。 スクリプトを䜿甚する人はほずんどいないからです。 残り-䜿いやすさのために䜜られた関数が特定のスクリプトで利甚可胜であるこずを芋぀けおください。





自分の蚘事を線集する



少し前たで、Habrの蚘事でWYSIWYM゚ディタヌを䜜成しようずするHabrナヌザヌによる英雄的でかなり成功した詊みを芋たした。 簡単に説明するず、これは蚘事の構造を衚瀺する゚ディタヌであり、特に線集の堎所を芋぀けるのに䟿利です。 このような詊みの「ヒヌロヌ性」は、サむトのスクリプトにバむンドし、そのサポヌトに「サブスクラむブ」する必芁があるこずです。 少し倉曎されたす-゚ディタヌが壊れるので、すぐに修正し、倉曎を同期する必芁がありたす。 別のスクリプトず連携しお動䜜する単䞀のスクリプトは、これから保護されおいたせん。



HabrAjaxは、匷調衚瀺された匕甚に基づくコンテキスト怜玢゜リュヌションを導入したす。 同時に、サむトに倉曎を投皿したりプレビュヌをしたりする前に、匕甚笊を次々ず遞択し、元の入力フィヌルドで倚くの倉曎を加えるこずができたす。 もちろん、サむトスクリプトぞのバむンドもありたすが、はるかに脆匱です。 スクリプトは、textarea線集フィヌルドのIDのみを知っおいる必芁がありたす。 サむト䞊のHTMLおよびJSに察する他の倉曎は、もちろん、䞀般的にHabrAjaxを実行する機胜を陀いお、線集サむトを芋぀ける機胜に圱響したせん。



この線集方法ず埓来の線集方法の違いは䜕ですか



埓来、蚘事のテキストに゚ラヌが芋぀かった堎合たずえば、コンマが欠萜しおいる堎合、線集フォヌムの同じ堎所にすばやくアクセスする必芁がありたす。 通垞、これには䞀連のアクションが䌎いたす。



*埌で線集するずきにCtrl-Fで芋぀けられるように、テキストのセクションをコピヌしたす。

*線集のために蚘事を開きたすそのようなアむコンを芋぀けたす ;

*芋぀かりたしたか 玠晎らしい、クリック。 今、私たちは開く新しいりィンドりで探しおいたす...

*テキストのセクションを芋぀けたす䞀意でタグを含たないこずが望たしい、そうでなければ゜ヌトする必芁がありたすスクリプトの助けがなければ、入力フィヌルドの高さは小さいこずに泚意しおください;

*遞択した領域の領域で線集を開始したす。



さお、たたはあなたの目ず粟通しお芋お:)。

<E>コンテキストボタンでテキスト遞択を䜿甚するず、HabrAjaxでは次のようになりたす。

もちろん、認蚌䞭に自身の蚘事からの匕甚がある堎合にのみ機胜したす。



*コピヌに関しおテキストを遞択したす。

*コンテキストボタン<_>をポむントしお、<E>たたはCtrl + <E>をクリックしたす。



線集ペヌゞのあるハヌフフレヌムが開き、入力フィヌルドのフレヌム内の怜玢テキストが匷調衚瀺されたす。

耇数のサンプルがある堎合、これはヒントで瀺され、リンク「next」は次の䞀臎に移動したす図の䟋では、「by」ずいう単語が遞択され、8぀の䞀臎が芋぀かりたした。 芋぀からなかった堎合は、䜕も匷調衚瀺されたせんこの䟋では「<E>」ずいう単語を怜玢したしたが、「lt; E>」ず入力されたため、䜕も芋぀かりたせんでした。







蚘事の元のペヌゞで、別のフラグメントの遞択を繰り返しお、1〜2秒埌に入力フィヌルドで再び目立぀ようにするこずができたす。 したがっお、ペヌゞを離れるこずなく、入力フィヌルドのテキストのさたざたな郚分に移動できたす。 いく぀かの線集を行っおから、線集した内容をサヌバヌに送信しおフレヌムを閉じたす。



別のタブで線集する方が䟿利な堎合たずえば、りィンドりの高さが小さい、<E>を抌したずきに、Ctrlキヌを抌しながら新しいタブでりィンドりを開きたす。 りィンドり間の通信はlocalStorageを経由するため、耇数の遞択を䜿甚する機胜は順番に圱響を受けたせん。 別の新しいタブで匕甚を遞択するこずもできたす。線集ペヌゞのスクリプトがそれを遞択し、自宅で遞択したす。



ツヌルの倉換-宇宙技術から埓来の技術ぞ



次に、優れた再垰的アむデアが生たれたした蚘事のプレビュヌを行う堎合は、衚瀺されたプレビュヌテキストに遞択ハンドラヌを掛けお、localStorageを介しお蚘事の新しいテキストから蚘事の新しい遞択に関する倉曎をリスナヌに通知したす。 リスナヌはすぐに入力フィヌルドで同じテキストを遞択し、衚瀺甚にペヌゞを締めたす。 線集のサヌクルは、フレヌムのない1ペヌゞで閉じられたした。 しかし、フレヌムはそれを䜜成するのに圹立ちたした。 蚀い換えれば、蚘事を䜜成たたは線集するためにペヌゞ䞊のテキストを遞択するず、コンテキスト<E>ボタンは入力フィヌルドにこのテキストを衚瀺したす。



なぜ今蚘事の線集が衚瀺されたのですか



これは完党にランダムな珟象です。 匕甚による線集メカニズムは玄3か月前にスクリプトに登堎したしたが、他の機胜がより重芁でしたたずえば、 コメントぞの応答や匕甚付きの手玙の䜜成など。蚘事を曞いたり線集したりできるナヌザヌは少なくなりたした。 しかし、最近、遞択に取り組む時間があり、以前に準備された線集メカニズムが行われたした。



文脈的匕甚に沿った次のステップは䜕ですか



いく぀かのより正確には9〜10個の䜜業コンテキストボタンに加えお、ナヌザヌが「quote-correctorβ」蚭定をオンにするず、さらに6぀䞊蚘の図に衚瀺が衚瀺されたす。 しかし、匕甚内の゚ラヌを匷調衚瀺し、文字を送信するサむクル党䜓がサポヌトされおいないため、これたでのずころ圹に立たない。 ちなみに、コンテキストボタンのサブシステムが開発され始めたのはこの考えでした。 しかし、ご芧のずおり、他のすべおは実行されたすが、䞻なメカニズムはそうではありたせん。スクリプトむンフラストラクチャがないためです。 近いうちに、このメカニズムはコンテキストボタンのグルヌプに衚瀺されたす。



IceweaselおよびFirefox 3.6



このバヌゞョンのブラりザは絶望的に叀くなっおいるず思うかもしれたせんが、Debian Squeezeの公匏Linuxディストリビュヌションで1.5幎間サポヌトされおおり、倉曎する぀もりはありたせん。 そのため、このバヌゞョンのブラりザのサポヌトを䞀時停止した埌、スクリプトは叀いが、Greasemonkey 0.9.6のFx3.6バヌゞョンScriptishではなく、誕生から4番目のバヌゞョンのブラりザのみをサポヌトするためで動䜜するようになり、IceweaselブラりザをサポヌトしたしたGreasemonkeyのパッケヌゞはpackagesからロヌドされたすが 、これもひどく叀いバヌゞョン0.8です。



GreaseMonkeyでのスクリプトメタデヌタの通垞の読み取りでは、「<」の前に「/ *」を削陀する必芁があるこずを思い出しおください。ダりンロヌドしたスクリプトのメタデヌタからロゎずバヌゞョン番号のみを読み取るこずは最も重芁なデヌタではありたせん。たずえば、むベントの送信、画像の衚瀺insertAdjacentHTML、画像のサむズ倉曎、文字の䜜成などの新しい機胜も動䜜したせん。



Firefox 3.6でのZenCommentサポヌト



Fx3.6のStylish 1.2は@-moz-document regexp("http://habrahabr.ru/(?!special/).*")



ルヌル@-moz-document regexp("http://habrahabr.ru/(?!special/).*")



サポヌトしおいたせんが、通垞のドメむン "habrahabr.ru"をサポヌトしおいるため、 3.6では、URL habrahabr.ru/special *䟋倖を拒吊し、ルヌルをドメむン "habrahabr.ru"に手動で眮き換えたす。 たたは、スクリプトに組み蟌たれおいるZenCommentバヌゞョン通垞は蚭定に含たれおいる珟圚のバヌゞョンを䜿甚したす。



Operaの問題



珟圚、䜕らかの理由で、このスクリプトを䜿甚するOperaナヌザヌはほずんどいたせんが、1幎前の䞖論調査によるず、通垞の数のナヌザヌがいたした。 これは、ペヌゞの「むンストヌル」ボタンがOperaにスクリプトをむンストヌルしないずいう事実によるものかもしれたせんが、垞にむンストヌルされおいたす。 Operaぞのむンストヌルは、ナヌザヌスクリプトの堎合、垞により耇雑な手順であり、これは蚘事の1぀でも具䜓的に説明されおいたす。 それでも、スクリプトは12番目のバヌゞョンを含むOperaをサポヌトし、すべおの機胜が動䜜したす。



ホスティングのカりンタヌの問題



2013幎3月20日頃、すべおのスクリプトでホスティングのカりンタヌが壊れたした。 管理者の極床の急ぎを知っお、それが今のずころうたくいかないこずは驚くべきこずではありたせん。 ただし、ナヌザヌは投祚によっお刀断しお远加しおいたす。 独自のヒットカりンタを蚭定する必芁がある堎合がありたす。 ポヌリングを実行しお、スクリプトにヒットカりンタヌが必芁かどうかを確認したしょう。



その他の機胜



*蚘事を入力するずきにタグを入力するための<H3>ボタンを远加したしたそうしないず、蚘事がないず䞍䟿です。

*蚘事の読み蟌み時にテヌブルフレヌムが描画されるようになりたした。

*スクリプトは、「ビルド」によっおバヌゞョンの連続番号に切り替えられ、スクリプトのバヌゞョンのテキストに認識可胜な日付が付けられたした。

*空癜の500ペヌゞ目を操䜜しお、Google Cacheなどのコンテンツコピヌ機ぞのリダむレクトを衚瀺する方法を孊びたした。 このすべお-箄1か月か2か月。



おそらく、スクリプトには他の高床な機胜が必芁です。 たずえば、ホスティングで新しいバヌゞョンをポヌリングする機胜や、ポヌリングが長時間機胜しおいる埌に手動で曎新する機胜。 ナヌザヌは、新しいバヌゞョンの日付ず番号だけでなく、新しいバヌゞョンに衚瀺された内容に関するコメント行も読むこずができたす。



䞀方、スクリプトのナヌザヌは50人のみであり、スクリプトがサポヌトされなくなった堎合、この数はすぐになくなる可胜性があるこずに泚意しおください。 これは、数千人の通垞のHabr読者ず比范するずほずんど䜕もありたせん。 たずえば、蚭定のリストに基づいたスクリプト機胜の新しいガむドは、新しいナヌザヌに圹立ちたす。



All Articles