æšå€ã¯ç ããªãã£ãã®ã§ãäœã䟿å©ãªããšãïŒäžåºŠã ãïŒããããšã«ããŸããã èªåã®å©çã ãã§ä»ã®äººã«å©çãããããããšãã§ããã®ã§ã人çãæ¥œã«ããããšããŸããïŒ1ããŒãžã®ããã€ãã®æ°åã®å€åãç£èŠãããã©ã°ã€ã³ãäœæããŸãïŒããã©ããŒããŠãããããã¯ã®æªèªã³ã¡ã³ãã®æ°ãããæåã®æ°ãããããã®æ°ããã³ã¡ã³ãã«ã¢ã¯ã»ã¹ããŠèªãçç±ïŒãããã®æ°å€ã¯ãããŒãžäžéšã®2ã€ã®æåãªéåããã°ã«è¡šç€ºãããŸããããã®ããŒãžãæŽæ°ããã ãã§ãã¹ããŒã¿ã¹ã®å€åã確èªã§ããŸã-mail-rssã¡ã«ããºã ãªã©ã¯ãããŸãã ã«ããŒããŸããç§ã¯æç¢ºã«èª¬æããããšæãïŒã 1æéååŸããã©ã°ã€ã³ã®å€ããå°ãªããå®å®ããããŒãžã§ã³ã®æºåãæŽããŸãããäžå¹Žäžãã€ã§ãç§ã®åæ¥ãç¹°ãè¿ãæ¹æ³ã«ã€ããŠåãã§ãäŒãããŸãã
ãã®ãããè°é¡ïŒ
FireFoxã®ãã©ã°ã€ã³ãè¿
éãã€ã¯ãªãŒã³ã«äœæããŸããç§ã¯
ããã«ããªãã«èŠåããã
ã§ã ïŒãã©ã°ã€ã³ã®å®éšãGreaseMonkeyã®ã¹ã¯ãªããã§è¡ãããåã¯ãç§ã¯ãã®åé¡ã®ããã§ãã°ã«ã§ããããŸããïŒã³ã¡ã³ããç°¡åã«ç·šéããããã®ã®ãºã¢ã§ãã
HabraHackerãèŠãŸããïŒã ãã ãããã©ã°ã€ã³ã¯æžãããŠããããã§ãæ©èœããŸã;ïŒ
ç§ãå¿
èŠïŒ
- Firefox ããšãã°ã3çªç®ã®ããŒãžã§ã³ïŒminefieldïŒããããŸãã
- Firefox Portable ãã¡ãããããã¯å¿
èŠã§ã¯ãªããããããŸããããç§ã¯ãããã»ããã¢ããããŸããã2çªç®ã®ããŒãžã§ã³ã«åŸã£ãŠãã©ã°ã€ã³ãç°¡åãã€è¿
éã«å®è¡ããããã§ãã
- ãšãã£ã¿ãŒ ã Notepad ++ãéžæããŸãã åãããšããå§ãããŸã-ããã¯éåžžã«éããç°¡åã§ã䟿å©ã§ãèšå€§ãªæ°ã®æ©èœãåããŠãããäœã§ã匷調ããŠããŸãã æ°ã«å
¥ããªãå Žåã¯ãJavaScriptãšXMLã匷調衚瀺ããããšããå§ãããŸãã
- JavaScriptã®ç¥è ã å¥åŠãªããšã«ãããããå¿
èŠã«ãªããŸãã
- ã¡ãã£ãšããå·¥å€«ãšæ³åå ã çç±ã¯ããããŸããã
å®éãã©ãããå§ããã¹ãããèããããšããå§ããŸããã Googleã§ãã¥ãŒããªã¢ã«ãæ€çŽ¢ãããšãããã«ããã«ãèŠã€ãããŸããããã©ããããããç§ã¯ãããã奜ãã§ã¯ãããŸããã§ãã-ããããåå3æã«ãã®ãããªå察æèŠãèªãæéããªãã§ããããïŒç§ã®ã€ã³ã¿ãŒãã§ãŒã¹ãèŠãŠã¿ããšãèšç»ããããã®ãšéåžžã«ãã䌌ããã©ã°ã€ã³
-Khabragolik 圌ã¯ãŸãæ°åã衚瀺ããŸã-ããã¯ããªããå¿
èŠãªãã®ã§ã¯ãããŸãããïŒ ;ïŒ
ç¹å¥ãªé埳çéå£ããªããã°ã圌ã®
é
åžããããããŒããã©ã€ãã«ããŠã³ããŒãã
ãŸãããXPI圢åŒã®ãã©ã°ã€ã³ã¯ãã¹ãŠãããŸããŸãªãã¡ã€ã«ãå«ãZIPã¢ãŒã«ã€ãã«éããªãããšã«çæããŠãæ¡åŒµåã
habraholic-0.2.zipã«å€æŽã
ãŸãã ã ã©ããã«è§£åããã€ã³ãã³ããªã®ãã©ã°ã©ã5ãé©çšããŠãç©ã®ã€ã³ãã³ããªãäœæããŸããã
+ã¯ããŒã
+ã³ã³ãã³ã
-panel.xul //ãã©ã°ã€ã³ã®æ¬äœã XUL *ãœã±ããã®èª¬æ
-script.js //ããã¯ãã§ã«éã§ãã ãŸããããæ£ç¢ºã«ã¯å¿...æ¬èœã èŠããã«ããã¹ãŠã®javascriptå®è¡å¯èœã³ãŒã
-prefs.xul //èšå®ãŠã£ã³ããŠã®èª¬æ
-habr.ico //倧æåã®Hãå«ãå¥åŠãªçµµã¯ãããããhabrahabrã象城ããŠããŸã
+ããã©ã«ã
+èšå®
-defaults.js //ãã©ã°ã€ã³ããã©ãŠã¶ã«æ°žä¹
ã«ä¿åãã倿°ã®ããã©ã«ãå€ããããŸãã éåžžã¯èšå®ããããŸã
-install.rdf //ãã©ã°ã€ã³ã説æããå¥åŠãªXMLãã¡ã€ã«
-chrome.manifest //ãã©ãŠã¶ã®ããŒãæã«ãã©ã®XULãã¡ã€ã«ãæ¥ç¶ãããããã©ãŠã¶ã«äŒããŸã
*-ããã¯ãã€ã³ã¿ãŒãã§ãŒã¹ãèšè¿°ããXMLããŒã¹ã®èšèªã§ãã XHTMLã«äŒŒãJSããµããŒãããŠããŸã-ããã ãã§ãã ãã©ã°ã€ã³ã«æžã蟌ãŸããŸãã
ç§ã¯
install.rdfãã¡ã€ã«ããå§ããŸããã ãããéããŠãç§ã¯æèã®è¡ãèµ°ã£ãïŒ
<emïŒid> habraholic@vladislav.semenov </ emïŒid>
ç§ã¯ãŸã äœãæå³ããã®ãçè§£ã§ããã詊ããŠã¿ãŸããã§ããããã©ã°ã€ã³ã®ååãã©ãã³æåã§ç¬ã®åãšç¬ã®åŸãã«å
¥ããŸãã-ç§ã®å§ãšåã
<emïŒããŒãžã§ã³> 0.2 </ emïŒããŒãžã§ã³>
ããŒãžã§ã³ 念ã®ããã0.1ãèšå®ããŸã
<emïŒtype> 2 </ emïŒtype>
åŸã§ãããäœã§ãããïŒã¿ã€ãïŒã¹ãã³ããã©ã°ã€ã³ããŸãã¯ãã®ä»ããŸãããã®ãããªãã®ïŒãèŠã€ããã®ã§ãè§Šããªãããšã«ããŸããã ãã©ã°ã€ã³ã倧ããç°ãªãå¯èœæ§ã¯ã»ãšãã©ãããŸããããŸãã倿ŽããŸããã
<emïŒoptionsURL> chromeïŒ//habraholic/content/prefs.xul </ emïŒoptionsURL>
chromeïŒ//ããã¯ããã©ã°ã€ã³ã®/ chrome /ãã£ã¬ã¯ããªã®ãã¹ãŠã®ã³ã³ãã³ããå«ããã£ã¬ã¯ããªãžã®ãªã³ã¯ã®ãããªãã®ã§ãã ããã¯/chrome/contents/prefs.xulãã¡ã€ã«ãæããŸãã ãã©ã°ã€ã³ã«èšå®ããªãã£ãããããã®è¡ãã³ã¡ã³ãã¢ãŠãããŸããïŒïŒ
<emïŒtargetApplication>
<説æ>
<emïŒid> {ec8030f7-c20a-464f-9b0e-13a3a9e97384} </ emïŒid>
<emïŒminVersion> 1.5 </ emïŒminVersion>
<emïŒmaxVersion> 2.0.0ã* </ emïŒmaxVersion>
</説æ>
</ emïŒtargetApplication>
å®éšçã«ïŒãŸãããã«ããèŠãŠãã ãããïŒIDã¯ã¢ããªã±ãŒã·ã§ã³èå¥åã§ããããšãããããŸãããããšãã°ãFirefoxã®å Žåã¯{ec8030f7-c20a-464f-9b0e-13a3a9e97384}ã§ã倿Žããªãã§ãã ããã æå€§ããŒãžã§ã³ã¯3.1a1preã«ãã£ãŠèšå®ãããŸããïŒåãå Žæããããã«ããããç§ã¯ç¥ããŸããïŒã
<emïŒname> Habragolic </ emïŒname>ãªã©
ãŸãããããã¯ãã¹ãŠæç¢ºã§ãã ãã¡ã€ã«ã倿ŽããŠä¿åããéããŸããã
次ã®è¡ã¯chrome.manifest
ãã¡ã€ã«ã§ã ã ãã®äžã§ãpanel.xul
ãã¡ã€ã«ãžã®ãã¹ã®ã¿ã倿ŽããŸãã
ãhabraholicãèªåã®ååã«çœ®ãæã
ãŸãã ã
/defaults/preferences/defaults.jsãèŠã
ãšãã ããŠãŒã¶ãŒãæ§æå¯èœãªå€æ°ãããªãããšãããããŸããã ã³ã¡ã³ãã¢ãŠãããŸããïŒ//ïŒã
次ã«ããã¡ã€ã«
/chrome/content/prefs.xulãäžèŠãªãã®ãšããŠåé€ãïŒèšå®ã¯ãããããŸããããïŒïŒã
/ chrome / content / habr.icoãã¢ã€ã³ã³ã«çœ®ãæã
ãŸãã ã
èšèšãšã¬ã€ã¢ãŠãã®æãæ¥ãŸããïŒ
/chrome/content/panel.xul æåã«ããããšã¯ããã¹ãŠã®èŠçŽ IDãšã©ãã«ã倿Žããããšã§ããããhabraholicããšãKarmaããå¥ã®èšèã«çœ®ãæããŸããã èšå®é
ç®ãšã»ãã¬ãŒã¿ãŒïŒMenuseparatorïŒãã¡ãã¥ãŒïŒèŠçŽ å
ã§èª¬æïŒããåé€ããåèªãkarmaããæåã®é
ç®ã®ããã¹ãããåé€ããŸããã ã¢ã€ã³ã³ãšã¹ã¯ãªããïŒããã³<script ...>ïŒãžã®ãã¹ã倿Žããonclick = ``ããã³oncommand = ''ãšåŒã°ããjavascript颿°ã®ååã倿ŽããŸããã
ããã§ãå°ãéã³ãŸããããã¢ã€ã³ã³ãããã«è¿œå ããã©ãã«ããã®ä»ã®èŠçŽ ã远å ããŸãã ããããããªãã¯ãã€ã§ã
ãããããšãã§ããããã°ã©ã ã®ã³ãŒãéšå
/chrome/content/script.jsã«é²ã¿ãŸãã
ãã¹ãŠã®æ©èœã®ååã倿Žããããšããå§ããŸããïŒååããhabraholicãåé€ãããªã©ïŒã ãããã圌ã¯ããããã¹ãŠãèŠãŸããïŒ
çãã æžããããã§ãã ããã§ããã¹ãŠã®ãã¡ã€ã«ãplugin.zipã«ããã¯ãããããplugin.xpiã«åå倿ŽããŠããããã©ãŠã¶ãŒã«ãã©ãã°ããŸããã 圌ã¯ãããã€ã³ã¹ããŒã«ããããšãææ¡ããç§ã¯ããããã§ã-ç§ã¯ãã¿ã³ãæŒããŠããããã©ãŠã¶ãåèµ·åããŸãã
ãã©ãŠã¶ã¯èœã¡ããããã«ã衚瀺ãããŸããã ãã¡ãããããã«ã¯ãã¹ãŠãééã£ãŠããããšã瀺ããŠããŸããããããã€ãã®ãããã°ïŒã¢ã©ãŒãæ©èœã¯æ£åžžã«æ©èœããŠããŸããïŒãšèãçŽããåŸããã¹ãŠãéåžžã®åœ¢åŒã«æ»ããŸããïŒãã®ãããæ¯åãã©ã°ã€ã³ãåããã¯ããååã倿ŽããŠãã©ãŠã¶ãŒãŠã£ã³ããŠã«ãã©ãã°ããŸãã-çããããšã³ã¿ãŒãã€ã¡ã³ã;ïŒã ãã£ãïŒ
ããã¯å°ããªåé¡ã§ããïŒ
/chrome/content/prefs.xulã®ããŒãžã§ã³ãèªããããª0.2ã«å€æŽããŠã
addons.mozilla.orgã«ã¢ããããŒãã
ãŸãã ã ç§ã¯ããã«ããããã®ããšãå
¥åããªããã°ãªããŸããã§ããããæçµçã«ããã«èªåã®ãã©ã°ã€ã³ããŒãžãæã«å
¥ããŸããããã¡ãããæå³ãããŠãŒã¶ãŒãéãŸã£ãå Žæã§ãããžã®ãªã³ã¯ãå
¬éããã®ã¯é
ããããŸããã§ããã ããã«èŠã€ãã£ããšã©ãŒãé·ãéä¿®æ£ããåŸãç§ã¯è¯ãåäœãããã©ã°ã€ã³ã®å¹žããªèè
ã«ãªããŸããã ãããŠãããªããhabrachelovekïŒ