A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | MediaWiki server | on-wiki JavaScript | on-wiki templates | external clients (community and 3rd party) | |||||||||||||||||||||||
2 | Extension PHP | Gadget | User script | Lua module | Wikitext template | Toolforge (web/bot/jupyter) | External app/bot | ||||||||||||||||||||
3 | Purpose | Extending capabilities of MediaWiki to provide optional components that can be enabled per-wiki. | Adding or changing interface and output for users, available to others | Adding or changing interface and output for oneself | Structured modeling and automated formatting of content (scripted) | Structured modeling and automated formatting of content (markup) | Automated editing, content extraction and analysis, especially based directly on a database replica. | Automated editing, content extraction and analysis, etc | |||||||||||||||||||
4 | |||||||||||||||||||||||||||
5 | Read application state and invoke services | Full access, via DAO and PHP service objects | via public Web API | via public Web API | limited, via Lua library | minimal, via parser functions | SQL queries on sanitized replica, public Web API | via public Web API | |||||||||||||||||||
6 | Change application state (page edits, user accounts) | Full access, via DAO and PHP service objects | via public Web API | via public Web API | - | - | via public Web API | via public Web API | |||||||||||||||||||
7 | Capability | Custom data storage | SQL, strict requriements, update framework support | JSON wiki pages | JSON wiki pages | - | - | few restrictions, manual updates | no restrictions, manual updates | ||||||||||||||||||
8 | Receive events | API call from internal service (changeprop) | - | - | - | - | via public Web API stream | via public Web API stream | |||||||||||||||||||
9 | Modify user interactions | JS API and DOM | JS API and DOM | JS API and DOM | infoboxes, etc | infoboxes, etc | only through Gadget | - | |||||||||||||||||||
10 | Generate or modify visible content | Parser hooks | modify DOM | modify DOM | generate wikitext | generate wikitext | only through Gadget | - | |||||||||||||||||||
12 | Process wikitext dumps | - | - | - | - | - | toolforge hosting | download | |||||||||||||||||||
13 | |||||||||||||||||||||||||||
14 | Language | PHP + SQL | CSS / JavaScript | CSS / JavaScript | Lua | wikitext | anything (Python, PHP, Node, etc.) | anything (Python, PHP, Node, etc.) | |||||||||||||||||||
15 | Framework support | Strong (MediaWiki) | Limited but flexible (JS API) | Limited but flexible (JS API) | Strong but restrictive (Lua libraries) | Limited and restrictive (parser functions) | Weak (except for pywikibot) | Weak (except for pywikibot) | |||||||||||||||||||
16 | Execution | Server (PHP) | Web Browser | Web Browser (limited audience) | Server (LuaSandbox) | Server (Parser) | Toolforge | anywhere | |||||||||||||||||||
17 | Trigger | Server-side callbacks (hooks and handlers) | JavaScript events (UI actions) | JavaScript events (UI actions) | Page rendering (on edit) | Page rendering (on edit) | Manual/periodic | Manual/periodic | |||||||||||||||||||
18 | |||||||||||||||||||||||||||
19 | Version control | public git | public wiki page | public wiki page | public wiki page | public wiki page | public git (usually) | anywhere (may be private) | |||||||||||||||||||
20 | Deployment | automatic weekly & self-service backports | automatic instantly | automatic instantly | automatic instantly | automatic instantly | self-service | self-service | |||||||||||||||||||
21 | Code Review | Gerrit +2 | Peer admins | none | Peer editors | Peer editors | none | none | |||||||||||||||||||
22 | Audience impact | everyone by default | opt-in users | personal or shared peer-to-peer | everyone by default | everyone by default | opt-in users | personal | |||||||||||||||||||
23 | |||||||||||||||||||||||||||
24 | Risk summary | Very High (database integrity) | High (readers' browsers) | Medium (limited audience) | Low (community oversight) | Low (community oversight) | Low (edits-only, community oversight) | Low (edits-only, community oversight) | |||||||||||||||||||
25 | Difficulty summary | High | Medium (JS) | Low (simple JS) | Medium (Lua) | Low (wikitext) | Medium (complex environment) | Low (e.g. pywikibot) | |||||||||||||||||||
26 | |||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||
28 | very high or very strong or very hard | ||||||||||||||||||||||||||
29 | high or strong or hard | ||||||||||||||||||||||||||
30 | intermediate | ||||||||||||||||||||||||||
31 | low or weak or easy | ||||||||||||||||||||||||||
32 | only indirectly | ||||||||||||||||||||||||||
33 | none or not applicable | ||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 | |||||||||||||||||||||||||||
101 |