$1

来自Mooncell - 玩家共同构筑的FGO中文Wiki
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 历史(Mac为Opera → Preferences),或按Ctrl-Shift-Del,然后清除浏览数据 → 勾选“已缓存的图片和文件” → 清除数据
//
//  insertTemplate.js
//
//  Created by 风飏 on 2018-03-23.
//  Copyright 2018 风飏. All rights reserved.
//


if ($.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) >= 0 
	&& mw.config.get('wgPageContentModel') === 'wikitext')
{
var pages = [
// 文本格式
{
	id: 'page-textformat',
	label: '文本格式',
	templates: [
	{ 
		display: "(空)", 
		title: "插入转义的空格符",
		wikitext: ' ',
	},
	{ 
		display: "< >", 
		title: "插入转义的尖括号",
		wikitext: '&lt;$1&gt;',
	},
	{ 
		display: "[ ]", 
		title: "插入转义的方括号",
		wikitext: '&#91;$1&#93;',
	},
	{ 
		display: "换行", 
		title: "<br/>:插入换行符",
		wikitext: '<br/>',
	},
	{ 
		display: "注释", 
		title: "<!-->:插入注释",
		wikitext: '<!-- $1 -->',
	},
	{ 
		display: "非Wiki文本", 
		title: "<nowiki>:插入一段不进行wiki语法解析的文本",
		wikitext: '<nowiki>$1</nowiki>',
	},
	{ 
		display: "删除", 
		wikitext: '<del>$1</del>',
	},
	{ 
		display: "划掉", 
		wikitext: '<s>$1</s>',
	},
	{ 
		display: "强调", 
		wikitext: '<em>$1</em>',
	},
	{ 
		display: "着重", 
		wikitext: '<strong>$1</strong>',
	},
	{ 
		display: "下划线", 
		wikitext: '<u>$1</u>',
	},
	{ 
		display: "小号字", 
		wikitext: '<small>$1</small>',
	},
	{ 
		display: "大号字", 
		wikitext: '<big>$1</big>',
	},
	{ 
		display: "代码", 
		wikitext: '<code>$1</code>',
	},
	{ 
		display: "按键", 
		title: '<kbd>:标记用户通过键盘输入的内容',
		wikitext: '<kbd>$1</kbd>',
	},
	{ 
		display: "输出", 
		title: '<samp>:标记程序输出的内容',
		wikitext: '<samp>$1</samp>',
	},
	{ 
		display: "红色文本", 
		title: '<span>:带颜色的文本',
		wikitext: '<span style="color:red;">$1</span>',
	},
	{ 
		display: "{{黑幕}}", 
		title: "一段用黑色遮罩的文字",
		wikitext: '{{黑幕|$1}}',
		link: '模板:黑幕',
		$1: '被遮罩的文本',
	},
	{ 
		display: "{{注音}}", 
		title: "在一段文字顶端添加注音",
		wikitext: '{{注音|$1|(文本的注音)}}',
		link: '模板:注音',
		$1: '显示的文本',
	},
	{ 
		display: "{{Ruby}}", 
		title: "为中二病词语做注音",
		wikitext: '{{Ruby|$1|(文本的注音)}}',
		link: '模板:Ruby',
		$1: '显示的文本',
	},
	{ 
		display: "{{划掉重说}}", 
		title: "划掉前面的话重新说",
		wikitext: '{{划掉重说|$1|(重说的内容)}}',
		link: '模板:划掉重说',
		$1: '划掉的内容',
	},
	{ 
		display: "{{悬浮框}}", 
		title: "一段鼠标悬浮后会显示提示的文字",
		wikitext: '{{悬浮框|$1|(鼠标移动上去时显示的内容)}}',
		link: '模板:悬浮框',
		$1: '显示的内容',
	},
	{ 
		display: "{{马赛克}}", 
		title: "对一段文字进行模糊处理",
		wikitext: '{{马赛克|$1|<!--模糊度(默认10)-->}}',
		link: '模板:马赛克',
		$1: '要打码的内容',
	},
	
	],
},

// 页面编辑
{
	id: 'page-pageedit',
	label: '页面编辑',
	templates: [
	{ 
		display: "二级标题", 
		wikitext: '== $1 ==',
	},
	{ 
		display: "页面链接", 
		title: '[[xxx]]:指向某个页面的超链接',
		wikitext: '[[$1|(显示文字)]]',
		$1: '页面名称',
	},
	{ 
		display: "外部链接", 
		title: '[xxx]:指向外部网页的超链接',
		wikitext: '[$1 (显示文字)]',
		$1: 'http://www.XXX.com/page',
	},
	{ 
		display: "参考来源", 
		title: '<ref>:为一段文字增加参考链接',
		wikitext: '<ref>$1</ref>',
	},
	{ 
		display: "图片", 
		title: '[[文件]]:插入一张图片',
		wikitext: '[[文件:$1|link=]]',
		$1: '文件名',
	},
	{ 
		display: "代码区块", 
		title: '<pre>:插入一段代码',
		wikitext: '<pre>\n$1\n</pre>',
	},
	{ 
		display: "居中区块", 
		title: '<center>:使一些内容居中排列',
		wikitext: '<center>$1</center>',
	},

//魔术字
	{ 
		display: "页面名字", 
		title: "插入页面的名字",
		wikitext: '{{PAGENAME}}',
	},
	{ 
		display: "页面显示名", 
		title: "置于页面顶端,用于更改页面显示的标题",
		wikitext: '{{DISPLAYTITLE: $1}}',
		$1: '要显示的标题',
	},
	{ 
		display: "隐藏目录", 
		title: "隐藏页面的目录",
		wikitext: '__NOTOC__',
	},
	{ 
		display: "目录", 
		title: "在此处插入目录(忽略__NOTOC__的设置)",
		wikitext: '__TOC__',
	},
	{ 
		display: "隐藏章节编辑", 
		title: "隐藏章节标题旁边的编辑链接",
		wikitext: '__NOEDITSECTION__',
	},

// 页面信息
	{ 
		display: "分类", 
		title: "为页面添加分类",
		wikitext: '[[分类:$1]]',
	},
	{ 
		display: "重定向", 
		title: "置于页面顶端,将页面重定向到另一个页面",
		wikitext: '#重定向 [[$1]]',
		$1: '页面名称',
	},
	
// CSS与JS等

	{ 
		display: "<blockquote>", 
		title: '引用了某人的一段话',
		wikitext: '<blockquote>$1</blockquote>',
	},
	{ 
		display: "<style>", 
		title: '添加CSS样式表',
		wikitext: '<style>\n/*<nowiki>*/\n$1\n/*</nowiki>*/\n</style>',
	},
	{ 
		display: "<.timeline>", 
		title: '添加垂直时间线',
		wikitext: 
'<div class="timeline">\n$1\n</div>',
		$1: '; 2018年2月30日\n: 文字表述',
	},
	{ 
		display: "<.giffer>", 
		title: '使GIF图片可以播放暂停的小工具',
		wikitext: '<div class="giffer">$1</div>\n<joymescript argument="giffer" />',
		$1: '[[File: 文件名.gif]]',
	},
	
	]
},

// 页内模板
{
	id: 'page-templateinpage',
	label: '页内模板',
	templates: [
	{ 
		display: "{{小图标}}", 
		title: "舰娘小头像和舰娘名字",
		wikitext: '{{小图标|$1}}',
		link: '模板:小图标',
		$1: '(舰娘的名字)',
	},
	{ 
		display: "{{#舰娘图标}}", 
		title: "舰娘带框头像和舰娘名字",
		wikitext: 
'{{#invoke: 舰娘图标|带框头像文字\
\n| $1\
\n| 文字上色 = 2\
\n}}',
		link: '模块:舰娘图标#.E5.B8.A6.E6.A1.86.E5.A4.B4.E5.83.8F.E6.96.87.E5.AD.97',
		$1: '(舰娘的名字)',
	},
	{ 
		display: "{{小图标2}}", 
		title: "装备小图标和装备名字",
		wikitext: '{{小图标2|$1}}',
		link: '模板:小图标2',
		$1: '(装备的名字)',
	},
	{ 
		display: "{{B站视频}}", 
		title: "插入一个哔哩哔哩的视频",
		wikitext: '{{B站视频|$1}}',
		link: '模板:B站视频',
		$1: 'av号',
	},
	{ 
		display: "{{面包屑}}", 
		wikitext: '{{面包屑|$1}}',
		link: '模板:面包屑',
	},
	{ 
		display: "{{InfoBox}}", 
		title: "置于页面顶端的页面消息框",
		wikitext: 
'{{InfoBox \
\n| width= 80%\
\n| color= #c90\
\n| text= <big><b>$1</b></big>\
\n| image= <!-- 图片文件 -->\
\n}}\
\n',
		link: '模板:InfoBox',
		$1: '(显示的文字)',
	},
	{ 
		display: "{{舰娘消息框}}", 
		title: "舰娘的消息框",
		wikitext: '{{舰娘消息框|$1|(显示的文本)|(稀有度)}}',
		link: '模板:舰娘消息框',
		$1: '(舰娘名字)',
	},
	{ 
		display: "{{人物对话}}", 
		title: "模拟舰娘的聊天对话",
		wikitext: '{{人物对话|$1|(显示的内容)|(备注)}}',
		link: '模板:人物对话',
		$1: '(舰娘名字)',
	},
	{ 
		display: "{{提示}}", 
		title: "页面内蓝色消息框,用来显示提示信息",
		wikitext: '{{提示|$1}}',
		link: '模板:提示',
	},
	{ 
		display: "{{注意}}", 
		title: "页面内黄色消息框,用来显示注意信息",
		wikitext: '{{注意|$1}}',
		link: '模板:注意',
	},
	{ 
		display: "{{警告}}", 
		title: "页面内黄色消息框,用来显示警告信息",
		wikitext: '{{警告|$1}}',
		link: '模板:警告',
	},
	{ 
		display: "{{折叠面板}}", 
		title: "折叠面板",
		wikitext: 
'{{折叠面板|开始|主框=1}}\
\n{{折叠面板|标题=标题1|选项=1|主框=1|样式=info|展开=是}}\
\n$1\
\n{{折叠面板|内容结束}}\
\n{{折叠面板|标题=标题2|选项=2|主框=1|样式=info}}\
\n\
\n{{折叠面板|内容结束}}\
\n{{折叠面板|结束}}\
\n',
		link: '模板:折叠面板',
	},
	{ 
		display: "{{#选项卡面板}}", 
		title: "选项卡面板",
		wikitext: 
'{{#invoke: 选项卡面板| 解析\
\n| 样式=primary\
\n| 标签样式=font-weight:bolder;\
\n| 标签1=\
\n| 标签2=\
\n| 标签3=\
\n| 选中=1\
\n| ID1=\
\n| ID2=\
\n| ID3=\
\n| 内容1=$1\
\n| 内容2=\
\n| 内容3=\
\n}}\
\n',
		link: '模块:选项卡面板',
	},
	{ 
		display: "{{防盗图片}}", 
		title: "为你的图片增加水印",
		wikitext: '{{防盗图片|$1|'+mw.config.get("wgUserName")+'|尺寸=<!--可留空,限制图片宽度,不加“px”-->|位置=<!--留空居左,可选“居中”或“居右”-->}}',
		link: '模板:防盗图片',
		$1: '图片名称',
	},
	
//页面信息
	{ 
		display: "{{消歧义}}", 
		title: "置于页面顶端,标记页面标题存在歧义",
		wikitext: 
'{{消歧义|本条目描述=$1|另一含义= |另一条目名= }}',
		link: '模板:消歧义',
	},
	{ 
		display: "{{消歧义页}}", 
		title: "置于页面顶端,标记页面是消除词条歧义的页面",
		wikitext: '{{消歧义页}}',
		link: '模板:消歧义页',
	},
	]
},

// 新页面
{
	id: 'page-other',
	label: '其他',
	templates: [
	{ 
		display: "模板页面", 
		title: "为一个刚刚创建的模板填充基本内容",
		wikitext: 
'<includeonly>(引用模板时插入的内容)\
\n</includeonly><noinclude>\
\n(模板用途的说明)\
\n== 参数列表 ==\
\n(介绍模板的参数)\
\n<pre>\
\n	#1		第一参数用于...\
\n</pre>\
\n== 示例 ==\
\n(演示模板的使用)\
\n代码\
\n<pre>	(演示模板的代码)\
\n</pre>\
\n显示为\
\n(演示模板的代码)\
\n</noinclude>\
',
	},
	{ 
		display: "舰娘页面", 
		title: "为一个刚刚创建的舰娘页面填充基本内容",
		wikitext: 
'{{舰娘图鉴 \
\n|分组=\
\n|特殊底色=\
\n|型号=\
\n|名称='+mw.config.get("wgPageName")+'\
\n|和谐名=\
\n|英文名=\
\n|编号=\
\n|类型=\
\n|初始星级=<!--选择 【★☆☆☆/★★☆☆☆/★★☆☆☆/★★★☆☆☆】 -->\
\n|稀有度=<!--选择【普通/稀有/精锐/超稀有/最高方案】-->\
\n|阵营=\
\n|掉落点=\
\n|活动掉落点=\
\n|耗时=\
\n|营养价值={{强化值|炮击=|雷击=|航空=|装填=}}\
\n|退役收益=\
\n|图鉴耐久=\
\n|图鉴防空=\
\n|图鉴机动=\
\n|图鉴航空=\
\n|图鉴雷击=\
\n|图鉴炮击=\
\n|装甲类型=\
\n|初始耐久=\
\n|初始装填=\
\n|初始炮击=\
\n|初始雷击=\
\n|初始机动=\
\n|初始防空=\
\n|初始航空=\
\n|初始消耗=\
\n|初始反潜=\
\n|初始氧气=<!--【潜艇填写】-->\
\n|初始弹药量=<!--【潜艇填写】-->\
\n|满级耐久=\
\n|满级装填=\
\n|满级炮击=\
\n|满级雷击=\
\n|满级机动=\
\n|满级防空=\
\n|满级航空=\
\n|满级消耗=\
\n|满级反潜=\
\n|Lv1第一行狩猎范围=<!--【潜艇填写】-->\
\n|Lv1第二行狩猎范围=<!--【潜艇填写】-->\
\n|Lv1第三行狩猎范围=<!--【潜艇填写】-->\
\n|Lv1第四行狩猎范围=<!--【潜艇填写】-->\
\n|Lv1第五行狩猎范围=<!--【潜艇填写】-->\
\n|Lv1第六行狩猎范围=<!--【潜艇填写】-->\
\n|Lv1第七行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第一行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第二行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第三行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第四行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第五行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第六行狩猎范围=<!--【潜艇填写】-->\
\n|Lv2第七行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第一行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第二行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第三行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第四行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第五行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第六行狩猎范围=<!--【潜艇填写】-->\
\n|Lv3第七行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第一行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第二行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第三行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第四行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第五行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第六行狩猎范围=<!--【潜艇填写】-->\
\n|Lv4第七行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第一行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第二行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第三行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第四行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第五行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第六行狩猎范围=<!--【潜艇填写】-->\
\n|Lv5第七行狩猎范围=<!--【潜艇填写】-->\
\n|航速=\
\n|技能1名=\
\n|技能1=\
\n|技能2名=\
\n|技能2=\
\n|技能3名=\
\n|技能3=\
\n|技能4名=\
\n|技能4=\
\n|突破1阶效果=\
\n|突破2阶效果=\
\n|突破3阶效果=\
\n|1号槽装备类型=\
\n|2号槽装备类型=\
\n|3号槽装备类型=\
\n|1号槽装备效率初始=\
\n|2号槽装备效率初始=\
\n|3号槽装备效率初始=\
\n|1号槽装备效率满破=\
\n|2号槽装备效率满破=\
\n|3号槽装备效率满破=\
\n|1号槽满破武器数=\
\n|2号槽满破武器数=\
\n|3号槽满破武器数=\
\n|1号槽满破预装填数=\
\n|2号槽满破预装填数=\
\n|3号槽满破预装填数=\
\n|装备1=\
\n|装备2=\
\n|装备3=\
\n|装备说明=\
\n|评价=\
\n|备注=\
\n|CV=\
\n|画师={{画师数据 | }}\
\n|微博={{画师数据 | |微博}}\
\n|推特={{画师数据 | |推特}}\
\n|P站={{画师数据 | |P站}}\
\n|获得台词=\
\n|登陆台词=\
\n|详情台词=\
\n|主界面台词=\
\n|触摸台词=\
\n|特殊触摸台词=\
\n|摸头台词=\
\n|任务台词=\
\n|任务完成台词=\
\n|邮件台词=\
\n|回港台词=\
\n|军事委托完成台词=\
\n|强化成功台词=\
\n|旗舰开战台词=\
\n|胜利MVP台词=\
\n|失败台词=\
\n|技能台词=\
\n|hp告急台词=\
\n|彩蛋台词=\
\n|主分类=\
\n|次分类=\
\n|pve配装推荐1=\
\n|pve配装1推荐人=\
\n|pve配装1推荐理由=\
\n|pve配装推荐2=\
\n|pve配装2推荐人=\
\n|pve配装2推荐理由=\
\n|pvp配装推荐1=\
\n|pvp配装1推荐人=\
\n|pvp配装1推荐理由=\
\n|pvp配装推荐2=\
\n|pvp配装2推荐人=\
\n|pvp配装2推荐理由=\
\n|实装日期=XXXX年XX月XX日\
\n|身份=\
\n|性格=\
\n|关键词=\
\n|持有物=\
\n|发色=\
\n|瞳色=\
\n|萌点=\
\n}}\
\n{{#invoke: 舰娘台词 | 台词面板 \
\n| 样式 = primary\
\n| 标题1 = 更多台词\
\n| 内容1 = {{#invoke: 舰娘台词 | 台词表格\
\n  |drop_descrip=<!--舰船描述 删除等于号后面的内容,然后填写-->\
\n  |profile =<!--自我介绍-->\
\n  |feeling1=<!--好感度-失望-->\
\n  |feeling2=<!--好感度-陌生-->\
\n  |feeling3=<!--好感度-友好-->\
\n  |feeling4=<!--好感度-喜欢-->\
\n  |feeling5=<!--好感度-爱-->\
\n  |propose=<!--誓约台词-->\
\n  }}\
\n| 标题2 = 这里填新标题\
\n| 内容2 = {{#invoke: 舰娘台词 | 台词表格\
\n  | desc = <!--皮肤描述 删除等于号后面的内容,然后填写-->\
\n  | login = <!--登陆台词-->\
\n  | detail = <!--查看详情-->\
\n  | main = <!--主界面-->\
\n  | touch = <!--触摸台词-->\
\n  | touch2 = <!--特殊触摸-->\
\n  | headtouch = <!--摸头台词-->\
\n  | mission = <!--任务提醒-->\
\n  | mission_complete = <!--任务完成-->\
\n  | mail = <!--邮件提醒-->\
\n  | home = <!--回港台词-->\
\n  | expedition = <!--委托完成-->\
\n  | battle = <!--旗舰开战-->\
\n  | win_mvp = <!--胜利台词-->\
\n  | lose = <!--战斗失败-->\
\n  | hp_warning = <!--血量告急-->\
\n  | couple_encourage = <!--彩蛋台词-->\
\n  }}\
\n| 标题3 = 这里填新标题\
\n| 内容3 = {{#invoke: 舰娘台词 | 台词表格\
\n  | desc = <!--皮肤描述 删除等于号后面的内容,然后填写-->\
\n  | login = <!--登陆台词-->\
\n  | detail = <!--查看详情-->\
\n  | main = <!--主界面-->\
\n  | touch = <!--触摸台词-->\
\n  | touch2 = <!--特殊触摸-->\
\n  | headtouch = <!--摸头台词-->\
\n  | mission = <!--任务提醒-->\
\n  | mission_complete = <!--任务完成-->\
\n  | mail = <!--邮件提醒-->\
\n  | home = <!--回港台词-->\
\n  | expedition = <!--委托完成-->\
\n  | battle = <!--旗舰开战-->\
\n  | win_mvp = <!--胜利台词-->\
\n  | lose = <!--战斗失败-->\
\n  | hp_warning = <!--血量告急-->\
\n  | couple_encourage = <!--彩蛋台词-->\
\n  }}\
\n}}\
\n==其它舰娘==\
\n{{舰娘图鉴导航}}\
\n',
		link: '模板:舰娘图鉴',
	},
	{ 
		display: "飞行器考究", 
		title: "飞行器性能数据模板",
		wikitext: 
'{{飞行器性能数据\
\n|类型=\
\n|翼展=\
\n|机长=\
\n|机高=\
\n|机翼面积=\
\n|重量=\
\n|动力装置=\
\n|最大速度=\
\n|初始爬升率=\
\n|作战半径=\
\n|航程=\
\n|升限=\
\n|武器配备=\
\n|最大挂载重量=\
\n}}\
',
		link: '模板:飞行器性能数据',
	},
	
	]
},


];

//文本编辑框
var $wpTextbox = $('textarea#wpTextbox1');

//在文本编辑框插入文本
$wpTextbox.insertWikitext = function(text, $1) {
	var t = this[0];
	var val = t.value;
	var sel = val.slice(t.selectionStart,t.selectionEnd);
	
	//最终光标位置
	var cursor_pos = t.selectionStart;
	//最终光标结束位置(默认为最终光标位置)
	var cursor_pos_end;
	//wikitext插入点位置
	var inner_pos = text.indexOf('$1');
	if (inner_pos >= 0) {
		if (sel !== '') {
			//插入前选中了文本 => 替换掉$1
			text = text.slice(0, inner_pos) 
			+ sel
			+ text.slice(inner_pos + 2);
			//移动光标到插入文本之后
			cursor_pos += text.length;
		}
		else if ($1) {
			//插入前没有选中文本,$1有默认值 => 替换掉$1
			text = text.slice(0, inner_pos) 
			+ $1
			+ text.slice(inner_pos + 2);
			//移动光标选中默认值
			cursor_pos += inner_pos;
			cursor_pos_end = cursor_pos + $1.length;
		}
		else {
			//没有选中文本,没有$1默认值
			text = text.slice(0, inner_pos) 
			+ text.slice(inner_pos + 2);
			//移动光标到$1位置
			cursor_pos += inner_pos;
		}
	}
	else {
		cursor_pos += text.length;
	}
	
	val = val.slice(0,t.selectionStart)
		+ text
		+ val.slice(t.selectionEnd);
		
	t.value = val;
	t.selectionStart = cursor_pos;
	t.selectionEnd = cursor_pos_end || cursor_pos;
	t.focus();
}

//在文本编辑框注册页面
function addToolbarPages() {

	/* 移除快速插入的【常用语法】【常用模板】 */
	$wpTextbox.wikiEditor( 'removeFromToolbar', {
		'section': 'fastinsert'
	});

	//创建工具栏页面
	var pages_data = {};
	pages.forEach(function(x,i) {
		pages_data[x.id] = {
			label: x.label,
			layout: 'characters',
			characters: []
		}
	});
	$wpTextbox.wikiEditor( 'addToToolbar', {
		sections: {
			'fastinsert': {
				'type': 'booklet',
				'label': '快速插入',
				pages: pages_data,
			}
		}
	} );

}
function modifyToolbarPages(section) {
	var pages_data = {};
	pages.forEach(function(x,i) {
		pages_data[x.id] = {
			label: x.label,
			layout: 'characters',
			characters: []
		}
	});
	section.pages = pages_data;
}

//Token按钮
function createSpanToken(data) {
	return $('<a '
		+ 'target="_blank" '
		+ (data.title ? 'title="'+data.title+'" ': '')
		+ (data.link ? 'href="/blhx/'+data.link+'" ': '')
		+ '>'
		+ data.display.replace('<', '&lt;').replace('>','&gt;')
		+ '</a>').click(data, onSpanTokenClick)
}
function onSpanTokenClick(e) {
	if (e.ctrlKey) return;
	e.preventDefault();
	$wpTextbox.insertWikitext(e.data.wikitext, e.data.$1);
}

//在注册页面中插入按钮
function insertPageTokens() {
	$pages = $('#wikiEditor-section-fastinsert > .pages');
	for (var i in pages) {
		var page_data = pages[i];
		$p = $pages.children('.page.page-'+page_data.id);
		if ($p.length === 0) continue;
		var $holder = $('<div dir="ltr">').append(
			$.map(page_data.templates, createSpanToken)
		).appendTo($p.empty());
	}
}

function initialize() {
	if ($('#wikiEditor-section-fastinsert')[0]) {
		addToolbarPages();
		insertPageTokens();
	}
	else {
		$wpTextbox.one(
			'wikiEditor-toolbar-buildSection-fastinsert',
			function(e, s) {
				modifyToolbarPages(s);
				$wpTextbox.one(
					'wikiEditor-toolbar-doneInitialSections',
					insertPageTokens
				);
			}
		);
	}
	
}

mw.loader.using('ext.wikiEditor.toolbar')
	.then(initialize);


}