User:Roc michael
From MediaWiki.org
Contents |
[edit] About Myself
Hi. I am Michael Chang (張致信),a Chinese in Taiwan. Since my name is too popular to be an ID for me, I chose the roc michael (Republic Of China's Michael). Then MW turned it into Roc michael.
Email: roc.no1@gmail.com
- Hi, everybody I am in Jiaosi, Yilan Taiwan now. I wish everybody study to use(or to develop Mediawiki Extension) easily.
- 大家好,我現在人在台灣省宜蘭縣礁溪鄉。祝大家維基學習之旅能愉快順利。
[edit] Translation
- Extension:UserRightsList
- Extension talk:ImagePlus#Chinese message (Zh_tw)
- Extension:Replace Text
- Extension:Semantic MediaWiki
- Extension:Semantic Forms/zh-hant
- DPL Chinese UI
- SpecialPages_grouped_into_categories/Chinese
- Extension:AWC's Forum
- Extension:Todo Tasks
- Extension:WhoIsWatchingTabbed
- Extension:WhoIsWatching
- Extension:Data Transfer
- Extension talk:IssueTracker#i18n_for_Taiwanese_Chinese
[edit] My page in other wiki
[edit] Mediawiki Study
|
Developers
|
此頁很炫*諸多連結圍著圓形的圖檔。
[edit] Files not using anymore
[edit] My Environment
- MediaWiki: 1.11.0
- Win XP
- The AppServ Open Project - 2.5.7 for Windows
- Apache Web Server Version 2.2.3
- PHP Script Language Version 5.1.6
- MySQL Database Version 5.0.24a
- phpMyAdmin Database Manager Version 2.9.0.2
Could you give me a hand?
[edit] My Environment
- MediaWiki: 1.12.0
- Win XP
- The AppServ Open Project - 2.5.7 for Windows
- Apache Web Server Version 2.2.3
- PHP Script Language Version 5.1.6
- MySQL Database Version 5.0.24a
- phpMyAdmin Database Manager Version 2.9.0.2
Could you give me a hand?
[edit] The MediaWiki:Common.css in my testwiki
/** CSS placed here will be applied to all skins */ /********** Colour of Main + Talk 主頁面與討論頁面的相關顏色設定 ************/ .ns-0 #content, .ns-0 #p-cactions li, .ns-0 #p-cactions li a { background: #eeeeff; } .ns-0 div.thumb { border-color: #f4f4f4; } .ns-1 #content, .ns-1 #p-cactions li, .ns-1 #p-cactions li a { background: #ffcc00; } .ns-1 div.thumb { border-color: #f4f4f4; } /********** Colour of NS MediaWiki + MediaWiki_talk MediaWiki 與 MediaWiki_talk頁面的相關顏色設定 **********/ .ns-8 #content, .ns-8 #p-cactions li, .ns-8 #p-cactions li a { background: #ffcc00; } .ns-8 div.thumb { border-color: #f4f4f4; } .ns-9 #content, .ns-9 #p-cactions li, .ns-9 #p-cactions li a { background: #ffcc00; } .ns-9 div.thumb { border-color: #f4f4f4; } /* Background colors */ .backgroundc1 { background-color: #ffffff; } /* white */ .backgroundc2 { background-color: #f9f9f9; } /* light grey (as toc) */ .backgroundc3 { background-color: #eeeeee; } /* light grey (headers) */ .backgroundc4 { background-color: #e0e0e0; } /* more grey */ .backgroundc5 { background-color: #d2d2d2; } /* more grey */ .backgroundc6 { background-color: #b7b7b7; } /* more grey */ .backgroundc7 { background-color: #a3a3a3; } /* darker grey */ /* Major warning - used on the main page template to warn against editing carelessly, but can be used elsewhere as well */ .majorwarning { background: yellow; padding: 0.3em; text-align: center; font-size: 125%; border: 2px solid red; } /******* MAIN PAGE STYLING 以下為Mediawiki.org首頁所使用的特定CSS **********/ #mainpage_topbox { background: #f9f9f9; padding: 0px; border: 1px solid #aaaaaa; margin: 0.2em 10px 10px; } .mainpage_boxtitle, .mainpage_hubtitle, #mainpage_pagetitle { font-size: 105%; padding: 0.4em; background-color: #eeeeee; border-bottom: 1px solid #aaaaaa; } .mainpage_boxtitle { line-height: 120%; } #mainpage_pagetitle { color: #cf7606; font-size: 200% !important; } #mainpage_sitelinks { padding: 0.2em; text-align: center; background-color: white; } .mainpage_hubtitle { text-align: center; } .mainpage_boxcontents, .mainpage_boxcontents_small { background: #ffffff; padding:0.2em 0.4em; } .mainpage_boxcontents_small { font-size: 95%; } .mainpage_hubbox, #mainpage_newscell, #mainpage_downloadcell { padding: 0; border: 1px solid #aaaaaa; } .mainpage_hubbox { margin-bottom: 0; } #mainpage_newscell { margin-bottom: 15px; margin-top: 0 !important; } #mainpage_newscell .mainpage_boxtitle { background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Exquisite-khelpcenter.png/20px-Exquisite-khelpcenter.png); background-repeat: no-repeat; background-position: 99% 0.3em; padding-right: 25px; } #mainpage_downloadcell { width: 17em; margin-bottom: 5px; } #mainpage_downloadcell .mainpage_boxtitle { background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Crystal_Clear_action_build.png/18px-Crystal_Clear_action_build.png); background-repeat: no-repeat; background-position: 96% 0.33em; padding-right: 25px; } /* The words 'MediaWiki.org' in the title.*/ #mainpage_mwtitle { color: #005288; } /**** For Extensions Simple Calendar */ table.calendar { margin: 0; padding: 10px; } table.calendar td { margin: 0; padding: 2px; vertical-align: top; } table.month .heading td { padding:2px; background-color:#d4d4d4; color:#aaa; text-align:center; font-size:120%; font-weight:bold; } table.month .dow td { color:#aaa; text-align:center; font-size:110%; } table.month td.today { background-color:#ddd; } table.month td { border: none; margin: 0; padding: 1pt 1.5pt; font-weight: bold; font-size: 8pt; text-align: right; background-color: #eee; } #bodyContent table.month a { background:none; padding:0 } .day-active { color:#0000cc } .day-empty { color:#cc0000 } /* Extension Infobox Styling */ .ext-infobox { border: 2px solid #aaaaaa; width: 272px; float: right; margin: 0 0 0.5em 0.5em; border-collapse: collapse; background-color: white; } .ext-infobox td { border: 2px none #aaaaaa; padding: 0.2em 0.5em; border-bottom: 1px solid #f0f0f0 !important; } .ext-header { background-color: #aaaaaa; color: white; text-align: left; } .ext-header td { padding-top: 0.5em; } .ext-header img { padding: 0 0.2em 0 0.5em; } .ext-status-unstable, .ext-status-unstable td { border-color: #990000; } .ext-status-unstable .ext-header { background-color: #990000; color: #ffff00; } .ext-status-experimental, .ext-status-experimental td { border-color: #CC6600; } .ext-status-experimental .ext-header { background-color: #CC6600; } .ext-status-beta, .ext-status-beta td { border-color: #000099; } .ext-status-beta .ext-header { background-color: #000099; } .ext-status-stable, .ext-status-stable td { border-color: #009900; } .ext-status-stable .ext-header { background-color: #009900; } /* prettify [[Extension Matrix]] */ .xm-table { border: 1px solid #666666; background-color: white; } .xm-table td, .xm-table th { vertical-align: top; text-align: left; border: none; background-color: #EEEEEE; } .xm-table th { font-weight: bold; } .xm-name { font-weight: bold; } .xm-status-unknown { color:#888888; } .xm-status-experimental { color:red; } .xm-status-beta { color:blue; } .xm-status-stable { color:green; } .xm-type-unknown { color:#888888; } .xm-name, .xm-status, .xm-type, .xm-version, .xm-updated { white-space: nowrap; } .xm-updated { font-size:80%; } .xm-alert { background-color: yellow; } td.xm-blank { background-color: inherit; } td.xm-updated { background-color: inherit; } td.xm-description { background-color: inherit; font-style: italic; } th.xm-blank, th.xm-updated, th.xm-description { background-color: inherit; padding-bottom:0.6ex; border-bottom: 1px solid #666666; } th.xm-description { font-style: italic; } /* Extension:Expandable tables */ .expandable-heading { background-color: #eee; border: 1px solid #aaa; width: 100%; margin: 0.2em 0 0.2em 0; padding: 0; } .expandable-heading td { border: none; padding: 0; } .expandable-link { color: #3D5270; font-weight: bold; font-size: 90%; white-space: nowrap; padding: 0; } .expandable-content { width: 100%; background-color: #f4f4f4; border: none; padding: 0 0.2em 0 0.2em; margin: 0; } .expandable-content td { border: none; margin: 0; padding: 0 0.2em 0 0.2em; vertical-align: top; } .expandable-content td a { white-space: nowrap; } /* For DPL-forum use */ table td.forum_title a.forum_new { font-weight: bold } table td.forum_title a.forum_new:visited { font-weight: normal } table td.forum_edited a { text-decoration: none } .forumlist { border-collapse: collapse } .forumlist td { border-top: solid #999 1px } .forumlist td span { display: block; padding-left: 10px; font-size: smaller } .forumlist td span a { text-decoration: none; } .forumlist td span.forum_author { padding-left: 30px; } .forumlist td.forum_title a { padding-left: 20px } .forumlist td.forum_title span a { padding-left: 0px } .forumlist td.forum_title a.forum_new { background: url(/w/images/Forum_new.gif) center left no-repeat } .forumlist td.forum_title a.forum_new:visited { background: none } .forumlist th.forum_title { padding-left: 20px } /*一般用途 Extension Infobox Styling */ .ext-infobox { border: 2px solid #aaaaaa; width: 272px; float: right; margin: 0 0 0.5em 0.5em; border-collapse: collapse; background-color: white; } .ext-infobox td { border: 2px none #aaaaaa; padding: 0.2em 0.5em; border-bottom: 1px solid #f0f0f0 !important; } .ext-header { background-color: #aaaaaa; color: white; text-align: left; } .ext-header td { padding-top: 0.5em; } .ext-header img { padding: 0 0.2em 0 0.5em; } .ext-status-unstable, .ext-status-unstable td { border-color: #990000; } .ext-status-unstable .ext-header { background-color: #990000; color: #ffff00; } .ext-status-experimental, .ext-status-experimental td { border-color: #CC6600; } .ext-status-experimental .ext-header { background-color: #CC6600; } .ext-status-beta, .ext-status-beta td { border-color: #000099; } .ext-status-beta .ext-header { background-color: #000099; } .ext-status-stable, .ext-status-stable td { border-color: #009900; } .ext-status-stable .ext-header { background-color: #009900; } /* GENERAL PURPOSE PRETTY TABLES */ table.datatable { background-color: transparent; } table.datatable th, td { padding: 4px; } table.datatable th { text-align: left; background-color: #999999; } table.datatable tr { background-color: #CCCCCC; } table.datatable tr:hover { background-color: #FFFFCC; } /* GENERAL PURPOSE PRETTY TABLES (淺色) */ table.datatable_light { background-color: transparent; } table.datatable_light th, td { padding: 4px; } table.datatable_light th { text-align: center; vertical-align:middle; background-color: #ccccff; } table.datatable_light tr { background-color: #CCCCCC; } table.datatable_light tr:hover { background-color: #FFFFCC; } /*wikitable/prettytable class for skinning normal tables */ table.wikitable, table.prettytable { margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; empty-cells:show; } table.wikitable th, table.wikitable td, table.prettytable th, table.prettytable td { border: 1px #aaa solid; padding: 0.2em; } table.wikitable th, table.wikitable td.hl3, table.wikitable th.hl3, table.prettytable th, table.prettytable td.hl3, table.wikitable th.hl3 { background: #8da7d6; text-align: center; } table.wikitable td.hl1, table.wikitable th.hl1, table.prettytable td.hl1, table.wikitable th.hl1 { background: #c5d8fc; text-align: center; } table.wikitable td.hl2, table.wikitable th.hl2, table.prettytable td.hl2, table.wikitable th.hl2 { background: #a7c1f2; text-align: center; } table.wikitable caption, table.prettytable caption { margin-left: inherit; margin-right: inherit; font-weight: bold; } /* Sidebar External Links */ #n-browse-cvs a, #n-phpdoc a, #n-Mailing-list a { background: url(/skins-1.5/monobook/external.png) center right no-repeat; padding-right: 13px; color: #36b; } /* make the list of references look smaller */ ol.references { font-size: 100%; } .references-small { font-size: 90%;} /* prevent ugly horizontal page expansion */ pre { overflow: auto; } /* Standard Navigationsleisten, aka box hiding thingy from .de. Documentation at [[Wikipedia:NavFrame]]. */ div.Boxmerge, div.NavFrame { margin: 0px; padding: 4px; border: 1px solid #aaa; text-align: center; border-collapse: collapse; font-size: 95%; } div.Boxmerge div.NavFrame { border-style: none; border-style: hidden; } div.NavFrame + div.NavFrame { border-top-style: none; border-top-style: hidden; } div.NavPic { background-color: #fff; margin: 0px; padding: 2px; float: left; } div.NavFrame div.NavHead { height: 1.6em; font-weight: bold; background-color: #ccf; position:relative; } div.NavFrame p { font-size: 100%; } div.NavFrame div.NavContent { font-size: 100%; } div.NavFrame div.NavContent p { font-size: 100%; } div.NavEnd { margin: 0px; padding: 0px; line-height: 1px; clear: both; } a.NavToggle { position:absolute; top:0px; right:3px; font-weight:normal; font-size:smaller; } /* Coloured watchlist numbers */ .mw-plusminus-pos { color: #006400; /* darkgreen */ } /* .mw-plusminus-null currently at developer default */ .mw-plusminus-neg { color: #8B0000; /* darkred */ } .dablink { font-style: italic; padding-left: 2em; } .dablink i { font-style: normal; } /* Style for horizontal UL lists */ .horizontal ul { padding: 0; margin: 0; } .horizontal li { padding: 0 0.6em 0 0.4em; display: inline; border-right: 1px solid; } .horizontal li:last-child { border-right: none; padding-right: 0; } /* Coloured watchlist / Special:Recentchanges numbers */ .mw-plusminus-pos { color: #006400; /* darkgreen */ } /* .mw-plusminus-null currently at developer default */ .mw-plusminus-neg { color: #8B0000; /* darkred */ } /* extra buttons for edit dialog */ /* from commons:MediaWiki:Common.css */ .my-buttons { padding: 0.5em; } .my-buttons a { color: black; background-color: #ccddee !important; font-weight: bold; font-size: 1.2em; text-decoration: none; border: thin #006699 outset; padding: 0 0.1em 0.1em 0.1em; } .my-buttons a:hover, .my-buttons a:active { background-color: #bbccdd; border-style: inset; } /* Infobox template style */ .infobox { border: 1px solid #aaaaaa; background-color: #f9f9f9; color: black; margin-bottom: 0.5em; margin-left: 1em; padding: 0.2em; float: right; clear: right; } .infobox td, .infobox th { vertical-align: top; } .infobox caption { font-size: larger; margin-left: inherit; } .infobox.bordered { border-collapse: collapse; } .infobox.bordered td, .infobox.bordered th { border: 1px solid #aaaaaa; } .infobox.bordered .borderless td, .infobox.bordered .borderless th { border: 0; } .infobox.sisterproject { width: 20em; font-size: 90%; } @media print { .infobox.sisterproject { display: none; } } /* styles for bordered infobox with merged rows */ .infobox.bordered .mergedtoprow td, .infobox.bordered .mergedtoprow th { border: 0; border-top: 1px solid #aaaaaa; border-right: 1px solid #aaaaaa; } .infobox.bordered .mergedrow td, .infobox.bordered .mergedrow th { border: 0; border-right: 1px solid #aaaaaa; } /* styles for geography infoboxes, e.g. countries, country subdivisions, cities, etc. */ .infobox.geography { text-align: left; border-collapse: collapse; line-height: 1.2em; font-size: 90%; } .infobox.geography td, .infobox.geography th { border-top: solid 1px #aaaaaa; padding: 0.4em 0.6em 0.4em 0.6em; } .infobox.geography .mergedtoprow td, .infobox.geography .mergedtoprow th { border-top: solid 1px #aaaaaa; padding: 0.4em 0.6em 0.2em 0.6em; } .infobox.geography .mergedrow td, .infobox.geography .mergedrow th { border: 0; padding: 0 0.6em 0.2em 0.6em; } .infobox.geography .mergedbottomrow td, .infobox.geography .mergedbottomrow th { border-top: 0; border-bottom: solid 1px #aaaaaa; padding: 0 0.6em 0.4em 0.6em; } .infobox.geography .maptable td, .infobox.geography .maptable th { border: 0; padding: 0; } /* CSS for Extension:TransformChanges */ table.changes { border:none; width:100%; } table.changes tr { margin:0; padding:0; } table.changes tr.even { background:white; } table.changes tr.odd { background:#eee; } table.changes td { margin:0; padding: 1px 4px 0 4px; vertical-align: top; } table.changes td.heading { font-size: 110%; font-weight:bold; padding-top:10px; } table.changes td.comment { width:100%; } table.changes td.talk, table.changes td.diff { font-size: 90%; } table.changes td.user, table.changes td.talk, table.changes td.diff, table.changes td.info { white-space: nowrap; } /*--------------------------------------------------| | dTree 2.05 | www.destroydrop.com/javascript/tree/ | |---------------------------------------------------| | Copyright (c) 2002-2003 Geir Landr� | |--------------------------------------------------*/ .dtree { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 11px; color: #666; white-space: nowrap; } .dtree img { border: 0px; vertical-align: middle; } .dtree a { color: #333; text-decoration: none; } .dtree a.node, .dtree a.nodeSel { white-space: nowrap; padding: 1px 2px 1px 2px; } .dtree a.node:hover, .dtree a.nodeSel:hover { color: #333; text-decoration: underline; } .dtree a.nodeSel { background-color: #c0d2ec; } .dtree .clip { overflow: hidden; } /* * Dynamic menus */ .dmenu { width: 180px } .dmenu, .dmenu ul { /* all lists */ padding: 0; margin: 0; list-style: none; } .dmenu .selflink { font-weight: normal; } .dmenu li { /* all list items */ position: relative; float: left; width: 172px; padding: 4px; z-index: 100; } .dmenu li, .dmenu li.even a, .dmenu li.odd a, .dmenu li li, .dmenu li li a, .dmenu li li li, .dmenu li li li a { color : black; } .dmenu li li { margin: 0; } .dmenu li ul { /* second-level lists */ position: absolute; left: -999em; z-index: 101; border: 1px solid #ccc; } .dmenu li ul ul { /* third-and-above-level lists */ position: absolute; left: -999em; margin: 0 0 0 0; z-index: 102; } .dmenu li.odd .submenu { width: 12px; height: 15px; float: right; background: url(/common/images/rarr-lt.png) 0 3px no-repeat; } .dmenu li.even .submenu { width: 12px; height: 15px; float: right; background: url(/common/images/rarr-dk.png) 0 3px no-repeat; } .dmenu li.odd { background: #E9EDF4; border: 2px solid #E9EDF4; } .dmenu li.even { background: #D0D8E8; border: 2px solid #D0D8E8; } .dmenu li:hover, .dmenu li.sfhover { border: 2px solid #385D8A; } .dmenu li:hover ul ul, .dmenu li:hover ul ul ul, .dmenu li.sfhover ul ul, .dmenu li.sfhover ul ul ul { left: -999em; } .dmenu li:hover ul, .dmenu li li:hover ul, .dmenu li li li:hover ul, .dmenu li.sfhover ul, .dmenu li li.sfhover ul, .dmenu li li li.sfhover ul { /* lists nested under hovered list items */ left: 182px; top: -3px; } /* --------- Extension:PageBy */ ul.pageby { float:right; clear:right; border:1px solid #60606F; background-color:#E0E0EF; font-size: 80%; margin:1ex; padding:1ex; list-style-type:none; /*
[edit] The MediaWiki:Common.js in my testwiki
/*所有用戶在加載任何頁面時,這裡的JavaScript都會加載 __FORCETOC__ *說明 *按鈕設定方式參見[[MediaWiki:Common.js編輯按鈕維護]] *設定值 *輔助處理 ****/ //功能設定 var JSConfig={ 'isEdit0':true, //設置是否顯示編輯首段按鈕 'collapseText':wgULS('隱藏▲','隱藏▲'),//指示折疊收縮的默認文字 'expandText':wgULS('顯示▼','顯示▼'),//指示折疊展開的默認文字 'autoCollapse':2, //文章少於 autoCollapse 個折疊塊時,不自動折疊 'SpecialSearchEnhancedDisabled':false//是否禁止增加其他搜索引擎 } // 相容性修正 if (window.showModalDialog && document.compatMode && document.compatMode == "CSS1Compat") { var oldWidth; var docEl = document.documentElement; function fixIEScroll() { if (!oldWidth || docEl.clientWidth > oldWidth){ doFixIEScroll(); }else{ setTimeout(doFixIEScroll, 1); } oldWidth = docEl.clientWidth; } function doFixIEScroll() { docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : ""; } document.attachEvent("onreadystatechange", fixIEScroll); attachEvent("onresize", fixIEScroll); } // 移動元素 function elementMoveto(node, refNode, pos){//默認位置爲refNode前 if(node && refNode){ var parent=refNode.parentNode; if (pos && pos=='after') {refNode=refNode.nextSibling;} try { if(refNode){ parent.insertBefore(node, refNode); }else{ parent.appendChild(node); } } catch (DOMException) {}; } } //創建元素 function createElement(tag,children,props){ var element = document.createElement(tag); if(children instanceof Array){ for(var i=0;i<children.length;i++){ var child=children[i]; if(typeof child=='string'){child=document.createTextNode(child);} if(child){element.appendChild(child);} } } if(typeof props=='object'){ for(var k in props){ switch(k){ case 'styles': var styles=props.styles; if(typeof styles=='object'){ for(var s in styles){element.style[s]=styles[s];} } break; case 'events': var events=props.events; if(typeof events=='object'){ for(var e in events){element['on'+e]=events[e];} } break; case 'class': element.className=props[k];break; default: element.setAttribute(k,props[k]); } } } return element; } //導入模組 function getWikiPath(page,paras){ paras.ctype=paras.ctype||'text'; paras.dontcountme=paras.dontcountme||'s'; paras.action=paras.action||'raw'; var url = wgScriptPath + '/index.php?title=' + encodeURI( page.replace( ' ', '_' ) ); for(var k in paras){url += '&' + k + '=' + paras[k]; } return url; } function importScript( page ) { var src= /^https?:\/\//.test(page) ? page : getWikiPath(page,{'ctype':'text/javascript'}); var scriptElem = createElement( 'script',null,{'src':src,'type':'text/javascript'} ); document.getElementsByTagName( 'head' )[0].appendChild( scriptElem ); } function importStylesheet( page ) { var sheet= /^https?:\/\//.test(page) ? page : getWikiPath(page,{'ctype':'text/css'}); var styleElem = createElement( 'style', ['@import "'+sheet+'";'], {'type':'text/css'} ); document.getElementsByTagName( 'head' )[0].appendChild( styleElem ); } /* 測試元素中是否含有指定的樣式 ************************************** * Description: 使用正則式與緩存來提高性能 * Maintainers: User:fdcn @zh.wikipedia * [[en:User:Mike Dillon]], [[en:User:R. Koot]], [[en:User:SG]] @en.wikipedia */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; })(); //設置中文語言頁 var htmlE=document.documentElement; htmlE.setAttribute("lang",wgUserLanguage); htmlE.setAttribute("xml:lang",wgUserLanguage); //返回繁簡字串 function wgULS(cn,tw,hk,sg,zh){ return {//保證每一語言有值 'zh-cn':cn||sg, 'zh-sg':sg||cn, 'zh-tw':tw||hk, 'zh-hk':hk||tw, 'zh':zh||cn||tw||hk||sg }[wgUserLanguage]; } /*** 調整編輯工具欄 mwEditButtons , mwCustomEditButtons 爲預設按鈕集合 ***/ //override original function var mwEdittoolButtons=[]; function mwInsertEditButton(parent,item) { var doClick = typeof item.doClick=='function' ? item.doClick : insertTags; var image = createElement("IMG",null, { 'width':item.width||23, 'height':22, 'class':"mw-toolbar-editbutton", 'src':item.imageFile, 'border':0, 'alt':item.speedTip, 'title':item.speedTip, 'styles':{'cursor':"pointer"}, 'events':{'click':function(){ doClick(item.tagOpen, item.tagClose, item.sampleText); return false; }} } ); if (item.imageId) { image.id = item.imageId; mwEdittoolButtons[image.id]=Image; } mwEdittoolButtons.push(image); parent.appendChild(image); return true; } /** * 插入游標所在的分段前後 * sectReg 分段的正則運算式 * author & maintainer : fdcn@zhwiki */ function insertSect(sectReg,pre,post){ var txtarea = document.editform.wpTextbox1; insertTags('<sectins>','</sectins>',''); var reg=/<sectins><\/sectins>/g; var scrollTop = txtarea.scrollTop; var text=txtarea.value; var index=-1; text=text.replace(reg,function(m,i){index=i;return '';}); if(index>-1){ sectReg.lastIndex=0; var currentIndex=0,startIndex=0,endIndex=0; while(true){ var item= sectReg.exec(text); if(!item){ endIndex=text.length; break; } currentIndex=item.index; if(currentIndex<index){ startIndex=sectReg.lastIndex; continue; }else{ endIndex=currentIndex; break; } } txtarea.value=text.substring(0, startIndex)+pre+text.substring(startIndex,endIndex)+post+text.substr(endIndex); }else{ txtarea.value=text.replace(/<sectins>/g,pre).replace(/<\/sectins>/g,post); } txtarea.scrollTop = scrollTop; } /** * 插入游標所在的行前後 * isMultiLine 是否應用于每一行前後 * author & maintainer : fdcn@zhwiki */ function insertLine(pre,sampletext,post,isMultiLine){ var txtarea = document.editform.wpTextbox1; var scrollTop = txtarea.scrollTop; insertTags('<sectins>','</sectins>',''); var text=txtarea.value .replace(/\r/g,"") .replace(/^(.*)<sectins>/m,'<sectins>$1') .replace(/<\/sectins>(.*)$/m,'$1<\/sectins>') .replace(/<sectins> *<\/sectins>/,'<sectins>'+sampletext+'<\/sectins>'); if(/<sectins>((?:a|[^a])*)<\/sectins>/.exec(text)){ var leftContext=RegExp.leftContext; var rightContext =RegExp.rightContext ; var matchContext= isMultiLine ? RegExp.$1.replace(/$/mg,'<endline\/>').replace(/^/mg,pre).replace(/<endline\/>/g,post) : pre+RegExp.$1+post; } txtarea.value=leftContext+matchContext+rightContext; //IE if (document.selection && !is_gecko) { var range=txtarea.createTextRange(); var searchText=matchContext.replace(/\n.*/g,''); range.findText(searchText); range.select(); // Mozilla }else if(txtarea.selectionStart || txtarea.selectionStart == '0') { txtarea.selectionStart = leftContext.length; txtarea.selectionEnd = txtarea.selectionStart +matchContext.length; txtarea.scrollTop = scrollTop; } // reposition cursor if possible if (txtarea.createTextRange) { txtarea.caretPos = document.selection.createRange().duplicate(); } } if (mwCustomEditButtons){ var doML=function(pre,post,sampletext){insertLine(pre,sampletext,post,true);} //prepare buttons function addEditButton(imageFile, tagOpen, sampleText, tagClose, speedTip, imageId){ var item={ "imageId": imageId, "imageFile": "http://studwww.nou.edu.tw/~e-live/image/" + imageFile, "tagOpen": tagOpen, "sampleText": sampleText, "tagClose": tagClose, "speedTip": speedTip }; mwCustomEditButtons.push(item); return item; } //define buttons var __temp,item; addEditButton('wiki_buttons/Internal_link_icon.png','[[','鏈結標題',']]','內部鏈結','btnInterLink'); addEditButton("wiki_buttons/Button_sub_link.png","[[條目#","章節|文本","]]","內部段落鏈結",'btnInterHashLink' ); addEditButton("wiki_buttons/Button_category02.png","[[:Category:","分類名","]]","分類鏈結",'btnCategoryLink'); addEditButton('wiki_buttons/Media_icon.png','[[Media:','Example.ogg',']]','媒體文件鏈結','btnMediaLink'); addEditButton('wiki_buttons/External_link_icon.png','[','http://www.example.com 鏈結標題',']','外部鏈結(加字首 http://)','btnExtraLink'); addEditButton("wiki_buttons/Template_button.png","{{","樣板名","}}","應用樣板",'btnTemplateLink'); addEditButton("wiki_buttons/Button_category03.png","[[Category:","分類名","]]","分類",'btnCategory'); addEditButton("wiki_buttons/Button_redir.png","#REDIRECT [[","目標條目名","]]","重定向",'btnRedirect'); addEditButton('wiki_buttons/Image_icon.png','[[Image:','Example.jpg',']]','嵌入圖像','btnImage'); addEditButton("wiki_buttons/Button_advanced_image.png", "<imagemap>\n", "Image:圖像名 | 100px | 描述\nrect 0 0 50 50 [[鏈接]]\ncircle 50 50 20 [[鏈接B]]\ndesc bottom-left\n", "</imagemap>", wgULS("高級畫像","高級畫像"), 'btnAdvImage' ); __temp="\nImage:PictureFileName.jpg|"+wgULS("圖片題注","圖片題注"); addEditButton("wiki_buttons/Btn_toolbar_gallery.png","<gallery>",__temp+__temp,"\n</gallery>",wgULS("畫廊","畫廊"),'btnGallery' ); addEditButton('wiki_buttons/Math_icon.png','\<</span>math\>','插入數學公式','\<</span>/math\>','插入數學公式(LaTeX)','btnMath'); addEditButton('wiki_buttons/Nowiki_icon.png','\<</span>nowiki\>','插入非格式文本','\<</span>/nowiki\>','插入非格式文本','btnNowiki'); item=addEditButton('wiki_buttons/Button_sig.png','[[User:Michael|Michael]]','','','簽名(無日期)','btnSigOnly') .width = 11; addEditButton('wiki_buttons/Signature_icon.png','—[[User:Michael|Michael]] 2008年1月12日 (六) 15:26 (UTC)','','','簽名','btnSignature'); addEditButton('wiki_buttons/Button_headline2.png','== ','標題文字','==','2級標題文字','btnHeadline2') .doClick=doML; addEditButton("wiki_buttons/Button_headline3.png","=== ","標題文本","===","三級子標題",'btnHeadline3' ) .doClick=doML; addEditButton('wiki_buttons/H-line_icon.png','\n----\n','','',wgULS('水平線','水平線'),'btnHr' ); addEditButton("wiki_buttons/Button_enter.png","<br />","","", wgULS("換行","換行"),'btnBr' ); addEditButton('wiki_buttons/Bold_icon.png','\'\'\'','粗體','\'\'\'','粗體','btnBold'); addEditButton('wiki_buttons/Italic_icon.png','\'\'','斜體','\'\'','斜體','btnItalic'); __temp=wgULS("下劃線","下劃線"); addEditButton('wiki_buttons/Button_underline.png','<span style="text-decoration: underline;">',__temp,'</span>',__temp,'btnUnderline'); __temp=wgULS("刪除線","刪除線"); addEditButton("wiki_buttons/Button_strike.png","<del>",__temp,"</del>",__temp,'btnStrike'); __temp=wgULS("左對齊","左對齊"); addEditButton("wiki_buttons/Button_align_left.png",'<div style="text-align: left;">\n',__temp,"\n</div>",__temp,'btnAlignLeft') .doClick=doML; addEditButton("wiki_buttons/Button_center.png",'<div style="text-align: center;">\n',"居中","\n</div>","居中",'btnAlignCenter') .doClick=doML; __temp=wgULS("右對齊","右對齊"); addEditButton("wiki_buttons/Button_align_right.png",'<div style="text-align: right;">\n',__temp,"\n</div>",__temp,'btnAlignRight') .doClick=doML; __temp=wgULS("上標","上標"); addEditButton("wiki_buttons/Button_sup_letter.png","<sup>",__temp,"</sup>", __temp,'btnSup'); __temp=wgULS("下標","下標"); addEditButton("wiki_buttons/Button_sub_letter.png","<sub>",__temp,"</sub>",__temp,'btnSub'); addEditButton("wiki_buttons/Button_big.png",'<span style="font-size:larger;">',"放大","</span>","放大",'btnBig'); __temp=wgULS("縮小","縮小"); addEditButton("wiki_buttons/Button_small.png",'<span style="font-size:smaller;">',__temp,"</span>",__temp,'btnSmall'); addEditButton("wiki_buttons/Button_shifting.png",":","","","縮進",'btnShift' ) .doClick=doML; addEditButton("wiki_buttons/Btn_toolbar_enum.png","#","","","數字列表",'btnEnum' ) .doClick=doML; addEditButton("wiki_buttons/Btn_toolbar_liste.png","*","","","符號列表",'btnList' ) .doClick=doML; addEditButton("wiki_buttons/Button_definition_list.png","; ","釋義",": ","定義文本",'btnDefine' ) .doClick=doML; addEditButton("wiki_buttons/Button_font_color.png",'<span style="color: ColorName;">',"彩色文本","</span>","彩色文本",'btnColor'); addEditButton("wiki_buttons/Button_blockquote.png",'{\{quote|\n',"引文","\n}\}","塊引用",'btnQuote' ); addEditButton("wiki_buttons/Button_code.png","<code>","代碼","</code>","代碼文本",'btnCode' ); addEditButton('wiki_buttons/Tt_icon.png','<tt>','tt文字註記','</tt>','tt文字註記','btnTt'); addEditButton('wiki_buttons/Button_pre.png','<pre>','pre_text文字標籤','</pre>','pre_text文字標籤','btnPretext'); addEditButton('wiki_buttons/Button_source.png','<source lang="php">','[http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi 前往查看]','
','高亮度語法標示','btnSource');
addEditButton("wiki_buttons/Button_hide_comment.png","","注釋或隱藏文字",'btnComment' ); addEditButton("wiki_buttons/Button_array.png",'\n{| border="1" \n|- \n| 第一部分 || 第二部分 \n|- \n| 第三部分 || 第四部分',"","\n|}\n","插入表格",'btnTable'); addEditButton('wiki_buttons/Button_array_excel.png','<tab width=100% class="wikitable sortable">','\n姓名 分數\n張三 65\n李四 75\n','</tab>','MS Excel相容表格','btnArrayExcel'); __temp=wgULS("參考","參考"); addEditButton("wiki_buttons/Button_ref.png","[1]", __temp,'btnRef' ); __temp=wgULS("同項參考","同項參考"); addEditButton("wiki_buttons/Button_ref_adv.png",'[2]', __temp,'btnRef2' ) .width = 12;
addEditButton("wiki_buttons/Button_refs.png",'\n==參考文獻==\n
',,, wgULS("參考文獻區","參考文獻區"),'btnReferences' );
delete __temp; addOnloadHook(function(){ mwEditButtons=[]; }); }
// 調整工具 hookEvent("load",function(){ var wpEditToolbar=document.getElementById("toolbar"); if(wpEditToolbar){ //移動下拉選單 var dropdownListEditTools=document.getElementById("dropdownListEditTools"); if(wpEditToolbar&&dropdownListEditTools){ wpEditToolbar.appendChild(dropdownListEditTools); } //dropdownListEditTools.style.display="inline"; //移動符號表 var editspecialchars=document.getElementById("editpage-specialchars"); elementMoveto(editspecialchars , wpEditToolbar , 'after' ); } });
/**** 增加特殊符號的下拉選單 ****/ /**
* add menu for selecting subsets of secial characters * must match MediaWiki:Edittools * Maintainers: User:fdcn @zh.wikipedia */
addOnloadHook(function(){ var edittools = document.getElementById('editpage-specialchars'); if (edittools) { // select subsection of special characters var lines = edittools.getElementsByTagName('p'); function chooseCharSubset() { var s=menu.selectedIndex; for (var i = 0,p; p=lines[i] ; i++) { p.style.display = i == s ? 'inline' : 'none'; } }
var menu=createElement("select",null,{ 'styles':{'display':"inline"}, 'events':{'change':chooseCharSubset} }); for (var i = 0,p; p=lines[i] ; i++) { menu.options[i]=new Option(p.title?p.title:p.id); } edittools.insertBefore(menu,edittools.firstChild); chooseCharSubset(); } });
/**** 尋找及取代工具 ****/ var sr$t; var sr$f; var sr$s; var sr$r; var sr$w; var sr$i; var sr$re; var sr$mc;
function $e(id) {return document.getElementById(id)}
function srBack() {
if (sr$s.value==) {sr$t.focus(); return }
if (sr$re.checked) {
var searchString = sr$s.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
}
searchString="("+searchString+")(?![\\s\\S]*"+searchString+")";
if (sr$mc.checked)
var re=new RegExp(searchString);
else
var re=new RegExp(searchString,"i");
var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart));
if (!res) {
var res = re.exec (sr$t.value)
}
if (res)
{
sr$t.selectionStart=res.index;
sr$t.selectionEnd=res.index+res[1].length;
}
else sr$t.selectionStart=sr$t.selectionEnd;
srSync();
}
function srNext() {
if (sr$s.value==) {sr$t.focus(); return }
if (sr$re.checked) {
var searchString = sr$s.value;
} else {
searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1');
}
if (sr$mc.checked) var re=new RegExp(searchString,"g"); else var re=new RegExp(searchString,"gi");
re.lastIndex=sr$t.selectionEnd;
var res = re.exec (sr$t.value)
if (!res) {
re.las