Files
rappaurio-sae501_502/app/node_modules/cejs/application/net/wiki
2023-09-25 13:27:24 +02:00
..
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00
2023-09-25 13:27:24 +02:00

<!-- The first line is blank due to BOM -->
= CeJS MediaWiki module =
MediaWiki 自動化作業程式庫,主要用於編寫[[維基百科:機器人]]。


== Usage in [https://www.mediawiki.org/wiki/Manual:Interface/JavaScript mediawiki user script] (User:Example/common.js) ==
<pre><code>
if (!window.CeL) {
	window.CeL = { initializer: function() { CeL.run('application.net.wiki', CeL_initialization); } };
	mw.loader.load('https://kanasimi.github.io/CeJS/ce.js');
}
function CeL_initialization() {
	/** {Array} parsed page content */
	const parsed = CeL.wiki.parser('{{tl|t}}');
	parsed.each('template', function(token) { console.log(token.name); });

	const wiki = CeL.wiki.mw_web_session;
	// wiki.page('Wikipedia:Sandbox').edit(function(page_data) { return CeL.wiki.content_of(page_data) + '\ntest'; });
}
</code></pre>
(At 2021, The JavaScript parser of MediaWiki loader cannot read ECMAScript 2016 syntax.)

Also refer to [https://kanasimi.github.io/CeJS/_test%20suite/wikitext_parser.html the wikitext parser examples].

; Append parameter to template:
<pre><code>
const wiki = CeL.wiki.mw_web_session;
wiki.page(mw.config.get('wgPageName')).edit(function(page_data) {
	/** {Array} parsed page content */
	const parsed = CeL.wiki.parser(page_data).parse();
	parsed.each('Template:Artwork', function(token) {
		token.push('wikidata=Q27964733');
	});
	return parsed.toString();
}, {
	summary: 'test edit'
}).run(function() {
	location.reload();
});
</code></pre>

== Operation mechanism 運作機制 ==
Main initial point: [[../wiki.js]]

; Essential 必要: [[../wiki.js]] → [[namespace.js]] → [[parser.js]], [[query.js]], [[page.js]], [[Flow.js]], [[list.js]], [[edit.js]], [[task.js]]
; Optional 可選功能: [[data.js]], [[admin.js]], [[cache.js]], [[Toolforge.js]]
; Change with wikiproject page contents 隨各 wikiproject 頁面內容變化之功能: [[template_functions.js]], [[featured_content.js]]

More examples: 使用範例可參照:
<!--
const util = require('util'); new util.promisify(CeL.wiki)(...)
-->
* [https://github.com/kanasimi/wikiapi JavaScript MediaWiki API for ECMAScript 2017+] / [https://github.com/kanasimi/wikiapi/blob/master/wikiapi.js wikiapi.js]
* [https://github.com/kanasimi/wikibot Wikipedia bots demo] / [https://github.com/kanasimi/wikibot/blob/master/wiki%20loader.js wiki loader.js]
* [[/_test suite/test.js|test.js]]
* [https://kanasimi.github.io/CeJS/_test%20suite/wikitext_parser.html Wikitext parser examples. Wikitext 解析器使用例子]


== History ==
{| class="wikitable"
|+ History 沿革
! Date !! Modify
|-
| 2015/1/1 || Starting to write codes.

開始撰寫模組程式碼。
|-
| 2019/10/11 || 分拆至 wiki/*.js
|-
| 2020/5/24 || 分拆 wiki.js。基本功能僅需要 `CeL.run('application.net.wiki')`。
|}


== See also ==
* [https://www.mediawiki.org/w/api.php MediaWiki API help]