Wikipedia testwiki https://test.wikipedia.org/wiki/Main_Page MediaWiki 1.39.0-wmf.23 first-letter Media Special Talk User User talk Wikipedia Wikipedia talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Thread Thread talk Summary Summary talk Test namespace 1 Test namespace 1 talk Test namespace 2 Test namespace 2 talk Draft Draft talk Campaign Campaign talk TimedText TimedText talk Module Module talk SecurePoll SecurePoll talk CNBanner CNBanner talk Translations Translations talk Gadget Gadget talk Gadget definition Gadget definition talk Topic Newsletter Newsletter talk Foo. 0 77783 532413 519009 2022-08-12T01:10:05Z Bryndzove12345 36197 wikitext text/x-wiki '''Sfenj''' ''Konkonte'' '''''Phutu''''' Shakshouka nvrdjuqj4d4cfrv040fmupur8m1pp2j File:MP sounds-pwb.png 6 78320 532345 532294 2022-08-11T12:23:23Z Pywikibot-test 23124 Pywikibot-test uploaded a new version of [[File:MP sounds-pwb.png]] wikitext text/x-wiki pywikibot test mvex885are6ahaz42kwh4kn9swdrp8i 532346 532345 2022-08-11T12:25:33Z Pywikibot-test 23124 Pywikibot-test uploaded a new version of [[File:MP sounds-pwb.png]] wikitext text/x-wiki pywikibot test mvex885are6ahaz42kwh4kn9swdrp8i 532347 532346 2022-08-11T12:31:28Z Pywikibot-test 23124 Pywikibot-test uploaded a new version of [[File:MP sounds-pwb.png]] wikitext text/x-wiki pywikibot test mvex885are6ahaz42kwh4kn9swdrp8i 532348 532347 2022-08-11T12:33:38Z Pywikibot-test 23124 Pywikibot-test uploaded a new version of [[File:MP sounds-pwb.png]] wikitext text/x-wiki pywikibot test mvex885are6ahaz42kwh4kn9swdrp8i 1 Ocak 0 82442 532397 519788 2022-08-11T19:54:49Z Aram 40962 Adding text wikitext text/x-wiki Hello. [[User:Aram|Aram]] ([[User talk:Aram|talk]]) 14:52, 5 August 2022 (UTC)text2second [[Category:Test]]secondsecond\n\nsecond second Test ltmwfn33bmlb4rx8p02v5w8e0ke8ndb 532399 532397 2022-08-11T19:57:08Z Aram 40962 Adding text wikitext text/x-wiki Hello. [[User:Aram|Aram]] ([[User talk:Aram|talk]]) 14:52, 5 August 2022 (UTC)text2second [[Category:Test]]secondsecond\n\nsecond second Test * {{hello | 101}} nzkexbbnvlzv3ae6ppb6lidmzgcbuvh 532400 532399 2022-08-11T19:58:27Z Aram 40962 Undo revision 532399 by [[Special:Contributions/Aram|Aram]] ([[User talk:Aram|talk]]) wikitext text/x-wiki Hello. [[User:Aram|Aram]] ([[User talk:Aram|talk]]) 14:52, 5 August 2022 (UTC)text2second [[Category:Test]]secondsecond\n\nsecond second Test ltmwfn33bmlb4rx8p02v5w8e0ke8ndb CP cookie 0 91988 532396 519787 2022-08-11T19:54:19Z Aram 40962 Adding text wikitext text/x-wiki ChronologyProtector.firstfirstfirst\n\nfirst first test 6x2gcx657irabi8n21bpselfaayzbhx 532398 532396 2022-08-11T19:56:38Z Aram 40962 Adding text wikitext text/x-wiki ChronologyProtector.firstfirstfirst\n\nfirst first test * {{hello | 100}} 2cltcia4h9m2uvdo90qi3ta9i05n35r 532401 532398 2022-08-11T19:58:39Z Aram 40962 Undo revision 532398 by [[Special:Contributions/Aram|Aram]] ([[User talk:Aram|talk]]) wikitext text/x-wiki ChronologyProtector.firstfirstfirst\n\nfirst first test 6x2gcx657irabi8n21bpselfaayzbhx User talk:Test-apples 3 97678 532449 394098 2022-08-12T10:27:48Z Sunpriat 6604 /* Test */ new section wikitext text/x-wiki == Stop following me around == Hey, I get it. You don't like rock-and-roll music or my edits. Please stop following me around! — [[User:Test-bananas|Test-bananas]] ([[User talk:Test-bananas|talk]]) 22:53, 6 November 2017 (UTC) :What are you talking about? I'm just making sure all the pages I read are up to the high standards of this wiki. — [[User:Test-apples|Test-apples]] ([[User talk:Test-apples#top|talk]]) 22:54, 6 November 2017 (UTC) Test2 . == Test == subscription [[User:Sunpriat|Sunpriat]] ([[User talk:Sunpriat|talk]]) 10:27, 12 August 2022 (UTC) f9nlffnf6mwofsemms2gxm7ninxvh1d Test 0 98257 532403 532140 2022-08-11T20:27:07Z NovemBot 52214 Redirected page to [[Test2]] wikitext text/x-wiki #REDIRECT [[Test2]] fzbux8wqk6ub05obi8fdwdy4i1pehvy 532404 532403 2022-08-11T20:28:44Z NovemBot 52214 Restored revision 532140 by [[Special:Contributions/2607:9000:5000:19:0:0:0:B81E|2607:9000:5000:19:0:0:0:B81E]] ([[User talk:2607:9000:5000:19:0:0:0:B81E|talk]]) wikitext text/x-wiki {{Prod blp/dated |concern = |user = |timestamp = 20220809104628 |help = off }} Hello world! == Test Edit == test edit please ignore 1vw0uq2l8cqgyo2z3ovz10yjbmcm5vb User:JohanahoJ/sandbox 2 98278 532384 519595 2022-08-11T18:14:18Z JohanahoJ 37147 Blanked the page wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Wikipedia:WikiProject Articles for creation/Participants 4 100308 532402 510805 2022-08-11T20:23:39Z NovemBot 52214 wikitext text/x-wiki Note that the script was [https://github.com/WPAFC/afch-rewrite/commit/c0f72da9e91852743302daf13e4d45a20988ab58 patched] so that this page is no longer checked on the Test Wikipedia. It remains to help developers testing the functionality of the checkpage (i.e. the equivalent pages on other language Wikipedias). * {{user2|MMiller (WMF)}} * {{user2|KHarlan (WMF)}} * {{user2|1990'sguy}} * {{user2|1997kB}} * {{user2|333-blue}} * {{user2|78.26}} * {{user2|97198}} * {{user2|Abelmoschus Esculentus}} * {{user2|Acalycine}} * {{user2|Acebulf}} * {{user2|Ad Orientem}} * {{user2|Adityavagarwal}} * {{user2|Ahecht}} * {{user2|Ajpolino}} * {{user2|Amakuru}} * {{user2|AmericanAir88}} * {{user2|Amitchell125}} * {{user2|Ammarpad}} * {{user2|Amortias}} * {{user2|Amorymeltzer}} * {{user2|Anachronist}} * {{user2|Anarchyte}} * {{user2|AngusWOOF}} * {{user2|Anne Delong}} * {{user2|Anne drew Andrew and Drew}} * {{user2|AntanO}} * {{user2|AntiCompositeNumber}} * {{user2|Antonioatrylia}} * {{user2|Aseleste}} * {{user2|Atlantic306}} * {{user2|Atsme}} * {{user2|Aunva6}} * {{user2|Barkeep49}} * {{user2|Basie}} * {{user2|Basilosauridae}} * {{user2|Bcschneider53}} * {{user2|Bearcat}} * {{user2|Bellezzasolo}} * {{user2|Biblioworm}} * {{user2|Bilorv}} * {{user2|Bingobro}} * {{user2|Bkissin}} * {{user2|Boghog}} * {{user2|Bradv}} * {{user2|Broccoli and Coffee}} * {{user2|BusterD}} * {{user2|C.Fred}} * {{user2|Cabayi}} * {{user2|Calliopejen1}} * {{user2|Cameron11598}} * {{user2|Caorongjin}} * {{user2|Carwil}} * {{user2|CASSIOPEIA}} * {{user2|Cerebellum}} * {{user2|Chenzw}} * {{user2|Chetsford}} * {{user2|Chevvin}} * {{user2|Chrissymad}} * {{user2|Cloud atlas}} * {{user2|CMBJ}} * {{user2|CNMall41}} * {{user2|Curb Safe Charmer}} * {{user2|Dan arndt}} * {{user2|Dane}} * {{user2|Darylgolden}} * {{user2|David.moreno72}} * {{user2|DavidWestT}} * {{user2|Davisonio}} * {{user2|Deli nk}} * {{user2|DESiegel}} * {{user2|DGG}} * {{user2|Dial911}} * {{user2|Diptanshu Das}} * {{user2|Dlohcierekim}} * {{user2|Dodger67}} * {{user2|Domdeparis}} * {{user2|Doncram}} * {{user2|Drewmutt}} * {{user2|Eagleash}} * {{user2|Eastmain}} * {{user2|Edgar181}} * {{user2|Enterprisey}} * {{user2|EricEnfermero}} * {{user2|Etothepi}} * {{user2|Etzedek24}} * {{user2|Firefly}} * {{user2|Fitindia}} * {{user2|Flat Out}} * {{user2|Fnlayson}} * {{user2|FocalPoint}} * {{user2|Fredddie}} * {{user2|Galobtter}} * {{user2|Gbawden}} * {{user2|Gene93k}} * {{user2|GeoffreyT2000}} * {{user2|Godsy}} * {{user2|GorillaWarfare}} * {{user2|Graeme Bartlett}} * {{user2|GreenMeansGo}} * {{user2|GRuban}} * {{user2|Gryllida}} * {{user2|GSS}} * {{user2|Hammersoft}} * {{user2|Hamtechperson}} * {{user2|Happysailor}} * {{user2|Hasteur}} * {{user2|Headbomb}} * {{user2|Hegvald}} * {{user2|Heliosxeros}} * {{user2|Hellknowz}} * {{user2|HitroMilanese}} * {{user2|Home Lander}} * {{user2|Hunterm267}} * {{user2|Huon}} * {{user2|I dream of horses}} * {{user2|Iffy}} * {{user2|Imzadi1979}} * {{user2|In veritas}} * {{user2|Innisfree987}} * {{user2|Insertcleverphrasehere}} * {{user2|IVORK}} * {{user2|Jack Frost}} * {{user2|Jake Brockman}} * {{user2|JamesBWatson}} * {{user2|Jamietw}} * {{user2|Jbhunley}} * {{user2|Jcc}} * {{user2|Jd22292}} * {{user2|Jeff G.}} * {{user2|Jjjjjjdddddd}} * {{user2|Jllm06}} * {{user2|Jmcgnh}} * {{user2|JMHamo}} * {{user2|Jodi.a.schneider}} * {{user2|Joe Decker}} * {{user2|Joe Roe}} * {{user2|John from Idegon}} * {{user2|Joseph2302}} * {{user2|Josve05a}} * {{user2|Jprg1966}} * {{user2|JSFarman}} * {{user2|Justlettersandnumbers}} * {{user2|Kaldari}} * {{user2|Kaldari2}} * {{user2|Kb.au}} * {{user2|KCVelaga}} * {{user2|Kees08}} * {{user2|Kelapstick}} * {{user2|Kerry Raymond}} * {{user2|KGirlTrucker81}} * {{user2|Kiteinthewind}} * {{user2|KJP1}} * {{user2|Kostas20142}} * {{user2|KSFT}} * {{user2|Kudpung}} * {{user2|Kvng}} * {{user2|KylieTastic}} * {{user2|L235}} * {{user2|L293D}} * {{user2|Lakun.patra}} * {{user2|Lee Vilenski}} * {{user2|Legacypac}} * {{user2|LeoFrank}} * {{user2|Liance}} * {{user2|Lionelt}} * {{user2|Lonehexagon}} * {{user2|Luis150902}} * {{user2|LynxTufts}} * {{user2|MadeYourReadThis}} * {{user2|Mahveotm}} * {{user2|Majora}} * {{user2|Masumrezarock100}} * {{user2|Mattflaschen}} * {{user2|Matthew hk}} * {{user2|MatthewVanitas}} * {{user2|Mdann52}} * {{user2|Megalibrarygirl}} * {{user2|Miniapolis}} * {{user2|Missvain}} * {{user2|Mortee}} * {{user2|Mr. Guye}} * {{user2|MRD2014}} * {{user2|My name is not dave}} * {{user2|Mz7}} * {{user2|Nanophosis}} * {{user2|Naraht}} * {{user2|Narutolovehinata5}} * {{user2|NathanielTheBold}} * {{user2|Nerd1a4i}} * {{user2|NessieVL}} * {{user2|Nev1}} * {{user2|Newslinger}} * {{user2|NewYorkActuary}} * {{user2|Nihlus}} * {{user2|Nizil Shah}} * {{user2|NorthBySouthBaranof}} * {{user2|Nosebagbear}} * {{user2|NotTheFakeJTP}} * {{user2|NottNott}} * {{user2|NovemBot}} * {{user2|Nthep}} * {{user2|Number 57}} * {{user2|Obaid Raza}} * {{user2|Ollieinc}} * {{user2|Omni Flames}} * {{user2|Onel5969}} * {{user2|Path slopu}} * {{user2|Pigsonthewing}} * {{user2|Piotrus}} * {{user2|Pkbwcgs}} * {{user2|Power~enwiki}} * {{user2|Primefac}} * {{user2|Randykitty}} * {{user2|Ravenswing}} * {{user2|Redalert2fan}} * {{user2|RegistryKey}} * {{user2|Renata3}} * {{user2|RetroCraft314}} * {{user2|-revi}} * {{user2|RexxS}} * {{user2|RileyBugz}} * {{user2|Ringbang}} * {{user2|Ritchie333}} * {{user2|Robert McClenon}} * {{user2|Rodw}} * {{user2|RoySmith}} * {{user2|Sakura Cartelet}} * {{user2|Sam Sailor}} * {{user2|Samee}} * {{user2|SamHolt6}} * {{user2|Satcasm}} * {{user2|Sb2001}} * {{user2|Scope creep}} * {{user2|SeraphWiki}} * {{user2|Serial Number 54129}} * {{user2|Siddiqsazzad001}} * {{user2|Sir Joseph}} * {{user2|SkyGazer 512}} * {{user2|Smmurphy}} * {{user2|SmokeyJoe}} * {{user2|Snowycats}} * {{user2|SoWhy}} * {{user2|Spinningspark}} * {{user2|SshibumXZ}} * {{user2|St170e}} * {{user2|StarryGrandma}} * {{user2|StartTerminal}} * {{user2|Strikerforce}} * {{user2|SweetCanadianMullet}} * {{user2|Tachs}} * {{user2|Tazerdadog}} * {{user2|TeaDrinker}} * {{user2|TeriEmbrey}} * {{user2|The Drover's Wife}} * {{user2|The garmine}} * {{user2|The Mighty Glen}} * {{user2|TheCatalyst31}} * {{user2|TheDragonFire}} * {{user2|The Duke of Nonsense}} * {{user2|TheGridExe}} * {{user2|TheMightyPeanut}} * {{user2|Theroadislong}} * {{user2|TheSandDoctor}} * {{user2|TheSubmarine}} * {{user2|Thsmi002}} * {{user2|TJH2018}} * {{user2|TonyBallioni}} * {{user2|ToThAc}} * {{user2|Triptothecottage}} * {{user2|TryKid}} * {{user2|Tvx1}} * {{user2|Velella}} * {{user2|Vermont}} * {{user2|Vexations}} * {{user2|Vincent60030}} * {{user2|Voceditenore}} * {{user2|Waggie}} * {{user2|Whispering}} * {{user2|Wiae}} * {{user2|WikiDan61}} * {{user2|Winged Blades of Godric}} * {{user2|Worldbruce}} * {{user2|Yeenosaurus}} * {{user2|Yeenosaurus}} * {{user2|Yunshui}} * {{user2|Z0}} * {{user2|Zanhe}} * {{user2|Zawl}} * {{user2|ZI Jony}} * {{user2|Zxcvbnm}} * {{user2|Ashish Bhandari0410}} av3wln2223j7pr80ltq2lhnnptjzd1p Shortdesc test 0 102242 532395 500649 2022-08-11T19:52:22Z Aram 40962 Pywikibot 7.5.2 wikitext text/x-wiki Hello Pywikibot! 6bhk2vrl5cjki1e1zxp914vtlocg0sc Wikipedia:Sandbox 4 107092 532405 532285 2022-08-11T21:00:45Z Cewbot 33876 Clear the sandbox. If you want to keep it longer, please test it in [[Special:MyPage/Sandbox|personal sandbox]], you can also check the revision history of the sandbox. wikitext text/x-wiki <noinclude>{{Sandbox}}</noinclude> == Please start your testing below this line == 9v37rcaxoiwjar8n3q9n7dcsjdvcyin User:Hamish/Twinkle/twinkle.js 2 112070 532406 505059 2022-08-12T00:04:37Z Hamish 40220 Initialise to eef2a7b664e464a651a53eb7808871598cfdf70b at xi-plus/master javascript text/javascript /** * vim: set noet sts=0 sw=8: * +-------------------------------------------------------------------------+ * | === 警告:全局小工具文件 === | * | 对此文件的修改会影响许多用户。 | * | 修改前请联系维护者。 | * +-------------------------------------------------------------------------+ * * 从Github导入 [https://github.com/Xi-Plus/twinkle] * 所有修改都應該在儲存庫中進行,否則將在下次更新時遺失。 * * ---------- * * 这是Xiplus版本的Twinkle,是新手、管理员及他们之间的用户的 * 好帮手。请参见[[WP:TW]]以获取更多信息。 */ // <nowiki> /* global Morebits */ (function (window, document, $) { // Wrap with anonymous function // Check if account is experienced enough to use Twinkle if (!Morebits.userIsInGroup('autoconfirmed') && !Morebits.userIsInGroup('confirmed')) { return; } var Twinkle = {}; window.Twinkle = Twinkle; // allow global access /** * Twinkle-specific data shared by multiple modules * Likely customized per installation */ // Custom change tag(s) to be applied to all Twinkle actions, create at Special:Tags Twinkle.changeTags = 'Twinkle'; // Available for actions that don't (yet) support tags // currently: FlaggedRevs and PageTriage Twinkle.summaryAd = ' ([[WP:TW|TW]])'; // Various hatnote templates, used when tagging (csd/xfd/tag/prod/protect) to ensure [[w:en:MOS:ORDER]] Twinkle.hatnoteRegex = '(?:Short[ _]description)|(?:Rellink|Hatnote|HAT)|(?:Main|细节|細節|Main[ _]articles|主条目|主條目|Hurricane[ _]main|条目|條目|主|頁面|页面|主頁面|主页面|主頁|主页|主題目|主题目|Main[ _]article|AP)|(?:Wrongtitle|Correct[ _]title)|(?:主条目消歧义|主條目消歧義|消歧义链接|消歧義鏈接|消歧義連結|消连|消連|消歧义连结|DisambLink|Noteref|Dablink)|(?:Distinguish|不是|Not|提示|混淆|分別|分别|區別|区别|本条目的主题不是|本條目的主題不是|本条目主题不是|本條目主題不是|条目主题不是|條目主題不是|主题不是|主題不是|Confused|区分|區分|Confusion|Confuse|RedirectNOT|Misspelling)|(?:Distinguish2|SelfDistinguish|Not2|不是2)|(?:For)|(?:Details|Further|See|另见|另見|More|相關條目|相关条目|Detail|见|見|更多资料|更多資料|Further[ _]information|更多资讯|更多資訊|More[ _]information|更多信息)|(?:Selfref)|(?:About|Otheruses4|关于|關於)|(?:Other[ _]uses|Otheruse|条目消歧义|條目消歧義|他用|Otheruses)|(?:Other[ _]uses list|Otheruselist|主條目消歧義列表|主条目消歧义列表|Otheruseslist|Aboutlist|About[ _]list|Otheruses[ _]list)|(?:Redirect|重定向至此|Redirects[ _]here|Redirect[ _]to)|(?:Redirect2|主條目消歧義2|主条目消歧义2|Redir|重定向至此2)|(?:Redirect3)|(?:Redirect4)|(?:Redirect-distinguish)|(?:Redirect-synonym)|(?:Redirect-multi)|(?:See[ _]Wiktionary|Seewikt)|(?:Seealso|参看|參看|See[ _]also|参见|參見|Also)|(?:See[ _]also2|Seealso2|不轉換參見|不转换参见)|(?:Other[ _]places)|(?:Contrast|對比|对比)'; Twinkle.initCallbacks = []; /** * Adds a callback to execute when Twinkle has loaded. * @param {function} func * @param {string} [name] - name of module used to check if is disabled. * If name is not given, module is loaded unconditionally. */ Twinkle.addInitCallback = function twinkleAddInitCallback(func, name) { Twinkle.initCallbacks.push({ func: func, name: name }); }; Twinkle.defaultConfig = {}; /** * This holds the default set of preferences used by Twinkle. * It is important that all new preferences added here, especially admin-only ones, are also added to * |Twinkle.config.sections| in twinkleconfig.js, so they are configurable via the Twinkle preferences panel. * For help on the actual preferences, see the comments in twinkleconfig.js. * * Formerly Twinkle.defaultConfig.twinkle and Twinkle.defaultConfig.friendly */ Twinkle.defaultConfig = { // General userTalkPageMode: 'tab', dialogLargeFont: false, disabledModules: Morebits.userIsSysop ? [] : ['block'], // default to disable block for non-sysop, if enable manually, they can only use it to tag userpage disabledSysopModules: [], // ARV spiWatchReport: 'yes', // Block defaultToPartialBlocks: false, blankTalkpageOnIndefBlock: false, customBlockReasonList: [], // Fluff (revert and rollback) openTalkPage: [ ], openTalkPageOnAutoRevert: false, rollbackInPlace: false, markRevertedPagesAsMinor: [ 'vand' ], watchRevertedPages: [ 'agf', 'norm', 'vand', 'torev' ], watchRevertedExpiry: 'yes', offerReasonOnNormalRevert: true, confirmOnFluff: false, confirmOnMobileFluff: true, showRollbackLinks: [ 'diff', 'others' ], customRevertSummary: [], // DI (twinkleimage) notifyUserOnDeli: true, deliWatchPage: 'default', deliWatchUser: 'default', // Protect watchRequestedPages: 'yes', watchPPTaggedPages: 'default', watchProtectedPages: 'default', // CSD speedySelectionStyle: 'buttonClick', watchSpeedyPages: [ ], watchSpeedyExpiry: 'yes', markSpeedyPagesAsPatrolled: true, // these next two should probably be identical by default notifyUserOnSpeedyDeletionNomination: [ 'db', 'g1', 'g2', 'g3', 'g5', 'g11', 'g12', 'g13', 'g16', 'a1', 'a2', 'a5', 'a6', 'o7', 'o8', 'f6', 'r2', 'r3', 'r7' ], welcomeUserOnSpeedyDeletionNotification: [ 'db', 'g1', 'g2', 'g3', 'g5', 'g11', 'g12', 'g13', 'g16', 'a1', 'a2', 'a5', 'a6', 'o7', 'o8', 'f6', 'r2', 'r3', 'r7' ], promptForSpeedyDeletionSummary: [], openUserTalkPageOnSpeedyDelete: [ ], deleteTalkPageOnDelete: true, deleteRedirectsOnDelete: true, deleteSysopDefaultToDelete: false, speedyWindowHeight: 500, speedyWindowWidth: 800, logSpeedyNominations: false, speedyLogPageName: 'CSD日志', noLogOnSpeedyNomination: [ 'o1' ], enlargeG11Input: false, // Unlink unlinkNamespaces: [ '0', '10', '100', '102', '118' ], // Warn defaultWarningGroup: '1', combinedSingletMenus: false, showSharedIPNotice: true, watchWarnings: 'yes', oldSelect: false, customWarningList: [], autoMenuAfterRollback: false, // XfD logXfdNominations: false, xfdLogPageName: 'AFD日志', noLogOnXfdNomination: [], xfdWatchDiscussion: 'default', xfdWatchPage: 'default', xfdWatchUser: 'default', markXfdPagesAsPatrolled: true, FwdCsdToXfd: Morebits.userIsSysop, afdDefaultCategory: 'delete', afdFameDefaultReason: '沒有足夠的可靠資料來源能夠讓這個條目符合[[Wikipedia:關注度]]中的標準', afdSubstubDefaultReason: '過期小小作品', XfdClose: Morebits.userIsSysop ? 'all' : 'hide', // Copyvio copyvioWatchPage: 'yes', copyvioWatchUser: 'yes', markCopyvioPagesAsPatrolled: true, // Hidden preferences autolevelStaleDays: 3, revertMaxRevisions: 50, // intentionally limited batchMax: 5000, batchChunks: 50, configPage: 'Wikipedia:Twinkle/参数设置', projectNamespaceName: mw.config.get('wgFormattedNamespaces')[4], sandboxPage: 'Wikipedia:沙盒', // Deprecated options, as a fallback for add-on scripts/modules summaryAd: ' ([[WP:TW|TW]])', deletionSummaryAd: ' ([[WP:TW|TW]])', protectionSummaryAd: ' ([[WP:TW|TW]])', blockSummaryAd: ' ([[WP:TW|TW]])', // Formerly defaultConfig.friendly: // Tag groupByDefault: true, watchTaggedPages: 'yes', watchMergeDiscussions: 'yes', markTaggedPagesAsMinor: false, markTaggedPagesAsPatrolled: true, tagArticleSortOrder: 'cat', customTagList: [], customFileTagList: [], customRedirectTagList: [], // Stub watchStubbedPages: false, markStubbedPagesAsMinor: false, markStubbedPagesAsPatrolled: true, stubArticleSortOrder: 'cat', customStubList: [], // Welcome topWelcomes: false, watchWelcomes: 'yes', welcomeHeading: wgULS('欢迎', '歡迎'), insertHeadings: true, insertUsername: true, insertSignature: true, // sign welcome templates, where appropriate quickWelcomeMode: 'norm', quickWelcomeTemplate: 'Welcome', customWelcomeList: [], customWelcomeSignature: true, // Talkback markTalkbackAsMinor: true, insertTalkbackSignature: true, // always sign talkback templates talkbackHeading: wgULS('回复通告', '回覆通告'), mailHeading: wgULS('您有新邮件!', '您有新郵件!'), // Shared markSharedIPAsMinor: true }; // now some skin dependent config. switch (mw.config.get('skin')) { case 'vector': case 'vector-2022': Twinkle.defaultConfig.portletArea = 'right-navigation'; Twinkle.defaultConfig.portletId = 'p-twinkle'; Twinkle.defaultConfig.portletName = 'TW'; Twinkle.defaultConfig.portletType = 'menu'; Twinkle.defaultConfig.portletNext = 'p-search'; break; case 'timeless': Twinkle.defaultConfig.portletArea = '#page-tools .sidebar-inner'; Twinkle.defaultConfig.portletId = 'p-twinkle'; Twinkle.defaultConfig.portletName = 'Twinkle'; Twinkle.defaultConfig.portletType = null; Twinkle.defaultConfig.portletNext = 'p-userpagetools'; break; default: Twinkle.defaultConfig.portletArea = null; Twinkle.defaultConfig.portletId = 'p-cactions'; Twinkle.defaultConfig.portletName = null; Twinkle.defaultConfig.portletType = null; Twinkle.defaultConfig.portletNext = null; } Twinkle.getPref = function twinkleGetPref(name) { if (typeof Twinkle.prefs === 'object' && Twinkle.prefs[name] !== undefined) { return Twinkle.prefs[name]; } // Old preferences format, used before twinkleoptions.js was a thing if (typeof window.TwinkleConfig === 'object' && window.TwinkleConfig[name] !== undefined) { return window.TwinkleConfig[name]; } if (typeof window.FriendlyConfig === 'object' && window.FriendlyConfig[name] !== undefined) { return window.FriendlyConfig[name]; } return Twinkle.defaultConfig[name]; }; /** * **************** Twinkle.addPortlet() **************** * * Adds a portlet menu to one of the navigation areas on the page. * This is necessarily quite a hack since skins, navigation areas, and * portlet menu types all work slightly different. * * Available navigation areas depend on the skin used. * Vector: * For each option, the outer nav class contains "vector-menu", the inner div class is "vector-menu-content", and the ul is "vector-menu-content-list" * "mw-panel", outer nav class contains "vector-menu-portal". Existing portlets/elements: "p-logo", "p-navigation", "p-interaction", "p-tb", "p-coll-print_export" * "left-navigation", outer nav class contains "vector-menu-tabs" or "vector-menu-dropdown". Existing portlets: "p-namespaces", "p-variants" (menu) * "right-navigation", outer nav class contains "vector-menu-tabs" or "vector-menu-dropdown". Existing portlets: "p-views", "p-cactions" (menu), "p-search" * Special layout of p-personal portlet (part of "head") through specialized styles. * Monobook: * "column-one", outer nav class "portlet", inner div class "pBody". Existing portlets: "p-cactions", "p-personal", "p-logo", "p-navigation", "p-search", "p-interaction", "p-tb", "p-coll-print_export" * Special layout of p-cactions and p-personal through specialized styles. * Modern: * "mw_contentwrapper" (top nav), outer nav class "portlet", inner div class "pBody". Existing portlets or elements: "p-cactions", "mw_content" * "mw_portlets" (sidebar), outer nav class "portlet", inner div class "pBody". Existing portlets: "p-navigation", "p-search", "p-interaction", "p-tb", "p-coll-print_export" * * @param String navigation -- id of the target navigation area (skin dependant, on vector either of "left-navigation", "right-navigation", or "mw-panel") * @param String id -- id of the portlet menu to create, preferably start with "p-". * @param String text -- name of the portlet menu to create. Visibility depends on the class used. * @param String type -- type of portlet. Currently only used for the vector non-sidebar portlets, pass "menu" to make this portlet a drop down menu. * @param Node nextnodeid -- the id of the node before which the new item should be added, should be another item in the same list, or undefined to place it at the end. * * @return Node -- the DOM node of the new item (a DIV element) or null */ Twinkle.addPortlet = function(navigation, id, text, type, nextnodeid) { // sanity checks, and get required DOM nodes var root = document.getElementById(navigation) || document.querySelector(navigation); if (!root) { return null; } var item = document.getElementById(id); if (item) { if (item.parentNode && item.parentNode === root) { return item; } return null; } var nextnode; if (nextnodeid) { nextnode = document.getElementById(nextnodeid); } // verify/normalize input var skin = mw.config.get('skin'); if ((skin !== 'vector' && skin !== 'vector-2022') || (navigation !== 'left-navigation' && navigation !== 'right-navigation')) { type = null; // menu supported only in vector's #left-navigation & #right-navigation } var outerNavClass, innerDivClass; switch (skin) { case 'vector': case 'vector-2022': // XXX: portal doesn't work if (navigation !== 'portal' && navigation !== 'left-navigation' && navigation !== 'right-navigation') { navigation = 'mw-panel'; } outerNavClass = 'mw-portlet vector-menu vector-menu-' + (navigation === 'mw-panel' ? 'portal' : type === 'menu' ? 'dropdown vector-menu-dropdown-noicon' : 'tabs'); innerDivClass = 'vector-menu-content'; break; case 'modern': if (navigation !== 'mw_portlets' && navigation !== 'mw_contentwrapper') { navigation = 'mw_portlets'; } outerNavClass = 'portlet'; break; case 'timeless': outerNavClass = 'mw-portlet'; innerDivClass = 'mw-portlet-body'; break; default: navigation = 'column-one'; outerNavClass = 'portlet'; break; } // Build the DOM elements. var outerNav, heading; if (skin === 'vector-2022') { outerNav = document.createElement('div'); heading = document.createElement('label'); } else { outerNav = document.createElement('nav'); heading = document.createElement('h3'); } outerNav.setAttribute('aria-labelledby', id + '-label'); // Vector getting vector-menu-empty FIXME TODO outerNav.className = outerNavClass + ' emptyPortlet'; outerNav.id = id; if (nextnode && nextnode.parentNode === root) { root.insertBefore(outerNav, nextnode); } else { root.appendChild(outerNav); } heading.id = id + '-label'; var ul = document.createElement('ul'); if (skin === 'vector' || skin === 'vector-2022') { ul.className = 'vector-menu-content-list'; heading.className = 'vector-menu-heading'; // add invisible checkbox to keep menu open when clicked // similar to the p-cactions ("More") menu if (outerNavClass.indexOf('vector-menu-dropdown') !== -1) { var chkbox = document.createElement('input'); chkbox.className = 'vector-menu-checkbox'; chkbox.setAttribute('type', 'checkbox'); chkbox.setAttribute('aria-labelledby', id + '-label'); outerNav.appendChild(chkbox); // Vector gets its title in a span; all others except // timeless have no title, and it has no span var span = document.createElement('span'); span.appendChild(document.createTextNode(text)); heading.appendChild(span); var a = document.createElement('a'); a.href = '#'; $(a).click(function(e) { e.preventDefault(); }); heading.appendChild(a); } } else { // Basically just Timeless heading.appendChild(document.createTextNode(text)); } outerNav.appendChild(heading); if (innerDivClass) { var innerDiv = document.createElement('div'); innerDiv.className = innerDivClass; innerDiv.appendChild(ul); outerNav.appendChild(innerDiv); } else { outerNav.appendChild(ul); } return outerNav; }; /** * **************** Twinkle.addPortletLink() **************** * Builds a portlet menu if it doesn't exist yet, and add the portlet link. * @param task: Either a URL for the portlet link or a function to execute. */ Twinkle.addPortletLink = function(task, text, id, tooltip) { if (Twinkle.getPref('portletArea') !== null) { Twinkle.addPortlet(Twinkle.getPref('portletArea'), Twinkle.getPref('portletId'), Twinkle.getPref('portletName'), Twinkle.getPref('portletType'), Twinkle.getPref('portletNext')); } var link = mw.util.addPortletLink(Twinkle.getPref('portletId'), typeof task === 'string' ? task : '#', text, id, tooltip); $('.client-js .skin-vector #p-cactions').css('margin-right', 'initial'); if (typeof task === 'function') { $(link).find('a').on('click', function (ev) { task(); ev.preventDefault(); }); } if ($.collapsibleTabs) { $.collapsibleTabs.handleResize(); } return link; }; /** * **************** General initialization code **************** */ var scriptpathbefore = mw.util.wikiScript('index') + '?title=', scriptpathafter = '&action=raw&ctype=text/javascript&happy=yes'; // Retrieve the user's Twinkle preferences $.ajax({ url: scriptpathbefore + 'User:' + encodeURIComponent(mw.config.get('wgUserName')) + '/twinkleoptions.js' + scriptpathafter, dataType: 'text' }) .fail(function () { mw.notify(wgULS('未能加载您的Twinkle参数设置', '未能載入您的Twinkle偏好設定'), {type: 'error'}); }) .done(function (optionsText) { // Quick pass if user has no options if (optionsText === '') { return; } // Twinkle options are basically a JSON object with some comments. Strip those: optionsText = optionsText.replace(/(?:^(?:\/\/[^\n]*\n)*\n*|(?:\/\/[^\n]*(?:\n|$))*$)/g, ''); // First version of options had some boilerplate code to make it eval-able -- strip that too. This part may become obsolete down the line. if (optionsText.lastIndexOf('window.Twinkle.prefs = ', 0) === 0) { optionsText = optionsText.replace(/(?:^window.Twinkle.prefs = |;\n*$)/g, ''); } try { var options = JSON.parse(optionsText); if (options) { if (options.twinkle || options.friendly) { // Old preferences format Twinkle.prefs = $.extend(options.twinkle, options.friendly); } else { Twinkle.prefs = options; } // v2 established after unification of Twinkle/Friendly objects Twinkle.prefs.optionsVersion = Twinkle.prefs.optionsVersion || 1; } } catch (e) { mw.notify(wgULS('未能解析您的Twinkle参数设置', '未能解析您的Twinkle偏好設定'), {type: 'error'}); } }) .always(function () { $(Twinkle.load); }); // Developers: you can import custom Twinkle modules here // For example, mw.loader.load(scriptpathbefore + "User:UncleDouggie/morebits-test.js" + scriptpathafter); Twinkle.load = function () { // Don't activate on special pages other than those listed here, so // that others load faster, especially the watchlist. var activeSpecialPageList = [ 'Block', 'Contributions', 'AbuseLog', 'Recentchanges', 'Recentchangeslinked' ]; // wgRelevantUserName defined for non-sysops on Special:Block if (Morebits.userIsSysop) { activeSpecialPageList = activeSpecialPageList.concat([ 'DeletedContributions', 'Prefixindex', 'BrokenRedirects' ]); } if (mw.config.get('wgNamespaceNumber') === -1 && activeSpecialPageList.indexOf(mw.config.get('wgCanonicalSpecialPageName')) === -1) { return; } // Prevent clickjacking if (window.top !== window.self) { return; } // Set custom Api-User-Agent header, for server-side logging purposes Morebits.wiki.api.setApiUserAgent('Twinkle~zh (' + mw.config.get('wgWikiID') + ')'); Twinkle.disabledModules = Twinkle.getPref('disabledModules').concat(Twinkle.getPref('disabledSysopModules')); // Redefine addInitCallback so that any modules being loaded now on are directly // initialised rather than added to initCallbacks array Twinkle.addInitCallback = function(func, name) { if (!name || Twinkle.disabledModules.indexOf(name) === -1) { func(); } }; // Initialise modules that were saved in initCallbacks array Twinkle.initCallbacks.forEach(function(module) { Twinkle.addInitCallback(module.func, module.name); }); // Increases text size in Twinkle dialogs, if so configured if (Twinkle.getPref('dialogLargeFont')) { mw.util.addCSS('.morebits-dialog-content, .morebits-dialog-footerlinks { font-size: 100% !important; } ' + '.morebits-dialog input, .morebits-dialog select, .morebits-dialog-content button { font-size: inherit !important; }'); } // Hide the lingering space if the TW menu is empty var isVector = mw.config.get('skin') === 'vector' || mw.config.get('skin') === 'vector-2022'; if (isVector && Twinkle.getPref('portletType') === 'menu' && $('#p-twinkle').length === 0) { $('#p-cactions').css('margin-right', 'initial'); } }; /** Twinkle-specific utility functions shared by multiple modules */ // Used in batch, unlink, and deprod to sort pages by namespace, as // json formatversion=2 sorts by pageid instead (#1251) Twinkle.sortByNamespace = function(first, second) { return first.ns - second.ns || (first.title > second.title ? 1 : -1); }; // Used in deprod and unlink listings to link the page title Twinkle.generateBatchPageLinks = function (checkbox) { var $checkbox = $(checkbox); var link = Morebits.htmlNode('a', $checkbox.val()); link.setAttribute('class', 'tw-batchpage-link'); link.setAttribute('href', mw.util.getUrl($checkbox.val())); link.setAttribute('target', '_blank'); $checkbox.next().prepend([link, ' ']); }; }(window, document, jQuery)); // End wrap with anonymous function // </nowiki> a6ha80qwk91k64kqp4kbqgxgfoafrc1 User:Hamish/Twinkle/modules/friendlytag.js 2 112079 532407 513258 2022-08-12T00:04:47Z Hamish 40220 Initialise to eef2a7b664e464a651a53eb7808871598cfdf70b at xi-plus/master javascript text/javascript // <nowiki> (function($) { /* **************************************** *** friendlytag.js: Tag module **************************************** * Mode of invocation: Tab ("Tag") * Active on: Existing articles and drafts; file pages with a corresponding file * which is local (not on Commons); all redirects */ Twinkle.tag = function friendlytag() { // redirect tagging if (Morebits.isPageRedirect()) { Twinkle.tag.mode = wgULS('重定向', '重新導向'); Twinkle.tag.modeEn = 'redirect'; Twinkle.addPortletLink(Twinkle.tag.callback, wgULS('标记', '標記'), 'friendly-tag', wgULS('标记重定向', '標記重新導向')); // file tagging } else if (mw.config.get('wgNamespaceNumber') === 6 && !document.getElementById('mw-sharedupload') && document.getElementById('mw-imagepage-section-filehistory')) { Twinkle.tag.mode = wgULS('文件', '檔案'); Twinkle.tag.modeEn = 'file'; Twinkle.addPortletLink(Twinkle.tag.callback, wgULS('标记', '標記'), 'friendly-tag', wgULS('标记文件', '標記檔案')); // article/draft tagging } else if (([0, 118].indexOf(mw.config.get('wgNamespaceNumber')) !== -1 && mw.config.get('wgCurRevisionId')) || (Morebits.pageNameNorm === Twinkle.getPref('sandboxPage'))) { Twinkle.tag.mode = wgULS('条目', '條目'); Twinkle.tag.modeEn = 'article'; // Can't remove tags when not viewing current version Twinkle.tag.canRemove = (mw.config.get('wgCurRevisionId') === mw.config.get('wgRevisionId')) && // Disabled on latest diff because the diff slider could be used to slide // away from the latest diff without causing the script to reload !mw.config.get('wgDiffNewId'); Twinkle.addPortletLink(Twinkle.tag.callback, wgULS('标记', '標記'), 'friendly-tag', wgULS('标记条目', '標記條目')); } }; Twinkle.tag.checkedTags = []; Twinkle.tag.callback = function friendlytagCallback() { var Window = new Morebits.simpleWindow(630, Twinkle.tag.modeEn === 'article' ? 500 : 400); Window.setScriptName('Twinkle'); Window.addFooterLink(wgULS('标记设置', '標記設定'), 'WP:TW/PREF#tag'); Window.addFooterLink(wgULS('Twinkle帮助', 'Twinkle說明'), 'WP:TW/DOC#tag'); var form = new Morebits.quickForm(Twinkle.tag.callback.evaluate); form.append({ type: 'input', label: wgULS('筛选标记列表:', '篩選標記列表:'), name: 'quickfilter', size: '30', event: function twinkletagquickfilter() { // flush the DOM of all existing underline spans $allCheckboxDivs.find('.search-hit').each(function(i, e) { var label_element = e.parentElement; // This would convert <label>Hello <span class=search-hit>wo</span>rld</label> // to <label>Hello world</label> label_element.innerHTML = label_element.textContent; }); if (this.value) { $allCheckboxDivs.hide(); $allHeaders.hide(); var searchString = this.value; var searchRegex = new RegExp(mw.util.escapeRegExp(searchString), 'i'); $allCheckboxDivs.find('label').each(function () { var label_text = this.textContent; var searchHit = searchRegex.exec(label_text); if (searchHit) { var range = document.createRange(); var textnode = this.childNodes[0]; range.selectNodeContents(textnode); range.setStart(textnode, searchHit.index); range.setEnd(textnode, searchHit.index + searchString.length); var underline_span = $('<span>').addClass('search-hit').css('text-decoration', 'underline')[0]; range.surroundContents(underline_span); this.parentElement.style.display = 'block'; // show } }); } else { $allCheckboxDivs.show(); $allHeaders.show(); } } }); switch (Twinkle.tag.modeEn) { case 'article': Window.setTitle(wgULS('条目维护标记', '條目維護標記')); // Build sorting and lookup object flatObject, which is always // needed but also used to generate the alphabetical list // Would be infinitely better with Object.values, but, alas, IE 11 Twinkle.tag.article.flatObject = {}; Twinkle.tag.article.tagList.forEach(function(group) { group.value.forEach(function(subgroup) { if (subgroup.value) { subgroup.value.forEach(function(item) { Twinkle.tag.article.flatObject[item.tag] = { description: item.description, excludeMI: !!item.excludeMI }; }); } else { Twinkle.tag.article.flatObject[subgroup.tag] = { description: subgroup.description, excludeMI: !!subgroup.excludeMI }; } }); }); form.append({ type: 'select', name: 'sortorder', label: wgULS('查看列表:', '檢視列表:'), tooltip: wgULS('您可以在Twinkle参数设置(WP:TWPREFS)中更改此项。', '您可以在Twinkle偏好設定(WP:TWPREFS)中更改此項。'), event: Twinkle.tag.updateSortOrder, list: [ { type: 'option', value: 'cat', label: wgULS('按类型', '按類別'), selected: Twinkle.getPref('tagArticleSortOrder') === 'cat' }, { type: 'option', value: 'alpha', label: '按字母', selected: Twinkle.getPref('tagArticleSortOrder') === 'alpha' } ] }); if (!Twinkle.tag.canRemove) { var divElement = document.createElement('div'); divElement.innerHTML = wgULS('要移除现有维护标记,请从当前条目版本中打开“标记”菜单', '要移除現有維護標記,請從目前條目版本中打開「標記」選單'); form.append({ type: 'div', name: 'untagnotice', label: divElement }); } form.append({ type: 'div', id: 'tagWorkArea', className: 'morebits-scrollbox', style: 'max-height: 28em' }); form.append({ type: 'checkbox', list: [ { label: wgULS('如可能,合并入{{multiple issues}}', '如可能,合併入{{multiple issues}}'), value: 'group', name: 'group', tooltip: wgULS('如果加入{{multiple issues}}支持的三个以上的模板,所有支持的模板都会被合并入{{multiple issues}}模板中。', '如果加入{{multiple issues}}支援的三個以上的模板,所有支援的模板都會被合併入{{multiple issues}}模板中。'), checked: Twinkle.getPref('groupByDefault') } ] }); form.append({ type: 'input', label: '理由:', name: 'reason', tooltip: wgULS('附加于编辑摘要的可选理由,例如指出条目内容的哪些部分有问题或移除模板的理由,但如果理由很长则应该发表在讨论页。', '附加於編輯摘要的可選理由,例如指出條目內容的哪些部分有問題或移除模板的理由,但如果理由很長則應該發表在討論頁。'), size: '80' }); break; case 'file': Window.setTitle(wgULS('文件维护标记', '檔案維護標記')); Twinkle.tag.fileList.forEach(function(group) { if (group.buildFilename) { group.value.forEach(function(el) { el.subgroup = { type: 'input', label: wgULS('替换的文件:', '替換的檔案:'), tooltip: wgULS('输入替换此文件的文件名称(必填)', '輸入替換此檔案的檔案名稱(必填)'), name: el.value.replace(/ /g, '_') + 'File' }; }); } form.append({ type: 'header', label: group.key }); form.append({ type: 'checkbox', name: 'tags', list: group.value }); }); if (Twinkle.getPref('customFileTagList').length) { form.append({ type: 'header', label: wgULS('自定义模板', '自訂模板') }); form.append({ type: 'checkbox', name: 'tags', list: Twinkle.getPref('customFileTagList') }); } break; case 'redirect': Window.setTitle(wgULS('重定向标记', '重新導向標記')); var i = 1; Twinkle.tag.redirectList.forEach(function(group) { form.append({ type: 'header', id: 'tagHeader' + i, label: group.key }); form.append({ type: 'checkbox', name: 'tags', list: group.value.map(function (item) { return { value: item.tag, label: '{{' + item.tag + '}}:' + item.description, subgroup: item.subgroup }; }) }); }); if (Twinkle.getPref('customRedirectTagList').length) { form.append({ type: 'header', label: wgULS('自定义模板', '自訂模板') }); form.append({ type: 'checkbox', name: 'tags', list: Twinkle.getPref('customRedirectTagList') }); } break; default: alert('Twinkle.tag:未知模式 ' + Twinkle.tag.mode); break; } if (document.getElementsByClassName('patrollink').length) { form.append({ type: 'checkbox', list: [ { label: wgULS('标记页面为已巡查', '標記頁面為已巡查'), value: 'patrol', name: 'patrol', checked: Twinkle.getPref('markTaggedPagesAsPatrolled') } ] }); } form.append({ type: 'submit', className: 'tw-tag-submit' }); var result = form.render(); Window.setContent(result); Window.display(); // for quick filter: $allCheckboxDivs = $(result).find('[name$=tags]').parent(); $allHeaders = $(result).find('h5'); result.quickfilter.focus(); // place cursor in the quick filter field as soon as window is opened result.quickfilter.autocomplete = 'off'; // disable browser suggestions result.quickfilter.addEventListener('keypress', function(e) { if (e.keyCode === 13) { // prevent enter key from accidentally submitting the form e.preventDefault(); return false; } }); if (Twinkle.tag.modeEn === 'article') { Twinkle.tag.alreadyPresentTags = []; if (Twinkle.tag.canRemove) { // Look for existing maintenance tags in the lead section and put them in array // All tags are HTML table elements that are direct children of .mw-parser-output, // except when they are within {{multiple issues}} $('.mw-parser-output').children().each(function parsehtml(i, e) { // break out on encountering the first heading, which means we are no // longer in the lead section if (e.tagName === 'H2') { return false; } // The ability to remove tags depends on the template's {{ambox}} |name= // parameter bearing the template's correct name (preferably) or a name that at // least redirects to the actual name // All tags have their first class name as "box-" + template name if (e.className.indexOf('box-') === 0) { if (e.classList[0] === 'box-问题条目') { $(e).find('.ambox').each(function(idx, e) { if (e.classList[0].indexOf('box-') === 0) { var tag = e.classList[0].slice('box-'.length).replace(/_/g, ' '); Twinkle.tag.alreadyPresentTags.push(tag); } }); return true; // continue } var tag = e.classList[0].slice('box-'.length).replace(/_/g, ' '); Twinkle.tag.alreadyPresentTags.push(tag); } }); // {{Uncategorized}} and {{Improve categories}} are usually placed at the end if ($('.box-Uncategorized').length) { Twinkle.tag.alreadyPresentTags.push('Uncategorized'); } if ($('.box-Improve_categories').length) { Twinkle.tag.alreadyPresentTags.push('Improve categories'); } } // Add status text node after Submit button var statusNode = document.createElement('small'); statusNode.id = 'tw-tag-status'; Twinkle.tag.status = { // initial state; defined like this because these need to be available for reference // in the click event handler numAdded: 0, numRemoved: 0 }; $('button.tw-tag-submit').after(statusNode); // fake a change event on the sort dropdown, to initialize the tag list var evt = document.createEvent('Event'); evt.initEvent('change', true, true); result.sortorder.dispatchEvent(evt); } else { // Redirects and files: Add a link to each template's description page Morebits.quickForm.getElements(result, 'tags').forEach(generateLinks); } }; // $allCheckboxDivs and $allHeaders are defined globally, rather than in the // quickfilter event function, to avoid having to recompute them on every keydown var $allCheckboxDivs, $allHeaders; Twinkle.tag.updateSortOrder = function(e) { var form = e.target.form; var sortorder = e.target.value; Twinkle.tag.checkedTags = form.getChecked('tags'); var container = new Morebits.quickForm.element({ type: 'fragment' }); // function to generate a checkbox, with appropriate subgroup if needed var makeCheckbox = function(tag, description) { var checkbox = { value: tag, label: '{{' + tag + '}}: ' + description }; if (Twinkle.tag.checkedTags.indexOf(tag) !== -1) { checkbox.checked = true; } switch (tag) { case 'Expand language': checkbox.subgroup = [ { name: 'expandLanguage', type: 'input', label: wgULS('外语版本语言代码(必填):', '外語版本語言代碼(必填):') }, { type: 'checkbox', list: [ { name: 'highQualityArticle', label: wgULS('高品质条目', '高品質條目') } ] }, { name: 'expandLanguage2', type: 'input', label: wgULS('外语版本语言代码:', '外語版本語言代碼:') }, { type: 'checkbox', list: [ { name: 'highQualityArticle2', label: wgULS('高品质条目', '高品質條目') } ] }, { name: 'expandLanguage3', type: 'input', label: wgULS('外语版本语言代码:', '外語版本語言代碼:') }, { type: 'checkbox', list: [ { name: 'highQualityArticle3', label: wgULS('高品质条目', '高品質條目') } ] } ]; break; case 'Expert needed': checkbox.subgroup = [ { name: 'expert', type: 'input', label: wgULS('哪个领域的专家(必填):', '哪個領域的專家(必填):'), tooltip: wgULS('必填,可参考 Category:需要专业人士关注的页面 使用现存的分类。', '必填,可參考 Category:需要專業人士關注的頁面 使用現存的分類。') }, { name: 'expert2', type: 'input', label: wgULS('哪个领域的专家:', '哪個領域的專家:'), tooltip: wgULS('可选,可参考 Category:需要专业人士关注的页面 使用现存的分类。', '可選,可參考 Category:需要專業人士關注的頁面 使用現存的分類。') }, { name: 'expert3', type: 'input', label: wgULS('哪个领域的专家:', '哪個領域的專家:'), tooltip: wgULS('可选,可参考 Category:需要专业人士关注的页面 使用现存的分类。', '可選,可參考 Category:需要專業人士關注的頁面 使用現存的分類。') } ]; break; case 'Merge': case 'Merge from': case 'Merge to': var otherTagName = 'Merge'; switch (tag) { case 'Merge from': otherTagName = 'Merge to'; break; case 'Merge to': otherTagName = 'Merge from'; break; // no default } checkbox.subgroup = [ { name: 'mergeTarget', type: 'input', label: wgULS('其他条目:', '其他條目:'), tooltip: wgULS('如指定多个条目,请用管道符分隔:条目甲|条目乙', '如指定多個條目,請用管道符分隔:條目甲|條目乙') }, { type: 'checkbox', list: [ { name: 'mergeTagOther', label: '用{{' + otherTagName + wgULS('}}标记其他条目', '}}標記其他條目'), checked: true, tooltip: wgULS('仅在只输入了一个条目名时可用', '僅在只輸入了一個條目名時可用') } ] } ]; if (mw.config.get('wgNamespaceNumber') === 0) { checkbox.subgroup.push({ name: 'mergeReason', type: 'textarea', label: wgULS('合并理由(会被贴上' + (tag === 'Merge to' ? '其他' : '这') + '条目的讨论页):', '合併理由(會被貼上' + (tag === 'Merge to' ? '其他' : '這') + '條目的討論頁):'), tooltip: wgULS('可选,但强烈推荐。如不需要请留空。仅在只输入了一个条目名时可用。', '可選,但強烈推薦。如不需要請留空。僅在只輸入了一個條目名時可用。') }); } break; case 'Missing information': checkbox.subgroup = { name: 'missingInformation', type: 'input', label: wgULS('缺少的内容(必填):', '缺少的內容(必填):'), tooltip: wgULS('必填,显示为“缺少有关……的信息。”', '必填,顯示為「缺少有關……的資訊。」') }; break; case 'Notability': checkbox.subgroup = { name: 'notability', type: 'select', list: [ { label: '{{Notability}}:' + wgULS('通用的关注度指引', '通用的關注度指引'), value: 'none' }, { label: '{{Notability|Astro}}:' + wgULS('天体', '天體'), value: 'Astro' }, { label: '{{Notability|Biographies}}:' + wgULS('人物传记', '人物傳記'), value: 'Biographies' }, { label: '{{Notability|Book}}:' + wgULS('书籍', '書籍'), value: 'Book' }, { label: '{{Notability|Companies}}:' + wgULS('组织与公司', '組織與公司'), value: 'Companies' }, { label: '{{Notability|Cyclone}}:' + wgULS('气旋', '氣旋'), value: 'Cyclone' }, { label: '{{Notability|Fiction}}:' + wgULS('虚构事物', '虛構事物'), value: 'Fiction' }, { label: '{{Notability|Geographic}}:' + wgULS('地理特征', '地理特徵'), value: 'Geographic' }, { label: '{{Notability|Geometry}}:' + wgULS('几何图形', '幾何圖形'), value: 'Geometry' }, { label: '{{Notability|Invention}}:' + wgULS('发明、研究', '發明、研究'), value: 'Invention' }, { label: '{{Notability|Music}}:' + wgULS('音乐', '音樂'), value: 'Music' }, { label: '{{Notability|Numbers}}:' + wgULS('数字', '數字'), value: 'Numbers' }, { label: '{{Notability|Property}}:' + wgULS('性质表', '性質表'), value: 'Property' }, { label: '{{Notability|Traffic}}:' + '交通', value: 'Traffic' }, { label: '{{Notability|Web}}:' + wgULS('网站、网络内容', '網站、網路內容') + '(非正式指引)', value: 'Web'} ] }; break; case 'Requested move': checkbox.subgroup = [ { name: 'moveTarget', type: 'input', label: wgULS('新名称:', '新名稱:') }, { name: 'moveReason', type: 'textarea', label: wgULS('移动理由(会被粘贴该条目的讨论页):', '移動理由(會被貼上該條目的討論頁):'), tooltip: wgULS('可选,但强烈推荐。如不需要请留空。', '可選,但強烈推薦。如不需要請留空。') } ]; break; case 'Split': checkbox.subgroup = [ { name: 'target1', type: 'input', label: wgULS('页面名1:', '頁面名1:'), tooltip: wgULS('可选。', '可選。') }, { name: 'target2', type: 'input', label: wgULS('页面名2:', '頁面名2:'), tooltip: wgULS('可选。', '可選。') }, { name: 'target3', type: 'input', label: wgULS('页面名3:', '頁面名3:'), tooltip: wgULS('可选。', '可選。') } ]; break; case 'Cleanup': checkbox.subgroup = [ { name: 'cleanupReason', type: 'input', label: '需要清理的理由', tooltip: wgULS('可选,但强烈推荐。如不需要请留空。', '可選,但強烈推薦。如不需要請留空。') } ]; break; default: break; } return checkbox; }; var makeCheckboxesForAlreadyPresentTags = function() { container.append({ type: 'header', id: 'tagHeader0', label: wgULS('已放置的维护标记', '已放置的維護標記') }); var subdiv = container.append({ type: 'div', id: 'tagSubdiv0' }); var checkboxes = []; var unCheckedTags = e.target.form.getUnchecked('existingTags'); Twinkle.tag.alreadyPresentTags.forEach(function(tag) { var checkbox = { value: tag, label: '{{' + tag + '}}' + (Twinkle.tag.article.flatObject[tag] ? ': ' + Twinkle.tag.article.flatObject[tag].description : ''), checked: unCheckedTags.indexOf(tag) === -1 }; checkboxes.push(checkbox); }); subdiv.append({ type: 'checkbox', name: 'existingTags', list: checkboxes }); }; if (sortorder === 'cat') { // categorical sort order // function to iterate through the tags and create a checkbox for each one var doCategoryCheckboxes = function(subdiv, subgroup) { var checkboxes = []; $.each(subgroup, function(k, item) { if (Twinkle.tag.alreadyPresentTags.indexOf(item.tag) === -1) { checkboxes.push(makeCheckbox(item.tag, item.description)); } }); subdiv.append({ type: 'checkbox', name: 'tags', list: checkboxes }); }; if (Twinkle.tag.alreadyPresentTags.length > 0) { makeCheckboxesForAlreadyPresentTags(); } var i = 1; // go through each category and sub-category and append lists of checkboxes Twinkle.tag.article.tagList.forEach(function(group) { container.append({ type: 'header', id: 'tagHeader' + i, label: group.key }); var subdiv = container.append({ type: 'div', id: 'tagSubdiv' + i++ }); if (group.value[0].tag) { doCategoryCheckboxes(subdiv, group.value); } else { group.value.forEach(function(subgroup) { subdiv.append({ type: 'div', label: [ Morebits.htmlNode('b', subgroup.key) ] }); doCategoryCheckboxes(subdiv, subgroup.value); }); } }); } else { // alphabetical sort order if (Twinkle.tag.alreadyPresentTags.length > 0) { makeCheckboxesForAlreadyPresentTags(); container.append({ type: 'header', id: 'tagHeader1', label: wgULS('可用的维护标记', '可用的維護標記') }); } // Avoid repeatedly resorting Twinkle.tag.article.alphabeticalList = Twinkle.tag.article.alphabeticalList || Object.keys(Twinkle.tag.article.flatObject).sort(); var checkboxes = []; Twinkle.tag.article.alphabeticalList.forEach(function(tag) { if (Twinkle.tag.alreadyPresentTags.indexOf(tag) === -1) { checkboxes.push(makeCheckbox(tag, Twinkle.tag.article.flatObject[tag].description)); } }); container.append({ type: 'checkbox', name: 'tags', list: checkboxes }); } // append any custom tags if (Twinkle.getPref('customTagList').length) { container.append({ type: 'header', label: wgULS('自定义模板', '自訂模板') }); container.append({ type: 'checkbox', name: 'tags', list: Twinkle.getPref('customTagList').map(function(el) { el.checked = Twinkle.tag.checkedTags.indexOf(el.value) !== -1; return el; }) }); } var $workarea = $(form).find('#tagWorkArea'); var rendered = container.render(); $workarea.empty().append(rendered); // for quick filter: $allCheckboxDivs = $workarea.find('[name=tags], [name=existingTags]').parent(); $allHeaders = $workarea.find('h5, .quickformDescription'); form.quickfilter.value = ''; // clear search, because the search results are not preserved over mode change form.quickfilter.focus(); // style adjustments $workarea.find('h5').css({ 'font-size': '110%' }); $workarea.find('h5:not(:first-child)').css({ 'margin-top': '1em' }); $workarea.find('div').filter(':has(span.quickformDescription)').css({ 'margin-top': '0.4em' }); Morebits.quickForm.getElements(form, 'existingTags').forEach(generateLinks); Morebits.quickForm.getElements(form, 'tags').forEach(generateLinks); // tally tags added/removed, update statusNode text var statusNode = document.getElementById('tw-tag-status'); $('[name=tags], [name=existingTags]').click(function() { if (this.name === 'tags') { Twinkle.tag.status.numAdded += this.checked ? 1 : -1; } else if (this.name === 'existingTags') { Twinkle.tag.status.numRemoved += this.checked ? -1 : 1; } var firstPart = '加入' + Twinkle.tag.status.numAdded + wgULS('个标记', '個標記'); var secondPart = '移除' + Twinkle.tag.status.numRemoved + wgULS('个标记', '個標記'); statusNode.textContent = (Twinkle.tag.status.numAdded ? ' ' + firstPart : '') + (Twinkle.tag.status.numRemoved ? (Twinkle.tag.status.numAdded ? ';' : ' ') + secondPart : ''); }); }; /** * Adds a link to each template's description page * @param {Morebits.quickForm.element} checkbox associated with the template */ var generateLinks = function(checkbox) { var link = Morebits.htmlNode('a', '>'); link.setAttribute('class', 'tag-template-link'); var tagname = checkbox.values; link.setAttribute('href', mw.util.getUrl( (tagname.indexOf(':') === -1 ? 'Template:' : '') + (tagname.indexOf('|') === -1 ? tagname : tagname.slice(0, tagname.indexOf('|'))) )); link.setAttribute('target', '_blank'); $(checkbox).parent().append(['\u00A0', link]); }; // Tags for ARTICLES start here Twinkle.tag.article = {}; // Tags arranged by category; will be used to generate the alphabetical list, // but tags should be in alphabetical order within the categories // excludeMI: true indicate a tag that *does not* work inside {{multiple issues}} // Add new categories with discretion - the list is long enough as is! Twinkle.tag.article.tagList = [{ key: wgULS('清理和维护模板', '清理和維護模板'), value: [{ key: wgULS('常规清理', '常規清理'), value: [ { tag: 'Cleanup', description: wgULS('可能需要进行清理,以符合维基百科的质量标准', '可能需要進行清理,以符合維基百科的質量標準') }, { tag: 'Cleanup rewrite', description: wgULS('不符合维基百科的质量标准,需要完全重写', '不符合維基百科的質量標準,需要完全重寫') }, { tag: 'Cleanup-jargon', description: wgULS('包含过多行话或专业术语,可能需要简化或提出进一步解释', '包含過多行話或專業術語,可能需要簡化或提出進一步解釋') }, { tag: 'Copy edit', description: wgULS('需要编修,以确保文法、用词、语气、格式、标点等使用恰当', '需要編修,以確保文法、用詞、語氣、格式、標點等使用恰當') } ] }, { key: wgULS('可能多余的内容', '可能多餘的內容'), value: [ { tag: 'Copypaste', description: wgULS('内容可能是从某个来源处拷贝后粘贴', '內容可能是從某個來源處拷貝後貼上') }, { tag: 'External links', description: wgULS('使用外部链接的方式可能不符合维基百科的方针或指引', '使用外部連結的方式可能不符合維基百科的方針或指引') }, { tag: 'Non-free', description: wgULS('可能过多或不当地使用了受著作权保护的文字、图像或多媒体文件', '可能過多或不當地使用了受版權保護的文字、圖像或多媒體檔案') } ] }, { key: wgULS('结构和导言', '結構和導言'), value: [ { tag: 'Lead too long', description: wgULS('导言部分也许过于冗长', '導言部分也許過於冗長') }, { tag: 'Lead too short', description: wgULS('导言部分也许不足以概括其内容', '導言部分也許不足以概括其內容') }, { tag: 'Very long', description: wgULS('可能过于冗长', '可能過於冗長') } ] }, { key: wgULS('虚构作品相关清理', '虛構作品相關清理'), value: [ { tag: 'In-universe', description: wgULS('使用小说故事内的观点描述一个虚构事物', '使用小說故事內的觀點描述一個虛構事物') }, { tag: 'Long plot', description: wgULS('可能包含过于详细的剧情摘要', '可能包含過於詳細的劇情摘要') } ] }] }, { key: wgULS('常规条目问题', '常規條目問題'), value: [{ key: '重要性和知名度', value: [ { tag: 'Notability', description: wgULS('可能不符合通用关注度指引', '可能不符合通用關注度指引'), excludeMI: true }, // has a subgroup with subcategories { tag: 'Notability Unreferenced', description: wgULS('可能具备关注度,但需要来源加以彰显', '可能具備關注度,但需要來源加以彰顯') } ] }, { key: wgULS('写作风格', '寫作風格'), value: [ { tag: 'Advert', description: wgULS('类似广告或宣传性内容', '類似廣告或宣傳性內容') }, { tag: 'Fanpov', description: wgULS('类似爱好者网页', '類似愛好者網頁') }, { tag: 'How-to', description: wgULS('包含指南或教学内容', '包含指南或教學內容') }, { tag: 'Inappropriate person', description: wgULS('使用不适当的第一人称和第二人称', '使用不適當的第一人稱和第二人稱') }, { tag: 'Newsrelease', description: wgULS('阅读起来像是新闻稿及包含过度的宣传性语调', '閱讀起來像是新聞稿及包含過度的宣傳性語調') }, { tag: 'Prose', description: wgULS('使用了日期或时间列表式记述,需要改写为连贯的叙述性文字', '使用了日期或時間列表式記述,需要改寫為連貫的敘述性文字') }, { tag: 'Review', description: wgULS('阅读起来类似评论,需要清理', '閱讀起來類似評論,需要清理') }, { tag: 'Tone', description: wgULS('语调或风格可能不适合百科全书的写作方式', '語調或風格可能不適合百科全書的寫作方式') } ] }, { key: wgULS('内容', '內容'), value: [ { tag: 'Expand language', description: wgULS('可以根据其他语言版本扩展', '可以根據其他語言版本擴充') }, // these three have a subgroup with several options { tag: 'Missing information', description: '缺少必要的信息' }, // these three have a subgroup with several options { tag: 'Substub', description: wgULS('过于短小', '過於短小'), excludeMI: true }, { tag: 'Unencyclopedic', description: wgULS('可能不适合写入百科全书', '可能不適合寫入百科全書') } ] }, { key: wgULS('信息和细节', '資訊和細節'), value: [ { tag: 'Expert needed', description: wgULS('需要精通或熟悉本主题的专业人士(专家)参与及协助编辑', '需要精通或熟悉本主題的專業人士(專家)參與及協助編輯') }, { tag: 'Overly detailed', description: wgULS('包含太多过度细节内容', '包含太多過度細節內容') }, { tag: 'Trivia', description: wgULS('应避免有陈列杂项、琐碎资料的部分', '應避免有陳列雜項、瑣碎資料的部分') } ] }, { key: wgULS('时间性', '時間性'), value: [ { tag: 'Current', description: wgULS('记述新闻动态', '記述新聞動態'), excludeMI: true }, // Works but not intended for use in MI { tag: 'Update', description: wgULS('当前条目或章节需要更新', '當前條目或章節需要更新') } ] }, { key: wgULS('中立、偏见和事实准确性', '中立、偏見和事實準確性'), value: [ { tag: 'Autobiography', description: wgULS('类似一篇自传,或内容主要由条目描述的当事人或组织撰写、编辑', '類似一篇自傳,或內容主要由條目描述的當事人或組織撰寫、編輯') }, { tag: 'COI', description: wgULS('主要贡献者与本条目所宣扬的内容可能存在利益冲突', '主要貢獻者與本條目所宣揚的內容可能存在利益衝突') }, { tag: 'Disputed', description: wgULS('内容疑欠准确,有待查证', '內容疑欠準確,有待查證') }, { tag: 'Globalize', description: wgULS('仅具有一部分地区的信息或观点', '僅具有一部分地區的資訊或觀點') }, { tag: 'Hoax', description: wgULS('真实性被质疑', '真實性被質疑') }, { tag: 'POV', description: wgULS('中立性有争议。内容、语调可能带有明显的个人观点或地方色彩', '中立性有爭議。內容、語調可能帶有明顯的個人觀點或地方色彩') }, { tag: 'Self-contradictory', description: wgULS('内容自相矛盾', '內容自相矛盾') }, { tag: 'Weasel', description: wgULS('语义模棱两可而损及其中立性或准确性', '語意模棱兩可而損及其中立性或準確性') } ] }, { key: wgULS('可供查证和来源', '可供查證和來源'), value: [ { tag: 'BLPdispute', description: wgULS('可能违反了维基百科关于生者传记的方针', '可能違反了維基百科關於生者傳記的方針') }, { tag: 'BLPsources', description: wgULS('生者传记需要补充更多可供查证的来源', '生者傳記需要補充更多可供查證的來源') }, { tag: 'BLP unsourced', description: wgULS('生者传记没有列出任何参考或来源', '生者傳記沒有列出任何參考或來源') }, { tag: 'Citecheck', description: wgULS('可能包含不适用或被曲解的引用资料,部分内容的准确性无法被证实', '可能包含不適用或被曲解的引用資料,部分內容的準確性無法被證實') }, { tag: 'More footnotes needed', description: wgULS('因为文内引用不足,部分字句的来源仍然不明', '因為文內引用不足,部分字句的來源仍然不明') }, { tag: 'No footnotes', description: wgULS('因为没有内文引用而来源仍然不明', '因為沒有內文引用而來源仍然不明') }, { tag: 'Onesource', description: wgULS('极大或完全地依赖于某个单一的来源', '極大或完全地依賴於某個單一的來源') }, { tag: 'Original research', description: wgULS('可能包含原创研究或未查证内容', '可能包含原創研究或未查證內容') }, { tag: 'Primarysources', description: wgULS('依赖第一手来源', '依賴第一手來源') }, { tag: 'Refimprove', description: wgULS('需要补充更多来源', '需要補充更多來源') }, { tag: 'Unreferenced', description: wgULS('没有列出任何参考或来源', '沒有列出任何參考或來源') } ] }] }, { key: wgULS('具体内容问题', '具體內容問題'), value: [{ key: wgULS('语言', '語言'), value: [ { tag: 'NotMandarin', description: wgULS('包含过多不是现代标准汉语的内容', '包含過多不是現代標準漢語的內容'), excludeMI: true }, { tag: 'Rough translation', description: wgULS('翻译品质不佳', '翻譯品質不佳') } ] }, { key: wgULS('链接', '連結'), value: [ { tag: 'Dead end', description: wgULS('需要加上内部链接以构筑百科全书的链接网络', '需要加上內部連結以構築百科全書的連結網絡') }, { tag: 'Orphan', description: wgULS('没有或只有很少链入页面', '沒有或只有很少連入頁面') }, { tag: 'Overlinked', description: wgULS('含有过多、重复、或不必要的内部链接', '含有過多、重複、或不必要的內部連結') }, { tag: 'Underlinked', description: wgULS('需要更多内部链接以构筑百科全书的链接网络', '需要更多內部連結以構築百科全書的連結網絡') } ] }, { key: wgULS('参考技术', '參考技術'), value: [ { tag: 'Citation style', description: wgULS('引用需要进行清理', '引用需要進行清理') } ] }, { key: wgULS('分类', '分類'), value: [ { tag: 'Improve categories', description: wgULS('需要更多页面分类', '需要更多頁面分類'), excludeMI: true }, { tag: 'Uncategorized', description: wgULS('缺少页面分类', '缺少頁面分類'), excludeMI: true } ] }] }, { key: wgULS('合并、拆分、移动', '合併、拆分、移動'), value: [ { tag: 'Merge from', description: wgULS('建议将页面并入本页面', '建議將頁面併入本頁面'), excludeMI: true }, { tag: 'Merge to', description: wgULS('建议将此页面并入页面', '建議將此頁面併入頁面'), excludeMI: true }, { tag: 'Merge', description: wgULS('建议此页面与页面合并', '建議此頁面與頁面合併'), excludeMI: true }, { tag: 'Requested move', description: wgULS('建议将此页面移动到新名称', '建議將此頁面移動到新名稱'), excludeMI: true }, { tag: 'Split', description: wgULS('建议将此页面分割为多个页面', '建議將此頁面分割為多個頁面'), excludeMI: true } ] }]; // Tags for REDIRECTS start here // Not by policy, but the list roughly approximates items with >500 // transclusions from Template:R template index Twinkle.tag.redirectList = [{ key: '常用模板', value: [ { tag: wgULS('合并重定向', '合併重定向'), description: wgULS('保持页面题名至相应主条目,令页面内容在合并后仍能保存其编辑历史', '保持頁面題名至相應主條目,令頁面內容在合併後仍能儲存其編輯歷史') }, { tag: wgULS('简繁重定向', '簡繁重定向'), description: wgULS('引导简体至繁体,或繁体至简体', '引導簡體至繁體,或繁體至簡體') }, { tag: wgULS('关注度重定向', '關注度重定向'), description: wgULS('缺乏关注度的子主题向有关注度的母主题的重定向', '缺乏關注度的子主題向有關注度的母主題的重定向') }, { tag: '模板重定向', description: wgULS('指向模板的重定向页面', '指向模板的重定向頁面') }, { tag: wgULS('别名重定向', '別名重定向'), description: wgULS('标题的其他名称、笔名、绰号、同义字等', '標題的其他名稱、筆名、綽號、同義字等') }, { tag: wgULS('译名重定向', '譯名重定向'), description: wgULS('人物、作品等各项事物的其他翻译名称', '人物、作品等各項事物的其他翻譯名稱') }, { tag: wgULS('缩写重定向', '縮寫重定向'), description: wgULS('标题缩写', '標題縮寫') }, { tag: wgULS('拼写重定向', '拼寫重定向'), description: wgULS('标题的其他不同拼写', '標題的其他不同拼寫') }, { tag: wgULS('错字重定向', '錯字重定向'), description: wgULS('纠正标题的常见错误拼写或误植', '糾正標題的常見錯誤拼寫或誤植') }, { tag: wgULS('旧名重定向', '舊名重定向'), description: wgULS('将事物早前的名称引导至更改后的主题', '將事物早前的名稱引導至更改後的主題') }, { tag: '全名重定向', description: wgULS('标题的完整或更完整名称', '標題的完整或更完整名稱') }, { tag: '短名重定向', description: wgULS('完整标题名称或人物全名的部分、不完整的名称或简称', '完整標題名稱或人物全名的部分、不完整的名稱或簡稱') }, { tag: '姓氏重定向', description: '人物姓氏' }, { tag: '名字重定向', description: '人物人名' }, { tag: '本名重定向', description: '人物本名' }, { tag: '非中文重定向', description: wgULS('非中文标题', '非中文標題'), subgroup: [ { name: 'altLangFrom', type: 'input', label: '本重新導向的語言(可選)', tooltip: '輸入重新導向名稱所使用語言的ISO 639代碼,例如en代表英語,代碼可參見 Template:ISO_639_name' } ] }, { tag: '日文重定向', description: wgULS('日语名称', '日語名稱') } ] }, { key: '偶用模板', value: [ { tag: '角色重定向', description: wgULS('电视剧、电影、书籍等作品的角色', '電視劇、電影、書籍等作品的角色') }, { tag: wgULS('章节重定向', '章節重定向'), description: wgULS('导向至较高密度组织的页面', '導向至較高密度組織的頁面') }, { tag: '列表重定向', description: wgULS('导向至低密度的列表', '導向至低密度的列表') }, { tag: '可能性重定向', description: wgULS('导向至当前提供内容更为详尽的目标页面', '導向至當前提供內容更為詳盡的目標頁面') }, { tag: wgULS('关联字重定向', '關聯字重定向'), description: wgULS('标题名称关联字', '標題名稱關聯字') }, { tag: wgULS('条目请求重定向', '條目請求重定向'), description: wgULS('需要独立条目的页面', '需要獨立條目的頁面'), subgroup: [ { name: 'reqArticleLang', type: 'input', label: '外語語言代碼:', tooltip: '使用ISO 639代碼,可參見 Template:ISO_639_name' }, { name: 'reqArticleTitle', type: 'input', label: '外語頁面名稱:', size: 60 } ] }, { tag: wgULS('快捷方式重定向', '捷徑重定向'), description: wgULS('维基百科快捷方式', '維基百科快捷方式') } ] }, { key: wgULS('鲜用模板', '鮮用模板'), value: [ { tag: wgULS('词组重定向', '詞組重定向'), description: wgULS('将词组/词组/成语指向切题的条目及恰当章节', '將詞組/詞組/成語指向切題的條目及恰當章節') }, { tag: wgULS('消歧义页重定向', '消歧義頁重定向'), description: wgULS('指向消歧义页', '指向消歧義頁') }, { tag: '域名重定向', description: wgULS('域名', '網域名稱') }, { tag: '年代重定向', description: wgULS('于年份条目导向至年代条目', '於年份條目導向至年代條目') }, { tag: wgULS('用户框模板重定向', '用戶框模板重定向'), description: wgULS('用户框模板', '用戶框模板') }, { tag: '重定向模板用重定向', description: wgULS('导向至重定向模板', '導向至重定向模板') }, { tag: 'EXIF重定向', description: wgULS('JPEG图像文件包含EXIF信息', 'JPEG圖檔包含EXIF資訊') } ] }]; // maintenance tags for FILES start here Twinkle.tag.fileList = [{ key: wgULS('著作权和来源问题标签', '著作權和來源問題標籤'), value: [ { label: '{{Non-free reduce}}:' + wgULS('非低分辨率的合理使用图像(或过长的音频剪辑等)', '非低解析度的合理使用圖像(或過長的音頻剪輯等)'), value: 'Non-free reduce' } ] }, { key: wgULS('维基共享资源相关标签', '維基共享資源相關標籤'), value: [ { label: '{{Copy to Wikimedia Commons}}:' + wgULS('自由著作权文件应该被移动至维基共享资源', '自由版權檔案應該被移動至維基共享資源'), value: 'Copy to Wikimedia Commons' }, { label: '{{Do not move to Commons}}:' + wgULS('不要移动至维基共享资源', '不要移動至維基共享資源'), value: 'Do not move to Commons', subgroup: { type: 'input', name: 'DoNotMoveToCommons_reason', label: '原因:', tooltip: wgULS('输入不应该将该图像移动到维基共享资源的原因(必填)。', '輸入不應該將該圖像移動到維基共享資源的原因(必填)。') } }, { label: '{{Keep local}}:' + wgULS('请求在本地保留维基共享资源的文件副本', '請求在本地保留維基共享資源的檔案副本'), value: 'Keep local', subgroup: [ { type: 'input', name: 'keeplocalName', label: wgULS('共享资源的不同图像名称:', '共享資源的不同圖像名稱:'), tooltip: wgULS('输入在共享资源的图像名称(如果不同于本地名称),不包括 File: 前缀', '輸入在共享資源的圖像名稱(如果不同於本地名稱),不包括 File: 字首') }, { type: 'input', name: 'keeplocalReason', label: '原因:', tooltip: wgULS('输入请求在本地保留文件副本的原因(可选):', '輸入請求在本地保留檔案副本的原因(可選):') } ] }, { label: '{{Now Commons}}:' + wgULS('文件已被复制到维基共享资源(CSD F7)', '檔案已被複製到維基共享資源(CSD F7)'), value: 'Now Commons', subgroup: { type: 'input', name: 'nowcommonsName', label: wgULS('共享资源的不同图像名称:', '共享資源的不同圖像名稱:'), tooltip: wgULS('输入在共享资源的图像名称(如果不同于本地名称),不包括 File: 前缀', '輸入在共享資源的圖像名稱(如果不同於本地名稱),不包括 File: 字首') } } ] }, { key: wgULS('清理标签', '清理標籤'), value: [ { label: '{{Imagewatermark}}:' + wgULS('图像包含了水印', '圖像包含了浮水印'), value: 'Imagewatermark' }, { label: '{{Rename media}}:' + wgULS('文件应该根据文件名称指引被重命名', '檔案應該根據檔案名稱指引被重新命名'), value: 'Rename media', subgroup: [ { type: 'input', name: 'renamemediaNewname', label: wgULS('新名称:', '新名稱:'), tooltip: wgULS('输入图像的新名称(可选)', '輸入圖像的新名稱(可選)') }, { type: 'input', name: 'renamemediaReason', label: '原因:', tooltip: wgULS('输入重命名的原因(可选)', '輸入重新命名的原因(可選)') } ] }, { label: '{{Should be SVG}}:' + wgULS('PNG、GIF、JPEG文件应该重制成矢量图形', 'PNG、GIF、JPEG檔案應該重製成向量圖形'), value: 'Should be SVG' } ] }, { key: wgULS('文件取代标签', '檔案取代標籤'), value: [ { label: '{{Obsolete}}:' + wgULS('有新版本可用的过时文件', '有新版本可用的過時檔案'), value: 'Obsolete' }, { label: '{{Vector version available}}:' + wgULS('有矢量图形可用的非矢量图形文件', '有向量圖形可用的非向量圖形檔案'), value: 'Vector version available' } ], buildFilename: true }]; Twinkle.tag.callbacks = { article: function articleCallback(pageobj) { // Remove tags that become superfluous with this action var pageText = pageobj.getPageText().replace(/\{\{\s*([Nn]ew unreviewed article|[Uu]nreviewed|[Uu]serspace draft)\s*(\|(?:\{\{[^{}]*\}\}|[^{}])*)?\}\}\s*/g, ''); var params = pageobj.getCallbackParameters(); /** * Saves the page following the removal of tags if any. The last step. * Called from removeTags() */ var postRemoval = function() { if (params.tagsToRemove.length) { // Remove empty {{multiple issues}} if found pageText = pageText.replace(/\{\{(multiple ?issues|article ?issues|mi|ai|issues|多個問題|多个问题|問題條目|问题条目|數個問題|数个问题)\s*\|\s*\}\}\n?/im, ''); // Remove single-element {{multiple issues}} if found pageText = pageText.replace(/\{\{(?:multiple ?issues|article ?issues|mi|ai|issues|多個問題|多个问题|問題條目|问题条目|數個問題|数个问题)\s*\|\s*(\{\{(?:\{\{[^{}]*\}\}|[^{}])+\}\})\s*\}\}/im, '$1'); } // Build edit summary var makeSentence = function(array) { if (array.length < 3) { return array.join('和'); } var last = array.pop(); return array.join('、') + '和' + last; }; var makeTemplateLink = function(tag) { var text = '{{[['; // if it is a custom tag with a parameter if (tag.indexOf('|') !== -1) { tag = tag.slice(0, tag.indexOf('|')); } text += tag.indexOf(':') !== -1 ? tag : 'Template:' + tag + '|' + tag; return text + ']]}}'; }; var summaryText; var addedTags = params.tags.map(makeTemplateLink); var removedTags = params.tagsToRemove.map(makeTemplateLink); if (addedTags.length) { summaryText = '加入' + makeSentence(addedTags); summaryText += removedTags.length ? '並移除' + makeSentence(removedTags) : ''; } else { summaryText = '移除' + makeSentence(removedTags); } summaryText += wgULS('标记', '標記'); if (params.reason) { summaryText += ':' + params.reason; } // avoid truncated summaries if (summaryText.length > 499) { summaryText = summaryText.replace(/\[\[[^|]+\|([^\]]+)\]\]/g, '$1'); } pageobj.setPageText(pageText); pageobj.setEditSummary(summaryText); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setWatchlist(Twinkle.getPref('watchTaggedPages')); pageobj.setMinorEdit(Twinkle.getPref('markTaggedPagesAsMinor')); pageobj.setCreateOption('nocreate'); pageobj.save(function() { // special functions for merge tags if (params.mergeReason) { // post the rationale on the talk page (only operates in main namespace) var talkpage = new Morebits.wiki.page('Talk:' + params.discussArticle, wgULS('将理由贴进讨论页', '將理由貼進討論頁')); talkpage.setNewSectionText(params.mergeReason.trim() + ' ~~~~'); talkpage.setNewSectionTitle('请求与[[' + params.nonDiscussArticle + ']]合并'); talkpage.setChangeTags(Twinkle.changeTags); talkpage.setWatchlist(Twinkle.getPref('watchMergeDiscussions')); talkpage.setCreateOption('recreate'); talkpage.newSection(); } if (params.mergeTagOther) { // tag the target page if requested var otherTagName = 'Merge'; if (params.mergeTag === 'Merge from') { otherTagName = 'Merge to'; } else if (params.mergeTag === 'Merge to') { otherTagName = 'Merge from'; } var newParams = { tags: [otherTagName], tagsToRemove: [], tagsToRemain: [], mergeTarget: Morebits.pageNameNorm, discussArticle: params.discussArticle, talkDiscussionTitle: params.talkDiscussionTitle, talkDiscussionTitleLinked: params.talkDiscussionTitleLinked }; var otherpage = new Morebits.wiki.page(params.mergeTarget, wgULS('标记其他页面(', '標記其他頁面(') + params.mergeTarget + ')'); otherpage.setCallbackParameters(newParams); otherpage.load(Twinkle.tag.callbacks.article); } // special functions for requested move tags if (params.moveReason) { // post the rationale on the talk page (only operates in main namespace) var moveTalkpageText = '\n\n{{subst:RM|1=' + params.moveReason.trim(); if (params.moveTarget) { moveTalkpageText += '|2=' + params.moveTarget; } moveTalkpageText += '}}'; var moveTalkpage = new Morebits.wiki.page('Talk:' + params.discussArticle, wgULS('将理由贴进讨论页', '將理由貼進討論頁')); moveTalkpage.setAppendText(moveTalkpageText); moveTalkpage.setEditSummary(wgULS('请求移动', '請求移動') + (params.moveTarget ? '至[[' + params.moveTarget + ']]' : '')); moveTalkpage.setChangeTags(Twinkle.changeTags); moveTalkpage.setCreateOption('recreate'); moveTalkpage.append(); } }); if (params.patrol) { pageobj.patrol(); } }; /** * Removes the existing tags that were deselected (if any) * Calls postRemoval() when done */ var removeTags = function removeTags() { if (params.tagsToRemove.length === 0) { postRemoval(); return; } Morebits.status.info(wgULS('信息', '資訊'), wgULS('移除取消选择的已存在标记', '移除取消選擇的已存在標記')); var getRedirectsFor = []; // Remove the tags from the page text, if found in its proper name, // otherwise moves it to `getRedirectsFor` array earmarking it for // later removal params.tagsToRemove.forEach(function removeTag(tag) { var tag_re = new RegExp('\\{\\{' + Morebits.pageNameRegex(tag) + '\\s*(\\|[^}]+)?\\}\\}\\n?'); if (tag_re.test(pageText)) { pageText = pageText.replace(tag_re, ''); } else { getRedirectsFor.push('Template:' + tag); } }); if (!getRedirectsFor.length) { postRemoval(); return; } // Remove tags which appear in page text as redirects var api = new Morebits.wiki.api(wgULS('获取模板重定向', '取得模板重新導向'), { action: 'query', prop: 'linkshere', titles: getRedirectsFor.join('|'), redirects: 1, // follow redirect if the class name turns out to be a redirect page lhnamespace: '10', // template namespace only lhshow: 'redirect', lhlimit: 'max' // 500 is max for normal users, 5000 for bots and sysops }, function removeRedirectTag(apiobj) { $(apiobj.responseXML).find('page').each(function(idx, page) { var removed = false; $(page).find('lh').each(function(idx, el) { var tag = $(el).attr('title').slice(9); var tag_re = new RegExp('\\{\\{' + Morebits.pageNameRegex(tag) + '\\s*(\\|(?:\\{\\{[^{}]*\\}\\}|[^{}])*)?\\}\\}\\n?'); if (tag_re.test(pageText)) { pageText = pageText.replace(tag_re, ''); removed = true; return false; // break out of $.each } }); if (!removed) { Morebits.status.warn(wgULS('信息', '資訊'), wgULS('无法在页面上找到{{', '無法在頁面上找到{{') + $(page).attr('title').slice(9) + wgULS('}}…跳过', '}}…跳過')); } }); postRemoval(); }); api.post(); }; if (!params.tags.length) { removeTags(); return; } var tagRe, tagText = '', tags = [], groupableTags = [], groupableExistingTags = []; // Executes first: addition of selected tags /** * Updates `tagText` with the syntax of `tagName` template with its parameters * @param {number} tagIndex * @param {string} tagName */ var addTag = function articleAddTag(tagIndex, tagName) { var currentTag = ''; if (tagName === 'Uncategorized' || tagName === 'Improve categories') { pageText += '\n\n{{' + tagName + '|time={{subst:#time:c}}}}'; } else { currentTag += '{{' + tagName; // fill in other parameters, based on the tag switch (tagName) { case 'Expand language': currentTag += '|1=' + params.expandLanguage; if (params.highQualityArticle) { currentTag += '|status=yes'; } if (params.expandLanguage2) { currentTag += '|2=' + params.expandLanguage2; if (params.highQualityArticle2) { currentTag += '|status2=yes'; } } if (params.expandLanguage3) { currentTag += '|3=' + params.expandLanguage3; if (params.highQualityArticle3) { currentTag += '|status3=yes'; } } break; case 'Expert needed': currentTag += '|subject=' + params.expert; if (params.expert2) { currentTag += '|subject2=' + params.expert2; } if (params.expert3) { currentTag += '|subject3=' + params.expert3; } break; case 'Merge': case 'Merge to': case 'Merge from': if (params.mergeTarget) { // normalize the merge target for now and later params.mergeTarget = Morebits.string.toUpperCaseFirstChar(params.mergeTarget.replace(/_/g, ' ')); currentTag += '|' + params.mergeTarget; // link to the correct section on the talk page, for article space only if (mw.config.get('wgNamespaceNumber') === 0 && (params.mergeReason || params.discussArticle)) { if (!params.discussArticle) { // discussArticle is the article whose talk page will contain the discussion params.discussArticle = tagName === 'Merge to' ? params.mergeTarget : mw.config.get('wgTitle'); // nonDiscussArticle is the article which won't have the discussion params.nonDiscussArticle = tagName === 'Merge to' ? mw.config.get('wgTitle') : params.mergeTarget; params.talkDiscussionTitle = wgULS('请求与', '請求與') + params.nonDiscussArticle + wgULS('合并', '合併'); } currentTag += '|discuss=Talk:' + params.discussArticle + '#' + params.talkDiscussionTitle; } } break; case 'Missing information': currentTag += '|1=' + params.missingInformation; break; case 'Notability': if (params.notability !== 'none') { currentTag += '|3=' + params.notability; } break; case 'Requested move': if (params.moveTarget) { // normalize the move target for now and later params.moveTarget = Morebits.string.toUpperCaseFirstChar(params.moveTarget.replace(/_/g, ' ')); params.discussArticle = mw.config.get('wgTitle'); currentTag += '|' + params.moveTarget; } break; case 'Split': if (params.target1) { currentTag += '|1=' + params.target1; } if (params.target2) { currentTag += '|2=' + params.target2; } if (params.target3) { currentTag += '|3=' + params.target3; } break; case 'Cleanup': if (params.cleanupReason) { currentTag += '|reason=' + params.cleanupReason; } break; default: break; } currentTag += '|time={{subst:#time:c}}}}\n'; tagText += currentTag; } }; /** * Adds the tags which go outside {{multiple issues}}, either because * these tags aren't supported in {{multiple issues}} or because * {{multiple issues}} is not being added to the page at all */ var addUngroupedTags = function() { $.each(tags, addTag); // Insert tag after short description or any hatnotes, // as well as deletion/protection-related templates var wikipage = new Morebits.wikitext.page(pageText); var templatesAfter = Twinkle.hatnoteRegex + // Protection templates 'pp|pp-.*?|' + // CSD '(?:Delete|Db-reason|D|Deletebecause|Db|速删|速刪|Speedy|SD|快删|快刪|CSD)|' + // AfD '[rsaiftcmv]fd|vfd-(?:b|q|s|source|v|wikt)|(?:移动到维基|移動到維基)(?:教科书|教科書|语录|語錄|文库|文庫|导游|導遊|词典|詞典)'; pageText = wikipage.insertAfterTemplates(tagText, templatesAfter).getText(); removeTags(); }; // Separate tags into groupable ones (`groupableTags`) and non-groupable ones (`tags`) params.tags.forEach(function(tag) { tagRe = new RegExp('\\{\\{' + tag + '(\\||\\}\\})', 'im'); // regex check for preexistence of tag can be skipped if in canRemove mode if (Twinkle.tag.canRemove || !tagRe.exec(pageText)) { if (tag === 'Notability' && (mw.config.get('wgNamespaceNumber') === 0 || confirm(wgULS('该页面不是条目,您仍要提报到关注度提报吗?', '該頁面不是條目,您仍要提報到關注度提報嗎?')))) { var wikipedia_page = new Morebits.wiki.page('Wikipedia:关注度/提报', wgULS('加入关注度记录项', '加入關注度記錄項')); wikipedia_page.setFollowRedirect(true); wikipedia_page.setCallbackParameters(params); wikipedia_page.load(Twinkle.tag.callbacks.notabilityList); } // condition Twinkle.tag.article.tags[tag] to ensure that its not a custom tag // Custom tags are assumed non-groupable, since we don't know whether MI template supports them if (Twinkle.tag.article.flatObject[tag] && !Twinkle.tag.article.flatObject[tag].excludeMI) { groupableTags.push(tag); } else { tags.push(tag); } } else { if (tag === 'Merge from') { tags.push(tag); } else { Morebits.status.warn(wgULS('信息', '資訊'), wgULS('在页面上找到{{', '在頁面上找到{{') + tag + wgULS('}}…跳过', '}}…跳過')); // don't do anything else with merge tags if (['Merge', 'Merge to'].indexOf(tag) !== -1) { params.mergeTarget = params.mergeReason = params.mergeTagOther = null; } } } }); // To-be-retained existing tags that are groupable params.tagsToRemain.forEach(function(tag) { // If the tag is unknown to us, we consider it non-groupable if (Twinkle.tag.article.flatObject[tag] && !Twinkle.tag.article.flatObject[tag].excludeMI) { groupableExistingTags.push(tag); } }); var miTest = /\{\{(multiple ?issues|article ?issues|mi|ai|issues|多個問題|多个问题|問題條目|问题条目|數個問題|数个问题)\s*\|[^}]+\{/im.exec(pageText); if (miTest && groupableTags.length > 0) { Morebits.status.info(wgULS('信息', '資訊'), wgULS('加入支持的标记入已存在的{{multiple issues}}', '加入支援的標記入已存在的{{multiple issues}}')); tagText = ''; $.each(groupableTags, addTag); var miRegex = new RegExp('(\\{\\{\\s*' + miTest[1] + '\\s*(?:\\|(?:\\{\\{[^{}]*\\}\\}|[^{}])*)?)\\}\\}\\s*', 'im'); pageText = pageText.replace(miRegex, '$1' + tagText + '}}\n'); tagText = ''; addUngroupedTags(); } else if (params.group && !miTest && (groupableExistingTags.length + groupableTags.length) >= 2) { Morebits.status.info(wgULS('信息', '資訊'), wgULS('加入支持的标记入{{multiple issues}}', '加入支援的標記入{{multiple issues}}')); tagText += '{{Multiple issues|\n'; /** * Adds newly added tags to MI */ var addNewTagsToMI = function() { $.each(groupableTags, addTag); tagText += '}}\n'; addUngroupedTags(); }; var getRedirectsFor = []; // Reposition the tags on the page into {{multiple issues}}, if found with its // proper name, else moves it to `getRedirectsFor` array to be handled later groupableExistingTags.forEach(function repositionTagIntoMI(tag) { var tag_re = new RegExp('(\\{\\{' + Morebits.pageNameRegex(tag) + '\\s*(\\|[^}]+)?\\}\\}\\n?)'); if (tag_re.test(pageText)) { tagText += tag_re.exec(pageText)[1]; pageText = pageText.replace(tag_re, ''); } else { getRedirectsFor.push('Template:' + tag); } }); if (!getRedirectsFor.length) { addNewTagsToMI(); return; } var api = new Morebits.wiki.api(wgULS('获取模板重定向', '取得模板重新導向'), { action: 'query', prop: 'linkshere', titles: getRedirectsFor.join('|'), redirects: 1, lhnamespace: '10', // template namespace only lhshow: 'redirect', lhlimit: 'max' // 500 is max for normal users, 5000 for bots and sysops }, function replaceRedirectTag(apiobj) { $(apiobj.responseXML).find('page').each(function(idx, page) { var found = false; $(page).find('lh').each(function(idx, el) { var tag = $(el).attr('title').slice(9); var tag_re = new RegExp('(\\{\\{' + Morebits.pageNameRegex(tag) + '\\s*(\\|[^}]*)?\\}\\}\\n?)'); if (tag_re.test(pageText)) { tagText += tag_re.exec(pageText)[1]; pageText = pageText.replace(tag_re, ''); found = true; return false; // break out of $.each } }); if (!found) { Morebits.status.warn(wgULS('信息', '資訊'), wgULS('无法在页面上找到{{', '無法在頁面上找到{{') + $(page).attr('title').slice(9) + wgULS('}}…跳过', '}}…跳過')); } }); addNewTagsToMI(); }); api.post(); } else { tags = tags.concat(groupableTags); addUngroupedTags(); } }, notabilityList: function(pageobj) { // var text = pageobj.getPageText(); // var params = pageobj.getCallbackParameters(); pageobj.setAppendText('\n{{subst:Fameitem|title=' + Morebits.pageNameNorm + '}}'); pageobj.setEditSummary('加入' + '[[' + Morebits.pageNameNorm + ']]'); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setCreateOption('recreate'); pageobj.append(); }, redirect: function redirect(pageobj) { var params = pageobj.getCallbackParameters(), pageText = pageobj.getPageText(), tagRe, tagText = '', summaryText = '加入', tags = [], i; for (i = 0; i < params.tags.length; i++) { tagRe = new RegExp('(\\{\\{' + params.tags[i] + '(\\||\\}\\}))', 'im'); if (!tagRe.exec(pageText)) { tags.push(params.tags[i]); } else { Morebits.status.warn(wgULS('信息', '資訊'), wgULS('在重定向上找到{{', '在重新導向上找到{{') + params.tags[i] + wgULS('}}…跳过', '}}…跳過')); } } var addTag = function redirectAddTag(tagIndex, tagName) { tagText += '\n{{' + tagName; if (tagName === '非中文重定向') { if (params.altLangFrom) { tagText += '|1=' + params.altLangFrom; } } else if (tagName === '条目请求重定向' || tagName === '條目請求重定向') { if (params.reqArticleLang && params.reqArticleTitle) { tagText += '|1=' + params.reqArticleLang; tagText += '|2=' + params.reqArticleTitle; } } tagText += '}}'; if (tagIndex > 0) { if (tagIndex === (tags.length - 1)) { summaryText += '和'; } else if (tagIndex < (tags.length - 1)) { summaryText += '、'; } } summaryText += '{{[[:' + (tagName.indexOf(':') !== -1 ? tagName : 'Template:' + tagName + '|' + tagName) + ']]}}'; }; if (!tags.length) { Morebits.status.warn(wgULS('信息', '資訊'), wgULS('没有标签可供标记', '沒有標籤可供標記')); } tags.sort(); $.each(tags, addTag); // Check for all Rcat shell redirects (from #433) if (pageText.match(/{{(?:redr|this is a redirect|r(?:edirect)?(?:.?cat.*)?[ _]?sh)/i)) { // Regex inspired by [[User:Kephir/gadgets/sagittarius.js]] ([[Special:PermaLink/831402893]]) var oldTags = pageText.match(/(\s*{{[A-Za-z\s]+\|(?:\s*1=)?)((?:[^|{}]|{{[^}]+}})+)(}})\s*/i); pageText = pageText.replace(oldTags[0], oldTags[1] + tagText + oldTags[2] + oldTags[3]); } else { // Fold any pre-existing Rcats into taglist and under Rcatshell var pageTags = pageText.match(/\s*{{.+?重定向.*?}}/img); var oldPageTags = ''; if (pageTags) { pageTags.forEach(function(pageTag) { var pageRe = new RegExp(Morebits.string.escapeRegExp(pageTag), 'img'); pageText = pageText.replace(pageRe, ''); pageTag = pageTag.trim(); oldPageTags += '\n' + pageTag; }); } pageText += '\n{{Redirect category shell|' + tagText + oldPageTags + '\n}}'; } summaryText += (tags.length > 0 ? wgULS('标记', '標記') : '{{Redirect category shell}}') + wgULS('到重定向', '到重新導向'); // avoid truncated summaries if (summaryText.length > 499) { summaryText = summaryText.replace(/\[\[[^|]+\|([^\]]+)\]\]/g, '$1'); } pageobj.setPageText(pageText); pageobj.setEditSummary(summaryText); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setWatchlist(Twinkle.getPref('watchTaggedPages')); pageobj.setMinorEdit(Twinkle.getPref('markTaggedPagesAsMinor')); pageobj.setCreateOption('nocreate'); pageobj.save(); if (params.patrol) { pageobj.patrol(); } }, file: function friendlytagCallbacksFile(pageobj) { var text = pageobj.getPageText(); var params = pageobj.getCallbackParameters(); var summary = '加入'; // Add maintenance tags if (params.tags.length) { var tagtext = '', currentTag; $.each(params.tags, function(k, tag) { // when other commons-related tags are placed, remove "move to Commons" tag if (['Keep local', 'Now Commons', 'Do not move to Commons'].indexOf(tag) !== -1) { text = text.replace(/\{\{(mtc|(copy |move )?to ?commons|move to wikimedia commons|copy to wikimedia commons)[^}]*\}\}/gi, ''); } if (tag === 'Vector version available') { text = text.replace(/\{\{((convert to |convertto|should be |shouldbe|to)?svg|badpng|vectorize)[^}]*\}\}/gi, ''); } currentTag = tag; switch (tag) { case 'Now Commons': currentTag = 'subst:' + currentTag; // subst if (params.nowcommonsName !== '') { currentTag += '|1=' + params.nowcommonsName; } break; case 'Keep local': if (params.keeplocalName !== '') { currentTag += '|1=' + params.keeplocalName; } if (params.keeplocalReason !== '') { currentTag += '|reason=' + params.keeplocalReason; } break; case 'Rename media': if (params.renamemediaNewname !== '') { currentTag += '|1=' + params.renamemediaNewname; } if (params.renamemediaReason !== '') { currentTag += '|2=' + params.renamemediaReason; } break; case 'Vector version available': /* falls through */ case 'Obsolete': currentTag += '|1=' + params[tag.replace(/ /g, '_') + 'File']; break; case 'Do not move to Commons': currentTag += '|reason=' + params.DoNotMoveToCommons_reason; break; case 'Copy to Wikimedia Commons': currentTag += '|human=' + mw.config.get('wgUserName'); break; default: break; // don't care } currentTag = '{{' + currentTag + '}}\n'; tagtext += currentTag; summary += '{{' + tag + '}}、'; }); if (!tagtext) { pageobj.getStatusElement().warn(wgULS('用户取消操作,没什么要做的', '使用者取消操作,沒什麼要做的')); return; } text = tagtext + text; } pageobj.setPageText(text); pageobj.setEditSummary(summary.substring(0, summary.length - 1)); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setWatchlist(Twinkle.getPref('watchTaggedPages')); pageobj.setMinorEdit(Twinkle.getPref('markTaggedPagesAsMinor')); pageobj.setCreateOption('nocreate'); pageobj.save(); if (params.patrol) { pageobj.patrol(); } } }; Twinkle.tag.callback.evaluate = function friendlytagCallbackEvaluate(e) { var form = e.target; var params = Morebits.quickForm.getInputData(form); // Validation // Given an array of incompatible tags, check if we have two or more selected var checkIncompatible = function(conflicts, extra) { var count = conflicts.reduce(function(sum, tag) { return sum += params.tags.indexOf(tag) !== -1; }, 0); if (count > 1) { var message = wgULS('请在以下标签中择一使用', '請在以下標籤中擇一使用') + ':{{' + conflicts.join('}}、{{') + '}}。'; message += extra ? extra : ''; alert(message); return true; } }; // Given a tag, ensure an associate parameter is present // Maybe just sock this away in each function??? var checkParameter = function(tag, parameter, description) { description = description || '理由'; if (params.tags.indexOf(tag) !== -1 && params[parameter].trim() === '') { alert(wgULS('您必须指定', '您必須指定') + '{{' + tag + '}}的' + description + '。'); return true; } }; // We could theoretically put them all checkIncompatible calls in a // forEach loop, but it's probably clearer not to have [[array one], // [array two]] devoid of context. Likewise, all the checkParameter // calls could be in one if, but could be similarly confusing. switch (Twinkle.tag.modeEn) { case 'article': params.tagsToRemove = form.getUnchecked('existingTags'); // not in `input` params.tagsToRemain = params.existingTags || []; // container not created if none present if ((params.tags.indexOf('Merge') !== -1) || (params.tags.indexOf('Merge from') !== -1) || (params.tags.indexOf('Merge to') !== -1)) { if (checkIncompatible(['Merge', 'Merge from', 'Merge to'], wgULS('如果需要多次合并,请使用{{Merge}}并用管道符分隔条目名(但在这种情形中Twinkle不能自动标记其他条目)。', '如果需要多次合併,請使用{{Merge}}並用管道符分隔條目名(但在這種情形中Twinkle不能自動標記其他條目)。'))) { return; } if (!params.mergeTarget) { alert(wgULS('请指定使用于merge模板中的另一个页面标题。', '請指定使用於merge模板中的另一個頁面標題。')); return; } if ((params.mergeTagOther || params.mergeReason) && params.mergeTarget.indexOf('|') !== -1) { alert(wgULS('当前还不支持在一次合并中标记多个条目,与开启关于多个条目的讨论。请不要勾选“标记其他条目”并清空“理由”框后再提交。', '目前還不支援在一次合併中標記多個條目,與開啟關於多個條目的討論。請不要勾選「標記其他條目」並清空「理由」框後再提交。')); return; } } if (checkParameter('Expand language', 'expandLanguage', wgULS('语言代码', '語言代碼'))) { return; } if (checkParameter('Missing information', 'missingInformation', wgULS('缺少的内容', '缺少的內容'))) { return; } if (checkParameter('Expert needed', 'expert', wgULS('专家领域', '專家領域'))) { return; } break; case 'file': // Silly to provide the same string to each of these if (checkParameter('Obsolete', 'ObsoleteFile', wgULS('替换的文件名称', '替換的檔案名稱')) || checkParameter('Vector version available', 'Vector_version_availableFile', wgULS('替换的文件名称', '替換的檔案名稱'))) { return; } if (checkParameter('Do not move to Commons', 'DoNotMoveToCommons_reason')) { return; } break; case 'redirect': break; default: alert('Twinkle.tag:未知模式 ' + Twinkle.tag.mode); break; } // File/redirect: return if no tags selected // Article: return if no tag is selected and no already present tag is deselected if (params.tags.length === 0 && (Twinkle.tag.modeEn !== 'article' || params.tagsToRemove.length === 0)) { alert(wgULS('必须选择至少一个标记!', '必須選擇至少一個標記!')); return; } Morebits.simpleWindow.setButtonsEnabled(false); Morebits.status.init(form); Morebits.wiki.actionCompleted.redirect = Morebits.pageNameNorm; Morebits.wiki.actionCompleted.notice = wgULS('标记完成,将在几秒内刷新页面', '標記完成,將在幾秒內重新整理頁面'); if (Twinkle.tag.modeEn === 'redirect') { Morebits.wiki.actionCompleted.followRedirect = false; } var wikipedia_page = new Morebits.wiki.page(Morebits.pageNameNorm, wgULS('正在标记', '正在標記') + Twinkle.tag.mode); wikipedia_page.setCallbackParameters(params); wikipedia_page.load(Twinkle.tag.callbacks[Twinkle.tag.modeEn]); }; Twinkle.addInitCallback(Twinkle.tag, 'tag'); })(jQuery); // </nowiki> sviwyhqo9qsw5ue4tll129jg8xo5jv4 User:JohanahoJ/sandbox.css 2 112884 532373 532324 2022-08-11T16:48:41Z JohanahoJ 37147 css text/css .scriptcss-logoutvector22-items { position: relative; left: -28px; } .scriptcss-logoutvector22-links { font-size: 14px; } jcyvpjaxg6ow0sa5l64fjxmjblkpmi8 532378 532373 2022-08-11T17:12:18Z JohanahoJ 37147 css text/css .scriptcss-logoutvector22-items { position: relative; left: -28px; } .scriptcss-logoutvector22-links { font-size: 14px; } #pt-logout, #pt-logout-sticky-header { display: none; } my6qbgn49nm9xymzvdrvpae0afo1vmv 532390 532378 2022-08-11T18:42:48Z JohanahoJ 37147 utloggning css text/css /* CSS till logOutVector22.js */ .scriptcss-logoutvector22-items { position: relative; left: -28px; } .scriptcss-logoutvector22-links { font-size: 14px; } #pt-logout, #pt-logout-sticky-header { display: none; } 5jeph64l3l9r38gne0x0u1beo5dp3tx 532393 532390 2022-08-11T18:57:49Z JohanahoJ 37147 Blanked the page css text/css phoiac9h4m842xq45sp7s6u21eteeq1 532418 532393 2022-08-12T05:54:16Z JohanahoJ 37147 css text/css scriptid-logoutvector22-ppers, #scriptid-logoutvector22-ppers-sticky { border-top: 1p solid #aaa; } 5djl5il21cprgdz9hw4k4c0f2tgnjro 532419 532418 2022-08-12T05:54:49Z JohanahoJ 37147 css text/css #scriptid-logoutvector22-ppers, #scriptid-logoutvector22-ppers-sticky { border-top: 1p solid #aaa; } oh5wa4n11uan9e0rlcv7eq8vjg2nu0a 532420 532419 2022-08-12T05:55:26Z JohanahoJ 37147 css text/css #scriptid-logoutvector22-ppers a, #scriptid-logoutvector22-ppers-sticky a { border-top: 1p solid #aaa; } 9hsuqxumx7mb9ipbx1gcphliwl2e9za 532421 532420 2022-08-12T05:56:22Z JohanahoJ 37147 css text/css #scriptid-logoutvector22-ppers, #scriptid-logoutvector22-ppers-sticky { border-top: 1p solid #aaa !important; } gy13e1ysgr933a06mcg9s413pw3e4jm 532422 532421 2022-08-12T05:56:40Z JohanahoJ 37147 Blanked the page css text/css phoiac9h4m842xq45sp7s6u21eteeq1 532433 532422 2022-08-12T06:40:01Z JohanahoJ 37147 css text/css #scriptid-avdelare { border-color: lime; } f1hws5ng1evhlpuao5bgfcf49x10uzq 532434 532433 2022-08-12T06:40:31Z JohanahoJ 37147 css text/css #scriptid-avdelare { color: lime; } 1ptqr4906jut4x9m0iyf8g24dvcb3hq 532435 532434 2022-08-12T06:42:55Z JohanahoJ 37147 css text/css #scriptid-avdelare { border: 1px solid lime !important; } 53dfvbve8gi0nmybvde0632kz8xpq6r 532436 532435 2022-08-12T06:45:03Z JohanahoJ 37147 css text/css #scriptid-avdelare { color: lime !important; } ml9pmwdxei64ha1szdqhuhcrkssojoj 532437 532436 2022-08-12T06:46:34Z JohanahoJ 37147 css text/css #scriptid-avdelare { color: unset !important; color: lime !important; } mds2bnq6kz5ga2d0uvg12imhw7do3qb 532438 532437 2022-08-12T06:47:41Z JohanahoJ 37147 Blanked the page css text/css phoiac9h4m842xq45sp7s6u21eteeq1 532445 532438 2022-08-12T07:04:56Z JohanahoJ 37147 css text/css #scriptid-logoutvector22-ppers { border-top: 1px solid lime; } 6i6iz92w0t1jz5asq578oro0pa48fno 532446 532445 2022-08-12T07:15:39Z JohanahoJ 37147 css text/css #scriptid-logoutvector22-ppers { border-top: 1px solid #e9e9e9; } e08x0z3fitrq4qhgjbycpslztyvx2b8 532447 532446 2022-08-12T07:16:54Z JohanahoJ 37147 Blanked the page css text/css phoiac9h4m842xq45sp7s6u21eteeq1 User:JohanahoJ/sandbox.js 2 112889 532343 532338 2022-08-11T12:03:01Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; if ( mw.config.get( 'skin' ) !== 'vector-2022' ) return; var sandLi = document.getElementById( 'pt-sandbox' ); if ( sandLi ) sandLi.parentNode.appendChild( sandLi ); var prefLi = document.getElementById( 'pt-preferences' ); if ( prefLi ) prefLi.parentNode.appendChild( prefLi ); var sandLiSticky = document .getElementById( 'pt-sandbox-sticky-header' ); if ( sandLiSticky ) sandLiSticky .parentNode.appendChild( sandLiSticky ); var prefLiSticky = document .getElementById( 'pt-preferences-sticky-header' ); if ( prefLiSticky ) prefLiSticky .parentNode.appendChild( prefLiSticky ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } h4bkjeftdjy518a1dxvrc9ma2nq1plz 532344 532343 2022-08-11T12:14:25Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } q0qcluf46dcal489h0fxu7iyy70lcqt 532349 532344 2022-08-11T13:15:35Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'Are you sure?' ).done( function ( confirmed ) { if ( confirmed ) { console.log( 'User clicked "OK"!' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } rvg6rj6fs9bw8b6chr7zs3opmrwbg2k 532352 532349 2022-08-11T13:21:00Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'Are you sure?' ).done( function ( confirmed ) { if ( confirmed ) { console.log( 'User clicked "OK"!' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 7iwp37tltx2rldasseu67a59vrup24d 532353 532352 2022-08-11T13:24:02Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'OK to cancel?' ).done( function ( confirmed ) { if ( confirmed ) { console.log( 'User clicked "OK"!' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } lkmzlfy35gk0f0x4ibidwbggj9n2o0p 532354 532353 2022-08-11T13:26:07Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'OK to cancel the action?' ).done( function ( confirmed ) { if ( confirmed ) { console.log( 'User clicked "OK"!' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } it6tky5zo2cyx2c9iflmlc8uh5suxki 532356 532354 2022-08-11T13:36:45Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'OK to cancel the action?' ).done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } mjhy2y4hal50kun2l9oq8i77leekq1j 532357 532356 2022-08-11T13:38:12Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'Gå till huvudanvändarsidan?' ).done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 3nhymk816fpajl1w5iannz2zrnpczev 532358 532357 2022-08-11T14:21:55Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 48lsa7isii031r9hcf5hn8grfy9ceug 532359 532358 2022-08-11T14:22:28Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { /* OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } n3d8tb8vn9qu10227hk4gxbty4wbk6e 532360 532359 2022-08-11T14:52:02Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent(evt) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } /* OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } h1kando4apk6b4sd1sh8jkr5w3rtpjd 532361 532360 2022-08-11T14:54:44Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent(evt) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } /* OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( 'https://test.wikipedia.org/wiki/User:JohanahoJ' ); } else { console.log( 'User clicked "Cancel" or closed the dialog.' ); } } ); */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } dd6sz3npvnkcytlogma5lnupy5i1v8a 532362 532361 2022-08-11T14:58:54Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } qd2y9m0wzwg0kyzgc9bvnzht9i9l3az 532363 532362 2022-08-11T15:07:37Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ); if ( logOutPPersonal ) { logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } rrysofupfy7zpnfoq0xwbknodtr436y 532364 532363 2022-08-11T15:14:28Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ); if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } pmc7f2ionpeessxtxnq9z5p548pbqu3 532365 532364 2022-08-11T15:19:35Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ) && document.getElementById( 'pt-logout' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } k5x0tnd641z328lf08nvbynk1fpb7s7 532366 532365 2022-08-11T15:24:36Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ) && document.getElementById( 'pt-logout' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } var logOutPPersonalSticky = document .getElementById( 'pt-logout-sticky-header' ) && document.getElementById( 'pt-logout-sticky-header' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonalSticky ) { logOutPPersonalSticky.setAttribute( 'href', '#' ); logOutPPersonalSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } c8us7rlm8mors61pp4r4fbbsv7kqi5k 532368 532366 2022-08-11T15:44:09Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows' ], function() { // I - Utloggningslänkar // Ia - #p-personal var logOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( logOutPPers ) { logOutPPers.classList.add( 'scriptcss-logoutvector22-items' ); /* var aMysubp = liMysubp .getElementsByTagName( 'a' )[0]; if ( aMysubp ) { aMysubp.classList.add( 'scriptcss-topmenuvector22-links' ); var spanIconMysubp = document .createElement( 'span' ); aMysubp.prepend( spanIconMysubp ); spanIconMysubp.classList.add( 'mw-ui-icon', 'oo-ui-icon-code', 'scriptcss-topmenuvector22-icons' ); } } // Ib - #p-personal-sticky-header var liMysubpSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '/wiki/Special:PrefixIndex/User:JohanahoJ', 'Mina undersidor', 'scriptid-topmenuvector22-mysubp-sticky' ); if ( liMysubpSticky ) { liMysubpSticky.parentNode.prepend( liMysubpSticky ); liMysubpSticky.classList.add( 'scriptcss-topmenuvector22-items' ); var aMysubpSticky = liMysubpSticky .getElementsByTagName( 'a' )[0]; if ( aMysubpSticky ) { aMysubpSticky.classList.add( 'scriptcss-topmenuvector22-links' ); var spanIconMysubpSticky = document .createElement( 'span' ); aMysubpSticky.prepend( spanIconMysubpSticky ); spanIconMysubpSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-code', 'scriptcss-topmenuvector22-icons' ); } } */ /* function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ) && document.getElementById( 'pt-logout' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } var logOutPPersonalSticky = document .getElementById( 'pt-logout-sticky-header' ) && document.getElementById( 'pt-logout-sticky-header' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonalSticky ) { logOutPPersonalSticky.setAttribute( 'href', '#' ); logOutPPersonalSticky.addEventListener( 'click', confirmLogOut, false ); } */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } r2rcgz8tbl5gekq8zy5es4ho59diaiz 532372 532368 2022-08-11T16:44:05Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut (sticky)', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } } /* function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ) && document.getElementById( 'pt-logout' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } var logOutPPersonalSticky = document .getElementById( 'pt-logout-sticky-header' ) && document.getElementById( 'pt-logout-sticky-header' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonalSticky ) { logOutPPersonalSticky.setAttribute( 'href', '#' ); logOutPPersonalSticky.addEventListener( 'click', confirmLogOut, false ); } */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 36m4uh7r9or2kky3832s4zofj5t8ztv 532374 532372 2022-08-11T16:53:55Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut (sticky)', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } } /* function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ) && document.getElementById( 'pt-logout' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } var logOutPPersonalSticky = document .getElementById( 'pt-logout-sticky-header' ) && document.getElementById( 'pt-logout-sticky-header' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonalSticky ) { logOutPPersonalSticky.setAttribute( 'href', '#' ); logOutPPersonalSticky.addEventListener( 'click', confirmLogOut, false ); } */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } jhr0patsj5vx51v6akx5ml3duer2xkk 532376 532374 2022-08-11T17:05:24Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } /* function checkIntent( evt ) { evt.preventDefault(); OO.ui.confirm( 'Gå till huvudanvändarsidan?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var liBtnLink = document.getElementById( 'pt-userpage-2' ); if ( liBtnLink ) { liBtnLink.addEventListener( 'click', checkIntent, false ); } function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } var logOutPPersonal = document.getElementById( 'pt-logout' ) && document.getElementById( 'pt-logout' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonal ) { logOutPPersonal.setAttribute( 'href', '#' ); logOutPPersonal.addEventListener( 'click', confirmLogOut, false ); } var logOutPPersonalSticky = document .getElementById( 'pt-logout-sticky-header' ) && document.getElementById( 'pt-logout-sticky-header' ) .getElementsByTagName( 'a' )[0]; if ( logOutPPersonalSticky ) { logOutPPersonalSticky.setAttribute( 'href', '#' ); logOutPPersonalSticky.addEventListener( 'click', confirmLogOut, false ); } */ } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } s36zful26g7qv4i5z0qw5u1cjnp7a1o 532377 532376 2022-08-11T17:10:02Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } o2teacdth4519d8fy4rrpyfbf9gogh5 532379 532377 2022-08-11T18:09:56Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( '{{int:Userlogout-continue}}' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 7pb4go2zlg8qlcfm2ltajdvluk9p4ps 532380 532379 2022-08-11T18:11:47Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Do you want to log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/User:JohanahoJ' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } qrxo34m0vlfs2r06ew839v361fuztf3 532385 532380 2022-08-11T18:15:45Z JohanahoJ 37147 utloggning javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Do you want to log out?' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } scc5oo72xqav8jzhbau03n4cjk4sr17 532386 532385 2022-08-11T18:19:11Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( 'Log out' ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', 'Logga ut', 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', 'Logga ut', 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } jmlu6ssnkqvutmau1e4110das2fn17l 532387 532386 2022-08-11T18:32:30Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.api', 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { new mw.Api().loadMessagesIfMissing( [ 'logout' ] ) .then( function () { var linkText = mw.msg( 'logout' ); } ); function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( linkText ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', linkText, 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', linkText, 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 40hrhrpcxbfxawdsyn8p5lv0es7q6kx 532388 532387 2022-08-11T18:34:56Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.api', 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { new mw.Api().loadMessagesIfMissing( [ 'logout' ] ) .then( function () { var linkText = mw.msg( 'logout' ); function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( linkText ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', linkText, 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', linkText, 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky.prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 8wdh58ps2ec7faiqbxlfuvm9jsqh179 532389 532388 2022-08-11T18:40:59Z JohanahoJ 37147 utloggningigen javascript text/javascript function main() { 'use strict'; mw.loader.using( [ 'mediawiki.api', 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { new mw.Api().loadMessagesIfMissing( [ 'logout' ] ) .then( function () { var linkText = mw.msg( 'logout' ); function confirmLogOut( evt ) { evt.preventDefault(); OO.ui.confirm( linkText ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // I - Utloggningslänkar // Ia - #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', linkText, 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // Ib - #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', linkText, 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky .prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } kqazptglz1vzsyv2fom1ljgo8wqhtvf 532394 532389 2022-08-11T18:58:31Z JohanahoJ 37147 Replaced content with "function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); }" javascript text/javascript function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } jntrlgdoz09dczyebfthrc10a62rte4 532414 532394 2022-08-12T05:06:12Z JohanahoJ 37147 javascript text/javascript /* För Vector 2022. Utloggningslänkar med fråga innan utloggning sker. */ function main() { 'use strict'; if ( mw.config.get( 'skin' ) !== 'vector-2022' ) return; mw.loader.using( [ 'mediawiki.api', 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { new mw.Api().loadMessagesIfMissing( [ 'logout' ] ) .then( function () { var linkText = mw.msg( 'logout' ); function confirmLogOut( e ) { e.preventDefault(); OO.ui.confirm( linkText ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', linkText, 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', linkText, 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky .prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 74ni9gy035pynxpxis8q0gdt5kw5a1a 532415 532414 2022-08-12T05:21:57Z JohanahoJ 37147 javascript text/javascript /* För Vector 2022. Utloggningslänkar med fråga innan utloggning sker. */ function main() { 'use strict'; if ( mw.config.get( 'skin' ) !== 'vector-2022' ) return; mw.loader.using( [ 'mediawiki.api', 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { ( function() { return new mw.Api().loadMessagesIfMissing( [ 'logout' ] ); } )(); var linkText = mw.msg( 'logout' ); function confirmLogOut( e ) { e.preventDefault(); OO.ui.confirm( linkText ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', linkText, 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', linkText, 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky .prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } g0cvegiuilf8ek6suyaztua1hqygxmu 532416 532415 2022-08-12T05:23:57Z JohanahoJ 37147 javascript text/javascript /* För Vector 2022. Utloggningslänkar med fråga innan utloggning sker. */ function main() { 'use strict'; if ( mw.config.get( 'skin' ) !== 'vector-2022' ) return; mw.loader.using( [ 'mediawiki.api', 'mediawiki.widgets', 'oojs-ui-core', 'oojs-ui-windows', 'oojs-ui.styles.icons-interactions' ], function() { new mw.Api().loadMessagesIfMissing( [ 'logout' ] ); var linkText = mw.msg( 'logout' ); function confirmLogOut( e ) { e.preventDefault(); OO.ui.confirm( linkText ) .done( function ( confirmed ) { if ( confirmed ) { window.location.assign( '/wiki/Special:Userlogout' ); } } ); } // #p-personal var liLogOutPPers = mw.util.addPortletLink( 'p-personal', '#', linkText, 'scriptid-logoutvector22-ppers' ); if ( liLogOutPPers ) { liLogOutPPers.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPers = liLogOutPPers .getElementsByTagName( 'a' )[0]; if ( aLogOutPPers ) { aLogOutPPers.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPers = document .createElement( 'span' ); aLogOutPPers.prepend( spanLogOutPPers ); spanLogOutPPers.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPers.addEventListener( 'click', confirmLogOut, false ); } // #p-personal-sticky-header var liLogOutPPersSticky = mw.util.addPortletLink( 'p-personal-sticky-header', '#', linkText, 'scriptid-logoutvector22-ppers-sticky' ); if ( liLogOutPPersSticky ) { liLogOutPPersSticky.classList.add( 'mw-list-item', 'scriptcss-logoutvector22-items' ); var aLogOutPPersSticky = liLogOutPPersSticky .getElementsByTagName( 'a' )[0]; if ( aLogOutPPersSticky ) { aLogOutPPersSticky.classList.add( 'scriptcss-logoutvector22-links' ); var spanLogOutPPersSticky = document .createElement( 'span' ); aLogOutPPersSticky .prepend( spanLogOutPPersSticky ); spanLogOutPPersSticky.classList.add( 'mw-ui-icon', 'oo-ui-icon-logOut', 'mw-ui-icon-wikimedia-logOut' ); } liLogOutPPersSticky.addEventListener( 'click', confirmLogOut, false ); } } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } i1tf5tdythyqizyb8ojp5ettrplla1q 532417 532416 2022-08-12T05:27:25Z JohanahoJ 37147 Replaced content with "function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); }" javascript text/javascript function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } jntrlgdoz09dczyebfthrc10a62rte4 532423 532417 2022-08-12T06:07:19Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } dsz9dfx8m87pawkk6yjanl58xln3lmd 532424 532423 2022-08-12T06:12:13Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'li' ); if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } rneddq0tvpkhoph66forcz9wfdvpmh8 532425 532424 2022-08-12T06:14:32Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'li' ); var avdelareUl = stickyLogOutLink.parentNode; if ( avdelareUl ) { avdelareUl.insertBefore( avdelare, stickyLogOutLink ); } } } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } e7ykjz33zgqt4wbs27p49cdb8fmmin5 532426 532425 2022-08-12T06:22:38Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'li' ); var avdelareUl = stickyLogOutLink.parentNode; if ( avdelareUl ) { avdelareUl.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } dvdqhhk5zydwckf7l0mox2yozqkvaba 532427 532426 2022-08-12T06:24:40Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); var avdelareUl = stickyLogOutLink.parentNode; if ( avdelareUl ) { avdelareUl.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } d7g97youok0mffl5ct4jw1v1imn1080 532428 532427 2022-08-12T06:26:10Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } o5iqdvqyy0tgvwa5e3utl9t8mr6kuq3 532429 532428 2022-08-12T06:27:49Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); avdelare.style.color = 'green'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } i7lu9rq2aqsn9zsy1qyuc7o2836ufeo 532430 532429 2022-08-12T06:31:24Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); avdelare.style.borderColor = 'green'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } n8odz0i1bxt2u3jssdsxykfteli5275 532431 532430 2022-08-12T06:33:29Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); avdelare.setAttrib( 'id', 'scriptid-avdelare' ); if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } mci804o4sxdvma24hq20z5qgpnzao1c 532432 532431 2022-08-12T06:37:56Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } mjx87ouzgg8wl7ye7sed56bujpr7p8u 532439 532432 2022-08-12T06:52:31Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); avdelare.setAttribute( 'style', 'color: lime !important' ); if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } s31abfprdmwq706hoh6gjka7hl8xegz 532440 532439 2022-08-12T06:54:00Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'hr' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); avdelare.style = 'color: lime !important'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } flczafz4tc199do3dbhcj193r62lzkl 532441 532440 2022-08-12T06:56:10Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'span' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); avdelare.style = 'border-bottom: 1px solid lime'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } sq694wijtnalyqv7rawo5nej3me5r8m 532442 532441 2022-08-12T06:57:53Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'li' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); avdelare.style.borderBottom = '1px solid lime'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } 0ssr4oct026jjvp7rkmwh3r004gjw22 532443 532442 2022-08-12T06:58:33Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'li' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); avdelare.style.borderBottom = '1px solid #ddd'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } dtq06tizqp8sjufwaa5yh3u7f1qq92t 532444 532443 2022-08-12T06:59:52Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; setTimeout( function() { var stickyLogOutLink = document .getElementById( 'scriptid-logoutvector22-ppers-sticky' ); if ( stickyLogOutLink ) { var avdelare = document.createElement( 'li' ); avdelare.setAttribute( 'id', 'scriptid-avdelare' ); avdelare.style.borderBottom = '1px solid #eee'; if ( stickyLogOutLink.parentNode ) { stickyLogOutLink.parentNode.insertBefore( avdelare, stickyLogOutLink ); } } }, 1000); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } qdkq00poxqwzy0zko37pk9nvknxtwso 532448 532444 2022-08-12T07:17:47Z JohanahoJ 37147 javascript text/javascript function main() { 'use strict'; } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } jntrlgdoz09dczyebfthrc10a62rte4 532451 532448 2022-08-12T11:58:53Z JohanahoJ 37147 javascript text/javascript /* Används tillsammans med Användare:JohanahoJ/sidebarItemsToggle.css En knapp i vänstermenyn döljer/visar menyinnehåll, som anges i CSS-filen (id med bindestreck komplicerar hantering av lista i js utan bibliotek.) Nödvändig modul: 'mediawiki.cookie' */ function main() { 'use strict'; // Endast för Vector if ( mw.config.get( 'skin' ) !== 'vector' ) return; var theButton; var checkButton = document.getElementById( 'sidebaritems_button'); var textSpanShow = document.createElement( 'span' ); var textSpanHide = document.createElement( 'span' ); var pnav = document.getElementById( 'p-navigation'); // Skapar knappen, om den inte redan är på plats if ( typeof( checkButton ) == 'undefined' || checkButton === null ) { theButton = document.createElement( 'button' ); theButton.setAttribute( 'id', 'sidebaritems_button' ); theButton.classList.add( 'sidebaritems_button_style' ); textSpanShow.classList.add( 'sidebaritems_button_text' ); textSpanShow.textContent = 'Fler länkar'; theButton.appendChild( textSpanShow ); textSpanHide.classList.add( 'sidebaritems_button_text' ); textSpanHide.textContent = 'Färre länkar'; theButton.appendChild( textSpanHide ); if ( typeof( pnav ) != 'undefined' && pnav !== null ) { pnav.insertBefore( theButton, pnav.children[0] ); } } // Inställningar enligt cookie-info if ( mw.cookie.get( 'sidebarItemsCookie' ) === 'hidden' ) { document.body.classList.add( 'hide_selection' ); textSpanHide.classList.add( 'sidebaritems_hide' ); textSpanShow.classList.remove( 'sidebaritems_hide' ); } else { document.body.classList.remove( 'hide_selection' ); textSpanShow.classList.add( 'sidebaritems_hide' ); textSpanHide.classList.remove( 'sidebaritems_hide' ); } // Vid knapptryck... theButton.addEventListener( 'click', function () { document.body.classList.toggle( 'hide_selection' ); textSpanShow.classList.toggle( 'sidebaritems_hide' ); textSpanHide.classList.toggle( 'sidebaritems_hide' ); if ( mw.cookie.get( 'sidebarItemsCookie' ) === 'hidden' ) { mw.cookie.set( 'sidebarItemsCookie', 'shown' ); } else { mw.cookie.set( 'sidebarItemsCookie', 'hidden' ); } } ); } // Ser till att skriptet inte startar för tidigt ( vanilla version ) if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', main ); } else { main(); } cf7m3yrmgn9n03zj16kxzszgno8cafe Port Discovery (museum) 0 113234 532350 504949 2022-08-11T13:15:42Z Sunpriat 6604 wikitext text/x-wiki {{other uses|Port Discovery (disambiguation)}} {{refimprove|date=May 2008}} {{Advert|date=October 2011}} {{Infobox museum | name = Port Discovery Children's Museum | image = Port-Discovery_0083.jpg | established = 1998 | location = 35 Market Place<br> [[Baltimore, Maryland|Baltimore]], [[Maryland]], [[United States|USA]] | publictransit ={{rint|baltimore|subway}} at [[shot Tower station|Shot Tower]] <br> [[BaltimoreLink]] routes Blue, Orange, Brown, Purple, 63, 65, 150 <br> [[Charm City Circulator]] Green Route | website = {{URL|www.portdiscovery.org|PortDiscovery.org}} }} '''Port Discovery Children's Museum''' is a non-profit institution located in the historic Fish Market building in [[Baltimore, Maryland|Baltimore]], [[Maryland|Maryland's]] [[Inner Harbor]]. It is 80,000 square feet and offers three floors of exhibits and programs designed to be interactive and hands on, allowing children to learn through play. It receives more than 265,000 visitors annually. The museum's focus is on children ages birth through 10 and their caregivers. The museum is served by the [[Baltimore Metro Subway|Baltimore Metro Subway's]] [[Phoenix Shot Tower|Shot Tower]]/Market Place station. ==History== The original Baltimore Children's Museum was a Baltimore City agency founded in 1976 and was originally housed in [[The Cloisters (Lutherville, Maryland)|The Cloisters]], a historic property located in Baltimore County. The property and structure were donated to the City and the Museum operated out of this location for nearly 20 years. In 1990, the Baltimore Children's Museum formed its own 501(c)(3) non-profit corporation and merged with the Maryland Children's Museum. The merged entity's Board of Directors, along with Baltimore's Mayor Kurt Schmoke, decided to relocate the museum to downtown Baltimore to reach a broader audience. Test. A 35-million dollar capital campaign, led by the Board of Directors, resulted in the renovation of Downtown's historic Fish Market building, which became the new home to Port Discovery Children's Museum in December 1998. In February 2022, the museum also functioned as a children's vaccine clinic for COVID-19. {{expand section|date=March 2013}} ==Exhibits== {{update section|date=January 2020}} * [[Royal Farms]] Convenience Store and Fill’er Up Station * Wonders of Water (WoW!) * KidWorks * Adventure Expeditions * Tot Trails * Tiny's Diner * The Oasis * Harvey M. Meyerhoff Gallery * Studio Workshop''' * Kick It Up! * MPT Studio/Nano * Exploramora: Down at the Farm ==Awards and accolades== Port Discovery has served over 2.5 million visitors and ranks among the top Children's Museums in the U.S. by [[Parents Magazine]].<ref>{{cite web |url= http://www.parents.com/fun/vacation/us-destinations/the-10-best-childrens-museums/#page=1 |title=Parents Magazine Best Children's Museums in the U.S. |date=10 June 2015 |accessdate=27 January 2016}}</ref>(2015) and Forbes (2012). In 2009, Port Discovery received the MetLife Foundation and [[Association of Children's Museums]] Promising Practice Award for their partnership with PACT: Helping Children with Special Needs. In January 2011, Port Discovery was designated as a “Good to Grow Museum” for promoting healthy living for families. They are one of six children's museums out of 350 nationally and internationally to receive this designation. This national recognition comes from the [[Association of Children's Museums]].<ref>{{cite web |url= http://baltimore.cbslocal.com/ |title=Port Discovery Receives National Honor |date=25 January 2011 |accessdate=25 February 2011}}</ref> ==References== <references /> ==External links== * {{Official website|http://www.portdiscovery.org/}} * [https://www.flickr.com/photos/port_discovery/ Port Discovery Children's Museum Photo Gallery] {{coord|39|17|20|N|76|36|23|W|type:landmark|display=title}} {{Maryland museums}} {{Baltimore}} [[Category:Inner Harbor, Baltimore]] [[Category:Museums in Baltimore]] [[Category:Children's museums in Maryland]] [[Category:1998 establishments in Maryland]] <noinclude> <small>This page was moved from [[:en:Port Discovery (museum)]]. Its edit history can be viewed at [[Port Discovery (museum)/edithistory]]</small></noinclude> hz8yyvhal1373xjvi7pvdwcwxwyzd9h 624th Regional Support Group 0 114277 532355 447293 2022-08-11T13:27:18Z Sunpriat 6604 wikitext text/x-wiki {{Multiple issues| {{Refimprove|date=January 2013}} {{Advert|date=January 2011}} }} {{Use dmy dates|date=May 2011}} {{Infobox military unit |unit_name=624th Regional Support Group | image=624th Regional Support Group emblem.jpg | image_size = 250 |caption= |dates= 1 January 2002 – present |country=United States |allegiance= |branch=[[United States Air Force]] |type= |role= |size= |command_structure=[[Air Force Reserve Command]] |current_commander= [http://www.624rsg.afrc.af.mil/library/biographies/bio.asp?id=13142/ Col. Athanasia Shinas] |garrison=[[Hickam Air Force Base]] |decorations=[[Image:Outstanding Unit ribbon.svg|75 px]] [[Air Force Outstanding Unit Award|AFOUA]] |battle_honours= }} The '''624th Regional Support Group''' headquartered at [[Hickam Air Force Base]], Hawaii, is one of two [[Air Force Reserve]] groups stationed in the Pacific area of responsibility and reports directly to Headquarters 4th Air Force at [[March Air Reserve Base]], California. ==Units== The 624th RSG is composed of a headquarters, four squadrons and one flight at Hickam Air Force Base, Hawaii, and [[Andersen Air Force Base]], [[Guam]]. *The '''624th RSG Directorate of Personnel Management''' provides military personnel flight services to both reserve members and the retired military community. *The '''44th Aerial Port Squadron at Andersen AFB, Guam''', processes and loads personnel and cargo on any aircraft in the U.S. Air Force or Civil Air Reserve Fleet. *The '''48th Aerial Port Squadron at Hickam AFB, Hawaii''', deploys personnel to augment fixed port facilities or provide stand-alone air terminal operations worldwide in support of the long war, exercises or contingency operations, unit moves, foreign humanitarian relief or disaster response operations. The unit works in port operations including aircraft loading, cargo processing and inspection, passenger services, aircraft fleet servicing and aerial port command and control. *The '''624th Aeromedical Staging Squadron at Hickam AFB, Hawaii''', provides medical support and oversight for the entire 624th RSG. Peacetime missions include training to maintain competency and preparedness for both war and peacetime activities. The 624th ASTS deploys qualified medical personnel to augment air staging facilities. The function of an aeromedical staging facility is to provide personnel and equipment necessary for patient movement required worldwide. 624th ASTS personnel support operations worldwide, including the long war, exercises, humanitarian relief and disaster response operations.{{Citation needed|date=March 2012}} *The '''624th Civil Engineer Squadron at Hickam AFB, Hawaii''', is composed of three Prime BEEF{{Clarify|date=January 2011}} teams, seven Firefighting teams and one Readiness team capable of rapid deployment worldwide to construct and maintain airfield facilities, provide firefighting support, and coordinate planning for any disasters. *The '''724th Aeromedical Staging Flight at Andersen AFB, Guam''', serves as the medical arm of the 624th Regional Support Group with a primary peacetime mission to provide medical support to Reserve organizations to ensure wartime readiness. Its wartime mission is to deploy qualified medical professionals in support of Aerospace Expeditionary Force (AEF) rotations. ==History== The 624th Regional Support Group officially stood up 1 Jan. 2002. The 624th RSG and its personnel came from multiple sources. Headquarters Air Force Reserve Command formed the group from Det. 1, 604th Regional Support Group. The 604th Aeromedical Staging Squadron (604th ASTS), the 604th Logistics Support Flight (604th LSF), and 704th Civil Engineer Squadron (704th CES) at Hickam AFB, HI, became the 624th Aeromedical Staging Squadron (624 ASTS), 624th Logistics Support Flight (624th LSF) (inactivated) and 624th Civil Engineer Squadron (624 CES). The 604th ASTS Operating Location (OL)-A and Det 1, 604th LSF at Andersen AFB, Guam, became the 724th Aeromedical Staging Flight (724th ASTF) and 724th Logistics Support Flight (724th LSF) (since inactivated). The 48th Aerial Port Squadron (48th APS) at Hickam and the 44th Aerial Port Squadron (44th APS) at Andersen both retained their designations. ==Resources== * [https://web.archive.org/web/20110722175505/http://www.624rsg.afrc.af.mil/library/factsheets/factsheet.asp?id=16367 624th RSG Official Factsheet] ==External links== * [http://www.624rsg.afrc.af.mil 624th RSG Official Website] {{US Air Force navbox}} {{USAF Air Force Reserve Command}} [[Category:Support groups of the United States Air Force]] <noinclude> <small>This page was moved from [[:en:624th Regional Support Group]]. Its edit history can be viewed at [[624th Regional Support Group/edithistory]]</small></noinclude> swwolz9fu94i2mkjjy1y9opnaaqtxz9 Special Courts 0 114613 532351 447691 2022-08-11T13:20:25Z Sunpriat 6604 wikitext text/x-wiki : ''This is an article on the [[Poland|Polish]] special courts during [[World War II]]. For information on the infamous [[Nazi Germany|Nazi]] special courts during the same period see: [[Sondergerichte]]. For information on the legal concept of a court with limited jurisdiction, see [[Special court]].'' {{Polish Underground State sidebar}} '''Special Courts''' ([[Polish language|Polish]] ''Sądy Specjalne'') were [[World War II]] underground [[court]]s in occupied [[Poland]], organized by the [[Polish government in exile|Polish Government-in-Exile]]. The courts determined [[punishment]]s for [[Poles|citizens of Poland]] who were subject to Polish law before the war. __NOTOC__ ==History== After the [[Invasion of Poland|Polish Defense War of 1939]], the German authorities of the [[General Government]] mobilized all the pre-war Polish [[police]]men to the German service. The so-called [[Blue Police|Navy-Blue Police]] (''Policja granatowa'', nicknamed after the color of their uniforms) were used as an auxiliary unit of the [[Gestapo]] and [[Kripo]], yet they had no means of executing law and order in the occupied country. At the same time, the German police forces and courts were more interested in persecution of Jews and members of the Polish [[intelligentsia]] and [[Resistance during World War II|underground]] rather than common criminals. First underground, ad hoc courts were created alongside some of the first Polish resistance organizations as early as in 1939.<ref name="Salm">Stanisław Salmonowicz, ''Polskie Państwo Podziemne'', Wydawnictwa Szkolne i Pedagogiczne, Warszawa, 1994, {{ISBN|83-02-05500-X}}</ref> At first, they were purely military, concerned only with the cases that would fall under military law (such as [[treason]]).<ref name="Salm"/> On April 16, 1940, the [[Polish government in exile|Polish Government in Exile]] in [[London]] decided that the underground Polish courts be created for prosecution of criminals, [[high treason|traitors]], [[informant]]s and [[collaboration|collaborators]].<ref name="Salm"/> The structure and law regulating those courts were mostly finalized around 1942.<ref name="Salm"/> The Special Courts tried only the pre-war citizens of Poland who were legally subjects of the Polish law. No citizens of other states (including members of the occupying forces of [[Germany]] and the [[USSR]]) were ever sentenced by the Special Courts. However, at times such claims were made by the [[Bureau of Information and Propaganda]] for [[propaganda]] reasons; nevertheless, executions of members of the [[SS]] and ''[[Gestapo]]'' were treated as elements of [[Partisan (military)|partisan]] warfare. The reason for such a policy was a belief that the [[Polish Underground State]] should act as if the occupation and dismemberment of Poland never happened. Polish special underground courts reviewed about 10,000<ref name=KPF>{{cite journal|first=Klaus-Peter |last=Friedrich |title=Collaboration in a 'Land without a Quisling': Patterns of Cooperation with the Nazi German Occupation Regime in Poland during World War II |journal=[[Slavic Review]] |volume=64 |issue=4 |date=Winter 2005 |pages=711–746 |doi=10.2307/3649910|jstor=3649910 |doi-access=free }}</ref> to 17,000<ref name="Connelly 2005">{{cite journal|first=John|last=Connelly|title=Why the Poles Collaborated so Little: And Why That Is No Reason for Nationalist Hubris|journal=Slavic Review|volume=64|number=4|year=2005|pages=771–781|jstor=3649912|doi=10.2307/3649912|doi-access=free}}</ref> cases of collaboration, and sentenced over 3,500 individuals to death<ref name=KPF/> (2,500 executions were carried out;<ref name=KPF/> many others were sentenced to punishments like beatings or fines, or with a recommendation for review of the case after the war<ref name="Salm"/>). Approximately 30% of the executions in Warsaw where on Poles found to blackmail or denounce the hiding Jews ([[Szmalcownik|szmalcowniks]]).<ref name="Zimmerman2015">{{cite book|url=https://books.google.com/books?id=w4dsCQAAQBAJ&pg=PA415|title=The Polish Underground and the Jews, 1939–1945|author=Joshua D. Zimmerman|date=5 June 2015|publisher=Cambridge University Press|isbn=978-1-107-01426-8|pages=414–415}}</ref> ==Debate== {{unreferenced|section|date=May 2018}} There is an ongoing debate whether the World War II Polish Special Courts were lawful and obeyed the elementary [[law]]s. According to the historians working for the [[Institute of National Remembrance]] the courts fulfilled the five basic conditions: #The courts operated in the name of the Polish State and were subject to both pre-war Polish law and the wartime [[legislation]]. #The courts penalized mostly the misdeeds included in the pre-war Polish law. Most of the trials were related either to [[high treason]] or [[collaboration]]. #There are no sources that would claim that the Special Courts sentenced anyone without sufficient [[evidence (law)|evidence]] of [[guilt (law)|guilt]]. #The Special Courts were always trying to reach the lawful verdict. 40% of all the [[judicial procedure]]s ended up with the [[defendant]]s found not guilty. Only 25% of the verdicts were for [[capital punishment]], while the rest included the [[Corporal punishment|lash]], [[infamy]], [[banishment]] or fines. In many cases, the prosecution was suspended until the final liberation. #All of the procedures of the Polish law were obeyed. The only exception to that rule was the case of the so-called ''preemptive liquidation'', when a person known for being a German spy or collaborator had to be executed before he could denounce the resistance network. However, some German historians{{who|date=May 2018}} claim that after 1939 Poland did not exist, and the execution of Polish law on German-held territory was therefore against international law. These claims remain controversial, since the [[Administrative division of Polish territories during World War II|annexation of Poland in 1939]] was unilateral and acknowledged only by the [[Axis Powers]] and the [[USSR]] (which later declared [[Molotov–Ribbentrop Pact|its pact with Germany]] null and void). Moreover, the invasion was itself in violation of international law (German officials were later prosecuted at the [[Nuremberg Trials]] for it), being an [[War of aggression|act of aggression]] (despite a German [[Gleiwitz incident|false flag attack]] that sought to show Polish provocation). ==See also== *[[Państwowy Korpus Bezpieczeństwa]] *[[Operacja Główki]] ==Notes== <!--See http://en.wikipedia.org/wiki/Wikipedia:Footnotes for an explanation of how to generate footnotes using the<ref(erences/)> tags--> {{Reflist}} ==Further reading== *Leszek Gondek, ''Polska karząca'', Warszawa, 1988 [[Category:Poland in World War II]] [[Category:Polish Underground State]] [[Category:Defunct courts]] [[Category:Judiciary of Poland]] [[Category:Legal history of Poland]] <noinclude> <small>This page was moved from [[:en:Special Courts]]. Its edit history can be viewed at [[Special Courts/edithistory]]</small></noinclude> rd3aasowdbrzf6642tzqdsixz09b9m9 User:Tamzin/sandbox 2 119685 532367 497639 2022-08-11T15:37:50Z Tamzin 21799 foo [[ticket:bar]] baz wikitext text/x-wiki test jrwjerxiekdtj9k82lg930wpkr6tq6r Mwbot-rs/Save 0 122864 532381 532239 2022-08-11T18:14:06Z Mwbot-rs test 52001 Test suite edit wikitext text/x-wiki It has been 1660241646 seconds since the epoch. fucvmd1swf6rxz0eek5z6cychc1s3ht 532382 532381 2022-08-11T18:14:09Z Mwbot-rs test 52001 Test suite edit wikitext text/x-wiki It has been 1660241648 seconds since the epoch. g782g44adpb0xoro57wqihny2z9dy0h 532383 532382 2022-08-11T18:14:13Z Mwbot-rs test 52001 Test suite edit wikitext text/x-wiki It has been 1660241653 seconds since the epoch. 4srmqua0073tnjcywoi4ucrv3b4crif User:SongVĩ.Bot II 2 124239 532375 532228 2022-08-11T17:00:13Z SongVĩ.Bot II 52414 [[User:SongVĩ.Bot II|Task 0]]: Đã 227 ngày... wikitext text/x-wiki Cập nhật lần cuối: 11-08-2022 Đã 227 ngày... obpd9378u1dureb1iexnoirivmxm91x Wikipedia:Good articles/Agriculture, food and drink 4 126854 532409 518299 2022-08-12T00:32:36Z Novem Linguae 49714 promote [[Thomas Carlyle (Millais)]] to good article ([[User:Novem Linguae/Scripts/GANReviewTool|GANReviewTool]]) wikitext text/x-wiki <noinclude> {{hatnote|[[#Agriculture, food, and drink|'''↓ Skip to lists ↓''']]}} {{Wikipedia:Good article nominations/Tab header}} {{Wikipedia:Good articles/Summary|shortcuts={{shortcut|WP:GA/AF}}}} </noinclude><templatestyles src="Wikipedia:Good articles/styles.css"/> __NOTOC__ <div class="wp-ga-topic"> ==Agriculture, food, and drink== <includeonly><div class="wp-ga-topic-back">[[#Contents|back]]</div></includeonly> <!--Start Agriculture, food, and drink level 3 GA subtopic--> <div class="mw-collapsible"> ===[[File:Tango icon nature.svg|22px|left|link=|alt=]] Agriculture, food, and drink=== <div class="mw-collapsible-content"> =====Agriculture and farming===== {{#invoke:Good Articles|subsection| [[Agriculture]] [[Agriculture in Wales]] [[Animal husbandry]] [[Apiary Laboratory]] [[Avondale Agricultural Research Station]] [[Belted Galloway]] [[Biological pest control]] [[Boreray sheep]] [[Briarcliff Farms]] [[Companion planting]] [[Coon hunting]] [[Cotton production in Pakistan]] [[Cowpea]] [[Cow tipping]] [[Crop diversity]] [[Dairy in India]] [[Domestication of the sheep]] [[Galloway cattle]] [[Goat tower]] [[Hemp in Kentucky]] [[Highland cattle]] [[History of agriculture]] [[Kidnapping of Peter Weinberger]] [[Kidnapping of Peter Weinberger]] [[Limousin cattle]] [[Gordon McClymont|McClymont, Gordon]] [[Keiji Nishioka|Nishioka, Keiji]] [[North American Piedmontese]] [[John Parkinson (botanist)|Parkinson, John (botanist)]] [[Pekarangan]] [[Pest control]] [[Polled Dorset]] [[Poultry]] [[SpaceX Starship]] [[Thomas Carlyle (Millais)]] [[Sheila Varian|Varian, Sheila]] [[Shetland sheep]] [[Sweet potato cultivation in Polynesia]] [[Tennessee Walking Horse National Celebration]] [[Vanilla production in French Polynesia]] [[Vegetable]] [[Welsh Pony and Cob]] [[Wisconsin dairy industry]] [[Woollen industry in Wales]] }} =====Horticulture and forestry===== {{#invoke:Good Articles|subsection| [[Cornell Botanic Gardens]] [[Cottage garden]] [[Forestry in the United Kingdom]] [[Green Guerillas]] [[Kauri gum]] [[University of the Philippines Los Baños College of Forestry and Natural Resources]] [[William Robinson (gardener)|Robinson, William (gardener)]] }} ===== Food and drink establishments ===== {{#invoke:Good Articles|subsection| [[5-8 Club]] [[Amal Women's Training Center and Moroccan Restaurant]] [[Argo Tea]] [[Barracuda Lounge]] [[Ben's Chili Bowl]] [[The Bigg Chill|Bigg Chill, The]] [[Boxers NYC Washington Heights]] [[The Box Tree|Box Tree, The]] [[Boxer Ramen]] [[Bridges Cafe]] [[Brix Tavern]] [[Burger King]] [[Burger King products]] [[Byways Cafe]] [[Thomas Carlyle (Millais)|Carlyle, Thomas (Millais)]] [[The Checkers (restaurant)|Checkers, The (restaurant)]] [[Club Cumming]] [[Club Feathers]] [[The Cock|Cock, The]] [[Country Bill's]] [[Cricket Cafe]] [[Davis Street Tavern]] [[Delta Cafe]] [[Dime Store (Portland, Oregon)]] [[Dinner by Heston Blumenthal]] [[DTM (nightclub)]] [[Eagle Boys]] [[El Celler de Can Roca]] [[Esparza's]] [[The Fat Duck|Fat Duck, The]] [[Fuller's Coffee Shop]] [[Georgies]] [[Gordon Ramsay Plane Food]] [[Graeter's]] [[Gypsy Restaurant and Velvet Lounge]] [[Headroom LGBTQ+ Lounge]] [[Hercules (nightclub)]] [[Hibiscus (restaurant)]] [[History of Burger King]] [[Hobo's]] [[Hodad's]] [[Imperial Bottle Shop & Taproom]] [[Industry Bar]] [[Joe Brown's Carmel Corn]] [[KFC]] [[Kissa Tanto]] [[La Bonita]] [[La Caravelle (New York City)]] [[La Carreta Mexican Restaurant]] [[La Tante DC10 Restaurant]] [[Last Exit on Brooklyn]] [[Leonard's Bakery]] [[The Liquor Store]] [[Los Pollos Hermanos]] [[Lutz Tavern]] [[Masia (restaurant)]] [[Miran Pastourma]] [[My Father's Place (Portland, Oregon)|My Father's Place]] [[Nostrana (restaurant)]] [[Ordinaire (wine bar)]] [[The Original Dinerant]] [[Paradise (nightclub)]] [[The Parish|Parish, The]] [[Papi Chulo's]] [[Park Grill]] [[Pearl Tavern]] [[Pétrus (restaurant)]] [[Pied Cow Coffeehouse]] [[The Q (nightclub)]] [[Rainbow Room]] [[Republic Cafe and Ming Lounge]] [[The Restaurant Marco Pierre White]] [[Rimsky-Korsakoffee House]] [[Rise Bar]] [[Roman Candle (Portland, Oregon)]] [[The Roxy (Portland, Oregon)]] [[Schwa (restaurant)]] [[Shanghai Tunnel Bar]] [[Sip 'n Dip Lounge]] [[Sixteen (restaurant)]] [[Smashburger]] [[Southeast Grind]] [[St. Lawrence (restaurant)]] [[Starky's]] [[Stork Club]] [[Thomas Carlyle (Millais)]] [[The Whitebrook|Whitebrook, The]] [[Therapy (New York City)]] [[Lundy's Restaurant]] [[XLB (Portland, Oregon)]] [[Yia Yia Mary's]] [[Jeff's Gourmet Sausage Factory]] }} ===== Cuisines ===== {{#invoke:Good Articles|subsection| [[Cuisine of the Thirteen Colonies]] [[English cuisine]] [[French cuisine]] [[Israeli cuisine]] [[Lebanese cuisine]] [[Mediterranean cuisine]] [[Palestinian cuisine]] [[SpaceX Starship]] [[Thomas Carlyle (Millais)]] [[Welsh cuisine]] }} ===== Food ===== {{#invoke:Good Articles|subsection| [[Acquacotta]] [[Aeroplane Jelly]] [[Angels on horseback]] [[Apple]] [[Applesauce cake]] [[Avocado cake]] [[Bacon Explosion]] [[Bacon ice cream]] [[Baconnaise]] [[Battalia pie]] [[Bean dip]] [[Beecher's Handmade Cheese]] [[Beefsteak (banquet)]] [[Beurre Maître d'Hôtel]] [[Bidni]] [[Big King]] [[BK Chicken Fries]] [[Black Thunder (chocolate bar)]] [[Blackcurrant]] [[BLT]] [[Burger King grilled chicken sandwiches]] [[Burger King Specialty Sandwiches]] [[Carrot soup]] [[Chips and dip]] [[Cincinnati chili]] [[Clam dip]] [[Clementine cake]] [[Clotted cream]] [[Colby cheese]] [[Crab dip]] [[Piper cubeba]] [[Danish Bacon]] [[Deep-fried butter]] [[Deep frying]] [[Detroit-style pizza]] [[Falafel]] [[Fluffernutter]] [[Food waste in the United Kingdom]] [[Fool's Gold Loaf]] [[Fried chicken]] [[Frog cake]] [[Gibanica]] [[Glamorgan sausage]] [[Honeynut squash]] [[Hyderabadi haleem]] [[Jif (lemon juice)]] [[Juniper berry]] [[Mushroom ketchup]] [[Milk chocolate]] [[Naem]] [[Okonomiyaki]] [[Old-fashioned doughnut]] [[Onion]] [[Parsnip]] [[Pasty]] [[Pink slime]] [[Pizza cheese]] [[Plum cake]] [[Poutine]] [[Radish]] [[ReaLemon]] ''[[Salade niçoise]]'' [[Salt]] [[Sorana bean]] [[Squab pie]] [[Stargazy pie]] [[Steak]] [[Sugar]] [[SweeTango]] [[Testaroli]] [[Vegetable chip]] [[Whopper]] }} ===== Drink ===== {{#invoke:Good Articles|subsection| [[Beer]] [[Beer in North Korea]] [[Beer in San Diego County, California]] [[BLT cocktail]] [[Borjomi (water)]] [[Cabernet Sauvignon]] [[Caesar (cocktail)]] [[Carménère]] [[Champagne wine region]] [[Commandaria]] [[The Glenlivet distillery]] [[Grapico]] [[Grodziskie]] [[Guinness Foreign Extra Stout]] [[Hot chocolate]] [[John Smith's Brewery]] [[Languedoc-Roussillon wine]] [[Lemon drop (cocktail)]] [[Malvern water]] [[Malvern Water (bottled water)]] [[McEwan's]] [[Oregon wine]] [[Riesling]] [[Royal Stag]] [[Rum and Coke]] [[Sauvignon blanc]] [[Stones Bitter]] [[Tea processing]] [[Thomas Carlyle (Millais)]] [[Thomas Carlyle (Millais)]] [[Three Horses Beer]] [[Zinfandel]] }} ===== Food and drink companies ===== {{#invoke:Good Articles|subsection| [[Angel Bakeries]] [[Boddingtons Brewery]] [[Burger King franchises]] [[Burger King legal issues]] [[Copia (museum)]] [[Kyrö Distillery Company]] [[O'Brien Brewing and Malting Company]] [[Slug and Lettuce]] [[Stones Brewery]] [[Thomas Carlyle (Millais)]] [[Webster's Brewery]] [[West Liberty Foods]] [[Worthington Brewery]] }} ===== Food and drink people ===== {{#invoke:Good Articles|subsection| [[Sora Amamiya|Amamiya, Sora]] [[Eugénie Brazier|Brazier, Eugénie]] [[Ann Cook (cookery book writer)|Cook, Ann]] [[Joseph Dart|Dart, Joseph]] [[John Dwight (manufacturer)|Dwight, John]] [[Joseph Favre|Favre, Joseph]] [[Mauricio González-Gordon y Díez|González-Gordon y Díez, Mauricio]] [[Elinor Fettiplace|Fettiplace, Elinor]] [[Daniel Frank Gerber|Gerber, Daniel Frank]] [[Arthur Guinness|Guinness, Arthur]] [[Georgiana Hill (cookery book writer)|Hill, Georgiana]] [[Otto Frederick Hunziker|Hunziker, Otto Frederick]] [[Nigella Lawson|Lawson, Nigella]] [[Albert P. Halfhill|P. Halfhill, Albert]] [[Charles T. Pepper|Pepper, Charles T.]] [[Florence Petty|Petty, Florence]] [[Claude Philippe|Philippe, Claude]] [[Michel Roux|Roux, Michel]] [[Anna Maria Rückerschöld|Rückerschöld, Anna Maria]] [[Paul Tremo|Tremo, Paul]] [[Women in brewing]] [[Mario Peruzzi]] }} =====Cookery books===== {{#invoke:Good Articles|subsection| ''[[The Art of Cookery Made Plain and Easy]]'' ''[[A Book of Mediterranean Food]]'' ''[[Compendium ferculorum, albo Zebranie potraw]]'' ''[[The Compleat Housewife]]'' ''[[The Cookery Book of Lady Clark of Tillypronie]]'' [[Elizabeth David bibliography]] ''[[The Experienced English Housekeeper]]'' ''[[Food in England]]'' ''[[The Good Huswifes Jewell]]'' ''[[The Modern Cook]]'' ''[[Modern Cookery for Private Families]]'' ''[[Mrs. Beeton's Book of Household Management]]'' ''[[A New System of Domestic Cookery]]'' ''[[The Accomplisht Cook]]'' [[Thomas Carlyle (Millais)]] }} =====Miscellaneous===== {{#invoke:Good Articles|subsection| [[Apple Maggot Quarantine Area]] [[Arab Agricultural Revolution]] [[Butler café]] [[Cellarette]] [[French fry vending machine]] [[Makiyakinabe]] [[Pancake machine]] [[Thomas Carlyle (Millais)]] [[Wet market]] }} </div> </div> </div><!--End Agriculture, food, and drink level 3 GA subtopic--><noinclude> [[Category:Lists of good articles|Agriculture, food and drink]] </noinclude> drcs0xl5rpdyfz81pk13yb939tule1r 532412 532409 2022-08-12T00:33:29Z Novem Linguae 49714 Revert to revision 518299 dated 2022-07-21 22:46:32 by Novem Linguae using [[:en:Wikipedia:Tools/Navigation_popups|popups]] wikitext text/x-wiki <noinclude> {{hatnote|[[#Agriculture, food, and drink|'''↓ Skip to lists ↓''']]}} {{Wikipedia:Good article nominations/Tab header}} {{Wikipedia:Good articles/Summary|shortcuts={{shortcut|WP:GA/AF}}}} </noinclude><templatestyles src="Wikipedia:Good articles/styles.css"/> __NOTOC__ <div class="wp-ga-topic"> ==Agriculture, food, and drink== <includeonly><div class="wp-ga-topic-back">[[#Contents|back]]</div></includeonly> <!--Start Agriculture, food, and drink level 3 GA subtopic--> <div class="mw-collapsible"> ===[[File:Tango icon nature.svg|22px|left|link=|alt=]] Agriculture, food, and drink=== <div class="mw-collapsible-content"> =====Agriculture and farming===== {{#invoke:Good Articles|subsection| [[Agriculture]] [[Agriculture in Wales]] [[Animal husbandry]] [[Apiary Laboratory]] [[Avondale Agricultural Research Station]] [[Belted Galloway]] [[Biological pest control]] [[Boreray sheep]] [[Briarcliff Farms]] [[Companion planting]] [[Coon hunting]] [[Cotton production in Pakistan]] [[Cowpea]] [[Cow tipping]] [[Crop diversity]] [[Dairy in India]] [[Domestication of the sheep]] [[Galloway cattle]] [[Goat tower]] [[Hemp in Kentucky]] [[Highland cattle]] [[History of agriculture]] [[Kidnapping of Peter Weinberger]] [[Kidnapping of Peter Weinberger]] [[Limousin cattle]] [[Gordon McClymont|McClymont, Gordon]] [[Keiji Nishioka|Nishioka, Keiji]] [[North American Piedmontese]] [[John Parkinson (botanist)|Parkinson, John (botanist)]] [[Pekarangan]] [[Pest control]] [[Polled Dorset]] [[Poultry]] [[SpaceX Starship]] [[Thomas Carlyle (Millais)]] [[Sheila Varian|Varian, Sheila]] [[Shetland sheep]] [[Sweet potato cultivation in Polynesia]] [[Tennessee Walking Horse National Celebration]] [[Vanilla production in French Polynesia]] [[Vegetable]] [[Welsh Pony and Cob]] [[Wisconsin dairy industry]] [[Woollen industry in Wales]] }} =====Horticulture and forestry===== {{#invoke:Good Articles|subsection| [[Cornell Botanic Gardens]] [[Cottage garden]] [[Forestry in the United Kingdom]] [[Green Guerillas]] [[Kauri gum]] [[University of the Philippines Los Baños College of Forestry and Natural Resources]] [[William Robinson (gardener)|Robinson, William (gardener)]] }} ===== Food and drink establishments ===== {{#invoke:Good Articles|subsection| [[5-8 Club]] [[Amal Women's Training Center and Moroccan Restaurant]] [[Argo Tea]] [[Barracuda Lounge]] [[Ben's Chili Bowl]] [[The Bigg Chill|Bigg Chill, The]] [[Boxers NYC Washington Heights]] [[The Box Tree|Box Tree, The]] [[Boxer Ramen]] [[Bridges Cafe]] [[Brix Tavern]] [[Burger King]] [[Burger King products]] [[Byways Cafe]] [[The Checkers (restaurant)|Checkers, The (restaurant)]] [[Club Cumming]] [[Club Feathers]] [[The Cock|Cock, The]] [[Country Bill's]] [[Cricket Cafe]] [[Davis Street Tavern]] [[Delta Cafe]] [[Dime Store (Portland, Oregon)]] [[Dinner by Heston Blumenthal]] [[DTM (nightclub)]] [[Eagle Boys]] [[El Celler de Can Roca]] [[Esparza's]] [[The Fat Duck|Fat Duck, The]] [[Fuller's Coffee Shop]] [[Georgies]] [[Gordon Ramsay Plane Food]] [[Graeter's]] [[Gypsy Restaurant and Velvet Lounge]] [[Headroom LGBTQ+ Lounge]] [[Hercules (nightclub)]] [[Hibiscus (restaurant)]] [[History of Burger King]] [[Hobo's]] [[Hodad's]] [[Imperial Bottle Shop & Taproom]] [[Industry Bar]] [[Joe Brown's Carmel Corn]] [[KFC]] [[Kissa Tanto]] [[La Bonita]] [[La Caravelle (New York City)]] [[La Carreta Mexican Restaurant]] [[La Tante DC10 Restaurant]] [[Last Exit on Brooklyn]] [[Leonard's Bakery]] [[The Liquor Store]] [[Los Pollos Hermanos]] [[Lutz Tavern]] [[Masia (restaurant)]] [[Miran Pastourma]] [[My Father's Place (Portland, Oregon)|My Father's Place]] [[Nostrana (restaurant)]] [[Ordinaire (wine bar)]] [[The Original Dinerant]] [[Paradise (nightclub)]] [[The Parish|Parish, The]] [[Papi Chulo's]] [[Park Grill]] [[Pearl Tavern]] [[Pétrus (restaurant)]] [[Pied Cow Coffeehouse]] [[The Q (nightclub)]] [[Rainbow Room]] [[Republic Cafe and Ming Lounge]] [[The Restaurant Marco Pierre White]] [[Rimsky-Korsakoffee House]] [[Rise Bar]] [[Roman Candle (Portland, Oregon)]] [[The Roxy (Portland, Oregon)]] [[Schwa (restaurant)]] [[Shanghai Tunnel Bar]] [[Sip 'n Dip Lounge]] [[Sixteen (restaurant)]] [[Smashburger]] [[Southeast Grind]] [[St. Lawrence (restaurant)]] [[Starky's]] [[Stork Club]] [[Thomas Carlyle (Millais)]] [[The Whitebrook|Whitebrook, The]] [[Therapy (New York City)]] [[Lundy's Restaurant]] [[XLB (Portland, Oregon)]] [[Yia Yia Mary's]] [[Jeff's Gourmet Sausage Factory]] }} ===== Cuisines ===== {{#invoke:Good Articles|subsection| [[Cuisine of the Thirteen Colonies]] [[English cuisine]] [[French cuisine]] [[Israeli cuisine]] [[Lebanese cuisine]] [[Mediterranean cuisine]] [[Palestinian cuisine]] [[SpaceX Starship]] [[Thomas Carlyle (Millais)]] [[Welsh cuisine]] }} ===== Food ===== {{#invoke:Good Articles|subsection| [[Acquacotta]] [[Aeroplane Jelly]] [[Angels on horseback]] [[Apple]] [[Applesauce cake]] [[Avocado cake]] [[Bacon Explosion]] [[Bacon ice cream]] [[Baconnaise]] [[Battalia pie]] [[Bean dip]] [[Beecher's Handmade Cheese]] [[Beefsteak (banquet)]] [[Beurre Maître d'Hôtel]] [[Bidni]] [[Big King]] [[BK Chicken Fries]] [[Black Thunder (chocolate bar)]] [[Blackcurrant]] [[BLT]] [[Burger King grilled chicken sandwiches]] [[Burger King Specialty Sandwiches]] [[Carrot soup]] [[Chips and dip]] [[Cincinnati chili]] [[Clam dip]] [[Clementine cake]] [[Clotted cream]] [[Colby cheese]] [[Crab dip]] [[Piper cubeba]] [[Danish Bacon]] [[Deep-fried butter]] [[Deep frying]] [[Detroit-style pizza]] [[Falafel]] [[Fluffernutter]] [[Food waste in the United Kingdom]] [[Fool's Gold Loaf]] [[Fried chicken]] [[Frog cake]] [[Gibanica]] [[Glamorgan sausage]] [[Honeynut squash]] [[Hyderabadi haleem]] [[Jif (lemon juice)]] [[Juniper berry]] [[Mushroom ketchup]] [[Milk chocolate]] [[Naem]] [[Okonomiyaki]] [[Old-fashioned doughnut]] [[Onion]] [[Parsnip]] [[Pasty]] [[Pink slime]] [[Pizza cheese]] [[Plum cake]] [[Poutine]] [[Radish]] [[ReaLemon]] ''[[Salade niçoise]]'' [[Salt]] [[Sorana bean]] [[Squab pie]] [[Stargazy pie]] [[Steak]] [[Sugar]] [[SweeTango]] [[Testaroli]] [[Vegetable chip]] [[Whopper]] }} ===== Drink ===== {{#invoke:Good Articles|subsection| [[Beer]] [[Beer in North Korea]] [[Beer in San Diego County, California]] [[BLT cocktail]] [[Borjomi (water)]] [[Cabernet Sauvignon]] [[Caesar (cocktail)]] [[Carménère]] [[Champagne wine region]] [[Commandaria]] [[The Glenlivet distillery]] [[Grapico]] [[Grodziskie]] [[Guinness Foreign Extra Stout]] [[Hot chocolate]] [[John Smith's Brewery]] [[Languedoc-Roussillon wine]] [[Lemon drop (cocktail)]] [[Malvern water]] [[Malvern Water (bottled water)]] [[McEwan's]] [[Oregon wine]] [[Riesling]] [[Royal Stag]] [[Rum and Coke]] [[Sauvignon blanc]] [[Stones Bitter]] [[Tea processing]] [[Thomas Carlyle (Millais)]] [[Thomas Carlyle (Millais)]] [[Three Horses Beer]] [[Zinfandel]] }} ===== Food and drink companies ===== {{#invoke:Good Articles|subsection| [[Angel Bakeries]] [[Boddingtons Brewery]] [[Burger King franchises]] [[Burger King legal issues]] [[Copia (museum)]] [[Kyrö Distillery Company]] [[O'Brien Brewing and Malting Company]] [[Slug and Lettuce]] [[Stones Brewery]] [[Thomas Carlyle (Millais)]] [[Webster's Brewery]] [[West Liberty Foods]] [[Worthington Brewery]] }} ===== Food and drink people ===== {{#invoke:Good Articles|subsection| [[Sora Amamiya|Amamiya, Sora]] [[Eugénie Brazier|Brazier, Eugénie]] [[Ann Cook (cookery book writer)|Cook, Ann]] [[Joseph Dart|Dart, Joseph]] [[John Dwight (manufacturer)|Dwight, John]] [[Joseph Favre|Favre, Joseph]] [[Mauricio González-Gordon y Díez|González-Gordon y Díez, Mauricio]] [[Elinor Fettiplace|Fettiplace, Elinor]] [[Daniel Frank Gerber|Gerber, Daniel Frank]] [[Arthur Guinness|Guinness, Arthur]] [[Georgiana Hill (cookery book writer)|Hill, Georgiana]] [[Otto Frederick Hunziker|Hunziker, Otto Frederick]] [[Nigella Lawson|Lawson, Nigella]] [[Albert P. Halfhill|P. Halfhill, Albert]] [[Charles T. Pepper|Pepper, Charles T.]] [[Florence Petty|Petty, Florence]] [[Claude Philippe|Philippe, Claude]] [[Michel Roux|Roux, Michel]] [[Anna Maria Rückerschöld|Rückerschöld, Anna Maria]] [[Paul Tremo|Tremo, Paul]] [[Women in brewing]] [[Mario Peruzzi]] }} =====Cookery books===== {{#invoke:Good Articles|subsection| ''[[The Art of Cookery Made Plain and Easy]]'' ''[[A Book of Mediterranean Food]]'' ''[[Compendium ferculorum, albo Zebranie potraw]]'' ''[[The Compleat Housewife]]'' ''[[The Cookery Book of Lady Clark of Tillypronie]]'' [[Elizabeth David bibliography]] ''[[The Experienced English Housekeeper]]'' ''[[Food in England]]'' ''[[The Good Huswifes Jewell]]'' ''[[The Modern Cook]]'' ''[[Modern Cookery for Private Families]]'' ''[[Mrs. Beeton's Book of Household Management]]'' ''[[A New System of Domestic Cookery]]'' ''[[The Accomplisht Cook]]'' [[Thomas Carlyle (Millais)]] }} =====Miscellaneous===== {{#invoke:Good Articles|subsection| [[Apple Maggot Quarantine Area]] [[Arab Agricultural Revolution]] [[Butler café]] [[Cellarette]] [[French fry vending machine]] [[Makiyakinabe]] [[Pancake machine]] [[Thomas Carlyle (Millais)]] [[Wet market]] }} </div> </div> </div><!--End Agriculture, food, and drink level 3 GA subtopic--><noinclude> [[Category:Lists of good articles|Agriculture, food and drink]] </noinclude> p7u6n4pghq98lr5lzxj2x8s1q2eehv5 Talk:Thomas Carlyle (Millais) 1 126946 532408 518297 2022-08-12T00:32:34Z Novem Linguae 49714 promote [[Thomas Carlyle (Millais)]] to good article ([[User:Novem Linguae/Scripts/GANReviewTool|GANReviewTool]]) wikitext text/x-wiki {{GA|00:32, 12 August 2022 (UTC)|topic=Agriculture, food and drink|page=1}} {{WikiProject Visual arts|class=GA}} {{Talk:Thomas Carlyle (Millais)/GA1}} n5f31b40daes9ruodop9zsrlmz27x93 532411 532408 2022-08-12T00:33:26Z Novem Linguae 49714 Revert to revision 518297 dated 2022-07-21 22:46:31 by Novem Linguae using [[:en:Wikipedia:Tools/Navigation_popups|popups]] wikitext text/x-wiki {{GA nominee|20:49, 10 May 2022 (UTC)|nominator=[[User:Sinopecynic|Sinopecynic]] ([[User talk:Sinopecynic|talk]])|page=1|subtopic=Art and architecture|status=onreview|note=}} {{WikiProject Visual arts|class=b}} {{Talk:Thomas Carlyle (Millais)/GA1}} bru5vk4tddlr9g6id6hoxxdj7xaymqq User:Novem Linguae/Scripts/GANReviewTool/GANReviewLog 2 127384 532410 518296 2022-08-12T00:32:37Z Novem Linguae 49714 promote [[Thomas Carlyle (Millais)]] to good article ([[User:Novem Linguae/Scripts/GANReviewTool|GANReviewTool]]) wikitext text/x-wiki * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 01:39, 21 July 2022 (UTC). [[Special:Diff/518154|[Atop]]][[Special:Diff/518155|[Talk]]][[Special:Diff/518156|[List]]] * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 01:47, 21 July 2022 (UTC). [[Special:Diff/518161|[Atop]]][[Special:Diff/518162|[Talk]]][[Special:Diff/518163|[List]]] * [[User:Novem Linguae|Novem Linguae]] undefineded [[Talk:Thomas Carlyle (Millais)/GA1]] at 02:27, 21 July 2022 (UTC). [[Special:Diff/undefined|[Atop]]][[Special:Diff/undefined|[Talk]]] * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 02:49, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 02:50, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 02:51, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 02:52, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:00, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:01, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:03, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:07, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:08, 21 July 2022 (UTC). * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:11, 21 July 2022 (UTC). [[Special:Diff/518200|[Atop]]][[Special:Diff/518201|[Talk]]][[Special:Diff/518202|[List]]] * [[User:Novem Linguae|Novem Linguae]] failed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:16, 21 July 2022 (UTC). [[Special:Diff/518207|[Atop]]][[Special:Diff/518208|[Talk]]] * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 03:25, 21 July 2022 (UTC). [[Special:Diff/518212|[Atop]]][[Special:Diff/518213|[Talk]]][[Special:Diff/518214|[List]]] * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 04:03, 21 July 2022 (UTC). [[Special:Diff/518219|[Atop]]][[Special:Diff/518220|[Talk]]][[Special:Diff/518221|[List]]] * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 22:45, 21 July 2022 (UTC). [[Special:Diff/518293|[Atop]]][[Special:Diff/518294|[Talk]]][[Special:Diff/518295|[List]]] * [[User:Novem Linguae|Novem Linguae]] passed [[Talk:Thomas Carlyle (Millais)/GA1]] at 00:32, 12 August 2022 (UTC). [[Special:Diff/532408|[Talk]]][[Special:Diff/532409|[List]]] 3g260rk7saau0ctbc4u8x5nskfou95d NewPagesFeed language test 0 139542 532369 2022-08-11T16:08:18Z PrimeHunter 7942 Created page with "Language test. __TOC__ == Purpose == This is a test page for the issue at [[:en:Wikipedia:Village pump (technical)#Содержание]] ([[:en:Special:Permalink/1103930343#Содержание|permanent link]]). I have set my language to "da - dansk" (Danish) at [[Special:Preferences]]. For me, the "Contents" heading in the TOC currently says "Indholdsfortegnelse", the Danish term in [[MediaWiki:Toc/da]]. Others should still see the default English "Contents" but if th..." wikitext text/x-wiki Language test. __TOC__ == Purpose == This is a test page for the issue at [[:en:Wikipedia:Village pump (technical)#Содержание]] ([[:en:Special:Permalink/1103930343#Содержание|permanent link]]). I have set my language to "da - dansk" (Danish) at [[Special:Preferences]]. For me, the "Contents" heading in the TOC currently says "Indholdsfortegnelse", the Danish term in [[MediaWiki:Toc/da]]. Others should still see the default English "Contents" but if the issue occurs then [[Special:NewPagesFeed]] will display "Indholdsfortegnelse" because the page creator has chosen Danish. [[User:PrimeHunter|PrimeHunter]] ([[User talk:PrimeHunter|talk]]) 16:08, 11 August 2022 (UTC) 9kn0izpkl0djebrdioumggtkspvguzs 532370 532369 2022-08-11T16:16:09Z PrimeHunter 7942 /* Purpose */ After creating this page, [[Special:NewPagesFeed]] does indeed display "Indholdsfortegnelse". wikitext text/x-wiki Language test. __TOC__ == Purpose == This is a test page for the issue at [[:en:Wikipedia:Village pump (technical)#Содержание]] ([[:en:Special:Permalink/1103930343#Содержание|permanent link]]). I have set my language to "da - dansk" (Danish) at [[Special:Preferences]]. For me, the "Contents" heading in the TOC currently says "Indholdsfortegnelse", the Danish term in [[MediaWiki:Toc/da]]. Others should still see the default English "Contents" but if the issue occurs then [[Special:NewPagesFeed]] will display "Indholdsfortegnelse" because the page creator has chosen Danish. [[User:PrimeHunter|PrimeHunter]] ([[User talk:PrimeHunter|talk]]) 16:08, 11 August 2022 (UTC) After creating this page, [[Special:NewPagesFeed]] does indeed display "Indholdsfortegnelse". [[User:PrimeHunter|PrimeHunter]] ([[User talk:PrimeHunter|talk]]) 16:16, 11 August 2022 (UTC) hn0k9i12a2vk8w6jiizgt88jbe3xxj3 532371 532370 2022-08-11T16:20:25Z PrimeHunter 7942 /* Purpose */ maybe it's not decided by the page creator but the most recent editor's language at the time wikitext text/x-wiki Language test. __TOC__ == Purpose == This is a test page for the issue at [[:en:Wikipedia:Village pump (technical)#Содержание]] ([[:en:Special:Permalink/1103930343#Содержание|permanent link]]). I have set my language to "da - dansk" (Danish) at [[Special:Preferences]]. For me, the "Contents" heading in the TOC currently says "Indholdsfortegnelse", the Danish term in [[MediaWiki:Toc/da]]. Others should still see the default English "Contents" but if the issue occurs then [[Special:NewPagesFeed]] will display "Indholdsfortegnelse" because the page creator has chosen Danish. [[User:PrimeHunter|PrimeHunter]] ([[User talk:PrimeHunter|talk]]) 16:08, 11 August 2022 (UTC) After creating this page, [[Special:NewPagesFeed]] does indeed display "Indholdsfortegnelse". [[User:PrimeHunter|PrimeHunter]] ([[User talk:PrimeHunter|talk]]) 16:16, 11 August 2022 (UTC) I changed back to English before the above post and [[Special:NewPagesFeed]] now says "Contents" so maybe it's not decided by the page creator but the most recent editor's language at the time. I have changed back to Danish before this edit. [[User:PrimeHunter|PrimeHunter]] ([[User talk:PrimeHunter|talk]]) 16:20, 11 August 2022 (UTC) f04kblsmrpxgebkxglkukypl14f10dp User talk:Bocardodarapti 3 139543 532391 2022-08-11T18:49:58Z Bocardodarapti 54823 Bot: Adding Helalo. ~~~~ wikitext text/x-wiki Helalo. [[User:Bocardodarapti|Bocardodarapti]] ([[User talk:Bocardodarapti|talk]]) 18:49, 11 August 2022 (UTC) jhpbvys6ae8kz3gz52ujhvenbcrdg22 532392 532391 2022-08-11T18:51:29Z Bocardodarapti 54823 Bot: Adding Heladilo, ein Versuch. Man steuert alles von hier aus. ~~~~ wikitext text/x-wiki Heladilo, ein Versuch. Man steuert alles von hier aus. [[User:Bocardodarapti|Bocardodarapti]] ([[User talk:Bocardodarapti|talk]]) 18:51, 11 August 2022 (UTC) Helalo. [[User:Bocardodarapti|Bocardodarapti]] ([[User talk:Bocardodarapti|talk]]) 18:49, 11 August 2022 (UTC) fp94ajaym63ciz7t7vxe0qhhzbdnw47 Topic:X12xro0mlpi4kmx9 2600 139544 532450 2022-08-12T10:45:01Z Flow talk page manager 26836 /* This page has been converted into a Structured Discussions board */ flow-board application/json {"flow-workflow":"x12xro0mlpi4kmx9"} 2cbaalakukh7wsk92k55f40fz0koftt