Site Notice
hello, world
Difference between revisions of "InPageEdit-v2/SDK"
m ([InPageEdit] 没有编辑摘要 (第9部分)) |
([InPageEdit] 没有编辑摘要 (第10部分)) |
||
Line 122: | Line 122: | ||
== 版本号 == | == 版本号 == | ||
− | ''' | + | '''请勿改写此变量;这是一个变量,不是一个函数''' |
<code>InPageEdit.version</code> | <code>InPageEdit.version</code> |
Revision as of 00:09, 24 November 2019
快速编辑
InPageEdit.edit(options)
options
: {object}page
: 必须;编辑的页面名revision
: 修订版本号,如果与当前页面版本号不同则取代section
: 编辑的段落编号
最基础的调用
InPageEdit.edit({ page: mw.config.get('wgPageName') });
<html><button onclick="InPageEdit.edit({
page: mw.config.get('wgPageName')
});">测试</button></html>
快速重定向
InPageEdit.redirect(type)
type
: "string"(to/from)- from 重定向页面至此
- to 将此页面重定向到
最基础的调用
InPageEdit.redirect('from'); InPageEdit.redirect('to');
<html><button onclick="InPageEdit.redirect('from')">测试from</button> <button onclick="InPageEdit.redirect('to')">测试to</button></html>
快速删除
InPageEdit.deletepage()
?
快速重命名
InPageEdit.renamepage()
?
InPageEdit设置
InPageEdit.preference()
- 打开设置窗口
<html><button onclick="InPageEdit.preference()">测试</button></html>
比较差异
InPageEdit.quickDiff(options)
options
: {object}fromtitle
: First title to compare.fromid
: First page ID to compare. Type: integerfromrev
: First revision to compare. Type: integerfromtext
: Use this text instead of the content specified byfromtitle
,fromid
orfromrev
.frompst
: Do a pre-save transform onfromtext
. Type: boolean- <code">totitle: Second title to compare.
toid
: Second page ID to compare. Type: integertorev
: Second revision to compare. Type: integertorelative
: Compare to a relative revision offromtitle
,fromid
orfromrev
. All the other "to" options will be ignored. Possible values:prev
,next
,cur
totext
: Use this text instead of the content specified bytotitle
,toid
,torev
, ortorelative
.topst
: Do a pre-save transform ontotext
. Type: boolean
最简单的示例,比较本页面最后一次修改
InPageEdit.quickDiff({ fromtitle: mw.config.get('wgPageName'), torelative: 'prev' });
<html><button onclick="InPageEdit.quickDiff({
fromtitle: mw.config.get('wgPageName'), torelative: 'prev'
});">测试</button></html>
添加编辑链接
该模块在页面加载时将运行一次[1]
InPageEdit.articleLink(element)
element
: <element>- 缺省值:
$('#mw-content-text a:not(.new)')
- 将该链接作为编辑链接,识别并添加快速编辑链接
- 缺省值:
无示例
加载框
不建议使用[2]
InPageEdit.progress(title)
title
: "string",√boolean×- true: 将顶层加载框状态切换为已完成
- false: 关闭顶层的加载框
- string: 以字符串为标题创建加载框
function testProgress() { InPageEdit.progress('正在测试加载框……'); setTimeout(function(){ InPageEdit.progress(true); setTimeout(function(){ InPageEdit.progress(false); },3000); },5000); }
<html><button onclick="testProgress()">测试</button> <script> function testProgress() {
InPageEdit.progress('正在测试加载框……'); setTimeout(function(){ InPageEdit.progress(true); setTimeout(function(){ InPageEdit.progress(false); },3000); },5000);
} </script></html>
更新日志
Wjghj Project 的服务器不是高带宽高并发服务器,请不要过于频繁调用此模块[3]
InPageEdit.versionInfo()
- 调出更新日志的弹窗,可以在不打开Wjghj Common Wiki的情况下查看更新日志
- <html><button onclick="InPageEdit.versionInfo()">测试</button></html>
版本号
请勿改写此变量;这是一个变量,不是一个函数
InPageEdit.version
- 获取版本号
- Response: 字符串 →
<html><span onclick="$(this).text(InPageEdit.version)">获取</span></html>
- Response: 字符串 →
实例演示
通过IPE的扩展接口,您可以制作很多自定义插件,这里提供一些简单、实用的代码实例
在编辑链接后添加快速编辑链接
此示例代码已在Vector、Timeless以及Hydra皮肤上测试可用
源代码 |
---|
$(function(){ $('#ca-view').after( $('<li>',{ id:'ca-quick-edit', class:'collapsible' }).append( $('<span>').append( $('<a>',{ href: 'javascript:void(0)' }) .text('快速编辑') .click(function(){ InPageEdit.edit({ page: mw.config.get('wgPageName'), revision: mw.config.get('wgRevisionId') }); }) ) ) ); }); |
IPE原版工具盒
这里是IPE原版右下角工具盒的源代码,只要您明白了其中的原理,便完全可以自由自定义一个工具盒
原版代码 |
---|
// ipe工具盒 $('body').append( '<div id="ipe-edit-toolbox">' + // group1 上方的一列按钮 '<div class="btn-group">' + '<div class="btn-tip-group"><div class="btn-tip">快速编辑</div><div id="edit-btn" class="ipe-toolbox-btn material-icons">edit</div></div>' + '<div class="btn-tip-group"><div class="btn-tip">重定向至此</div><div id="redirectfrom-btn" class="ipe-toolbox-btn material-icons">flight_land</div></div>' + '<div class="btn-tip-group"><div class="btn-tip">重定向到</div><div id="redirectto-btn" class="ipe-toolbox-btn material-icons">flight_takeoff</div></div>' + '<div class="btn-tip-group"><div class="btn-tip">自定义设置</div><div id="preference-btn" class="ipe-toolbox-btn material-icons">settings</div></div>' + '</div>' + // group2 左边的一排按钮 '<div class="btn-group group2"><div style="display: flex;">' + '<div class="btn-tip-group"><div class="btn-tip">删除本页面</div><div id="deletepage-btn" class="ipe-toolbox-btn material-icons">delete_forever</div></div>' + '<div class="btn-tip-group"><div class="btn-tip">重命名页面</div><div id="renamepage-btn" class="ipe-toolbox-btn material-icons">format_italic</div></div>' + '<div class="btn-tip-group"><div class="btn-tip">关于&帮助</div><div id="about-btn" class="ipe-toolbox-btn material-icons">help_outline</div></div>' + '</div></div>' + '<div class="ipe-toolbox-btn material-icons" id="toolbox-toggle">add</div>' + '</div>'); $('#ipe-edit-toolbox #toolbox-toggle').click(function () { $('#ipe-edit-toolbox #toolbox-toggle').toggleClass('opened'); $('#ipe-edit-toolbox .btn-group').toggle(100); }); $('body > *:not(#ipe-edit-toolbox)').click(function () { $('#ipe-edit-toolbox #toolbox-toggle').removeClass('opened'); $('#ipe-edit-toolbox .btn-group').hide(100); }); $('#ipe-edit-toolbox .ipe-toolbox-btn').click(function () { switch ($(this).attr('id')) { case 'toolbox-toggle': break; case 'edit-btn': InPageEdit.edit({ page: mw.config.get('wgPageName'), revision: mw.config.get('wgRevisionId') }); break; case 'redirectfrom-btn': InPageEdit.redirect('from'); break; case 'redirectto-btn': InPageEdit.redirect('to'); break; case 'preference-btn': InPageEdit.preference(); break; case 'deletepage-btn': InPageEdit.deletepage(); break; case 'renamepage-btn': InPageEdit.renamepage(); break; case 'about-btn': mw.loader.load('https://common.wjghj.cn/js/InPageEdit-v2.js/about'); break; default: ssi_modal.notify('info', { className: 'in-page-edit', title: '暂未推出', content: '抱歉,这个功能还在开发中~' }); } }); |
注释
- ↑ 当页面为文章页时,会以以下参数自动运行一次:
InPageEdit.articleLink($('#mw-content-text a:not(.new)'))
- ↑ 这是一个内部模块,用于在特定步骤遮挡屏幕阻止用户的其他操作,不应该单独使用。
如果您喜欢IPE风格的progress-bar,请使用该部件:
<div class="ipe-progress" style="width:可规定一个长度"><div class="progress-bar"></div></div>
- ↑ 每调用一次该模块,就会向Wjghj_Project的服务器发送一次需要处理的get请求,这会给服务器带来一定的负荷