CINXE.COM

查看“︁Module:Buffer”︁的源代码 - 维基百科,自由的百科全书

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-not-available" lang="zh" dir="ltr"> <head> <meta charset="UTF-8"> <title>查看“︁Module:Buffer”︁的源代码 - 维基百科,自由的百科全书</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-not-available";var cookie=document.cookie.match(/(?:^|; )zhwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":true,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat": "dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"d789e9f0-603f-4288-9cb9-9d04dc1e2904","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Module:Buffer","wgTitle":"Buffer","wgCurRevisionId":47558736,"wgRevisionId":0,"wgArticleId":4812683,"wgIsArticle":false,"wgIsRedirect":false,"wgAction":"edit","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["带电邮地址的页面"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Module:Buffer","wgRelevantArticleId":4812683,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["sysop"],"wgRestrictionMove":["sysop"],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{ "pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgCodeEditorCurrentLanguage":"lua","wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.large-font":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading", "ext.codeEditor.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","mediawiki.ui.button":"ready","ext.charinsert.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.codeEditor","ext.scribunto.edit","mediawiki.action.edit.collapsibleFooter","site","mediawiki.page.ready","skins.vector.js","ext.centralNotice.geoIP","ext.charinsert","ext.gadget.edit0","ext.gadget.Edittools-refToolbar","ext.gadget.WikiMiniAtlas","ext.gadget.UnihanTooltips","ext.gadget.Difflink","ext.gadget.pseudonamespace-UI","ext.gadget.SpecialWikitext","ext.gadget.switcher","ext.gadget.VariantAlly","ext.gadget.AdvancedSiteNotices","ext.gadget.hideConversionTab","ext.gadget.internalLinkHelper-altcolor","ext.gadget.noteTA","ext.gadget.NavFrame","ext.gadget.collapsibleTables","ext.gadget.scrollUpButton", "ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=zh&amp;modules=ext.charinsert.styles%7Cext.codeEditor.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cmediawiki.ui.button%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=zh&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=zh&amp;modules=ext.gadget.large-font&amp;only=styles&amp;skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=zh&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="noindex,nofollow,max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="查看“︁Module:Buffer”︁的源代码 - 维基百科,自由的百科全书"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//zh.m.wikipedia.org/wiki/Module:Buffer"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (zh)"> <link rel="EditURI" type="application/rsd+xml" href="//zh.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://zh.wikipedia.org/wiki/Module:Buffer"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh"> <link rel="alternate" type="application/atom+xml" title="Wikipedia的Atom feed" href="/w/index.php?title=Special:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9&amp;feed=atom"> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="codeeditor-loading skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject page-Module_Buffer rootpage-Module_Buffer skin-vector-2022 action-edit"><a class="mw-jump-link" href="#bodyContent">跳转到内容</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="站点"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="主菜单" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">主菜单</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">主菜单</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">隐藏</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> 导航 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikipedia:%E9%A6%96%E9%A1%B5" title="访问首页[z]" accesskey="z"><span>首页</span></a></li><li id="n-indexpage" class="mw-list-item"><a href="/wiki/Wikipedia:%E5%88%86%E7%B1%BB%E7%B4%A2%E5%BC%95" title="以分类索引搜寻中文维基百科"><span>分类索引</span></a></li><li id="n-Featured_content" class="mw-list-item"><a href="/wiki/Portal:%E7%89%B9%E8%89%B2%E5%85%A7%E5%AE%B9" title="查看中文维基百科的特色内容"><span>特色内容</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:%E6%96%B0%E8%81%9E%E5%8B%95%E6%85%8B" title="提供当前新闻事件的背景资料"><span>新闻动态</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9" title="列出维基百科中的最近修改[r]" accesskey="r"><span>最近更改</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2" title="随机载入一个页面[x]" accesskey="x"><span>随机条目</span></a></li> </ul> </div> </div> <div id="p-help" class="vector-menu mw-portlet mw-portlet-help" > <div class="vector-menu-heading"> 帮助 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:%E7%9B%AE%E5%BD%95" title="寻求帮助"><span>帮助</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:%E7%A4%BE%E7%BE%A4%E9%A6%96%E9%A1%B5" title="关于本计划、你可以做什么、应该如何做"><span>维基社群</span></a></li><li id="n-policy" class="mw-list-item"><a href="/wiki/Wikipedia:%E6%96%B9%E9%87%9D%E8%88%87%E6%8C%87%E5%BC%95" title="查看维基百科的方针和指引"><span>方针与指引</span></a></li><li id="n-villagepump" class="mw-list-item"><a href="/wiki/Wikipedia:%E4%BA%92%E5%8A%A9%E5%AE%A2%E6%A0%88" title="参与维基百科社群的讨论"><span>互助客栈</span></a></li><li id="n-Information_desk" class="mw-list-item"><a href="/wiki/Wikipedia:%E7%9F%A5%E8%AF%86%E9%97%AE%E7%AD%94" title="解答任何与维基百科无关的问题的地方"><span>知识问答</span></a></li><li id="n-conversion" class="mw-list-item"><a href="/wiki/Wikipedia:%E5%AD%97%E8%AF%8D%E8%BD%AC%E6%8D%A2" title="提出字词转换请求"><span>字词转换</span></a></li><li id="n-IRC" class="mw-list-item"><a href="/wiki/Wikipedia:IRC%E8%81%8A%E5%A4%A9%E9%A2%91%E9%81%93"><span>IRC即时聊天</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedia:%E8%81%94%E7%BB%9C%E6%88%91%E4%BB%AC" title="如何联络维基百科"><span>联络我们</span></a></li><li id="n-about" class="mw-list-item"><a href="/wiki/Wikipedia:%E5%85%B3%E4%BA%8E" title="查看维基百科的简介"><span>关于维基百科</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikipedia:%E9%A6%96%E9%A1%B5" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="维基百科" src="/static/images/mobile/copyright/wikipedia-wordmark-zh.svg" style="width: 6.5625em; height: 1.375em;"> <img class="mw-logo-tagline" alt="自由的百科全书" src="/static/images/mobile/copyright/wikipedia-tagline-zh.svg" width="103" height="14" style="width: 6.4375em; height: 0.875em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:%E6%90%9C%E7%B4%A2" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="搜索维基百科[f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>搜索</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="搜索维基百科" aria-label="搜索维基百科" autocapitalize="sentences" title="搜索维基百科[f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:搜索"> </div> <button class="cdx-button cdx-search-input__end-button">搜索</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="个人工具"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="外观"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="更改页面字体大小、宽度和颜色的外观" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="外观" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">外观</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=zh.wikipedia.org&amp;uselang=zh" class=""><span>资助维基百科</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:%E5%88%9B%E5%BB%BA%E8%B4%A6%E6%88%B7&amp;returnto=Module%3ABuffer&amp;returntoquery=action%3Dedit" title="我们推荐您创建账号并登录,但这不是强制性的" class=""><span>创建账号</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&amp;returnto=Module%3ABuffer&amp;returntoquery=action%3Dedit" title="建议你登录,尽管并非必须。[o]" accesskey="o" class=""><span>登录</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="更多选项" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="个人工具" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">个人工具</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="用户菜单" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=zh.wikipedia.org&amp;uselang=zh"><span>资助维基百科</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:%E5%88%9B%E5%BB%BA%E8%B4%A6%E6%88%B7&amp;returnto=Module%3ABuffer&amp;returntoquery=action%3Dedit" title="我们推荐您创建账号并登录,但这不是强制性的"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>创建账号</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&amp;returnto=Module%3ABuffer&amp;returntoquery=action%3Dedit" title="建议你登录,尽管并非必须。[o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>登录</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> 未登录编辑者的页面 <a href="/wiki/Help:%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8" aria-label="了解有关编辑的更多信息"><span>了解详情</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:%E6%88%91%E7%9A%84%E8%B4%A1%E7%8C%AE" title="来自此IP地址的编辑列表[y]" accesskey="y"><span>贡献</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:%E6%88%91%E7%9A%84%E8%AE%A8%E8%AE%BA%E9%A1%B5" title="对于来自此IP地址编辑的讨论[n]" accesskey="n"><span>讨论</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="站点"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <h1 id="firstHeading" class="firstHeading mw-first-heading">查看“︁Module:Buffer”︁的源代码</h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="这篇条目只存在于此语言中。添加其他语言的条目" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">添加语言</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="命名空间"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Module:Buffer" title="查看模块页面[c]" accesskey="c"><span>模块</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module_talk:Buffer&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="关于此页面的讨论(页面不存在)[t]" accesskey="t"><span>讨论</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="更改语言变体" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="查看"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="vector-tab-noicon mw-list-item"><a href="/wiki/Module:Buffer"><span>阅读</span></a></li><li id="ca-viewsource" class="selected vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:Buffer&amp;action=edit" title="该页面已被保护。你可以查看该页源码。[e]" accesskey="e"><span>查看源代码</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:Buffer&amp;action=history" title="本页面的早前版本。[h]" accesskey="h"><span>查看历史</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="页面工具"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="工具" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">工具</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">工具</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">隐藏</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="更多选项" > <div class="vector-menu-heading"> 操作 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/Module:Buffer"><span>阅读</span></a></li><li id="ca-more-viewsource" class="selected vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:Buffer&amp;action=edit"><span>查看源代码</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:Buffer&amp;action=history"><span>查看历史</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> 常规 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:%E9%93%BE%E5%85%A5%E9%A1%B5%E9%9D%A2/Module:Buffer" title="列出所有与本页相链的页面[j]" accesskey="j"><span>链入页面</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:%E9%93%BE%E5%87%BA%E6%9B%B4%E6%94%B9/Module:Buffer" rel="nofollow" title="页面链出所有页面的更改[k]" accesskey="k"><span>相关更改</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Project:%E4%B8%8A%E4%BC%A0" title="上传图像或多媒体文件[u]" accesskey="u"><span>上传文件</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2" title="全部特殊页面的列表[q]" accesskey="q"><span>特殊页面</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Module:Buffer&amp;action=info" title="关于此页面的更多信息"><span>页面信息</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:URL%E7%BC%A9%E7%9F%AD%E7%A8%8B%E5%BA%8F&amp;url=https%3A%2F%2Fzh.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DModule%3ABuffer%26action%3Dedit"><span>获取短链接</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fzh.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DModule%3ABuffer%26action%3Dedit"><span>下载二维码</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> 在其他项目中 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q19967589" title="链接到连接的数据仓库项目[g]" accesskey="g"><span>维基数据项目</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="页面工具"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="外观"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">外观</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">隐藏</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> </div> <div id="contentSub"><div id="mw-content-subtitle">←<a href="/wiki/Module:Buffer" title="Module:Buffer">Module:Buffer</a></div></div> <div id="mw-content-text" class="mw-body-content"><p>根据以下的原因,您并无权限去编辑该页面: </p> <ul class="permissions-errors"><li class="mw-permissionerror-protectedpagetext"><style data-mw-deduplicate="TemplateStyles:r83418294">.mw-parser-output .fmbox{clear:both;margin:0.2em 0;width:100%;border:1px solid var(--border-color-base,#a2a9b1);background-color:var(--background-color-interactive-subtle,#f8f9fa);box-sizing:border-box;color:var(--color-base,#202122)}.mw-parser-output .fmbox-system{background-color:var(--background-color-interactive-subtle,#f8f9fa)}.mw-parser-output .fmbox-warning{border:1px solid var(--border-color-destructive--active,#bb7070);background-color:var(--background-color-error-subtle,#ffdbdb)}.mw-parser-output .fmbox-editnotice{background-color:var(--background-color-transparent,transparent)}.mw-parser-output .fmbox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .fmbox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .fmbox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .fmbox .mbox-invalid-type{text-align:center}</style> <table id="mw-protectedpagetext" class="plainlinks fmbox fmbox-system" role="presentation"><tbody><tr><td class="mbox-text"><table class="plainlinks ombox ombox-protection" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/12/Full-protection-shackle-block.svg/40px-Full-protection-shackle-block.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/12/Full-protection-shackle-block.svg/60px-Full-protection-shackle-block.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/12/Full-protection-shackle-block.svg/80px-Full-protection-shackle-block.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span></td><td class="mbox-text" style="font-weight:bold; font-size:130%;">本页目前被<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D#全保护" title="Wikipedia:保護方針">全保护</a>,只有<a href="/wiki/Wikipedia:%E7%AE%A1%E7%90%86%E5%91%98" title="Wikipedia:管理员">管理员</a>才能进行编辑。</td></tr></tbody></table><div class="mw-heading mw-heading2"><h2 id="为何会出现这种情况?"><span id=".E4.B8.BA.E4.BD.95.E4.BC.9A.E5.87.BA.E7.8E.B0.E8.BF.99.E7.A7.8D.E6.83.85.E5.86.B5.EF.BC.9F"></span>为何会出现这种情况?</h2></div> <ul> <li>部分<a href="/wiki/Wikipedia:%E6%A8%A1%E6%9D%BF%E6%B6%88%E6%81%AF" title="Wikipedia:模板消息">模板</a>及软件的界面由于其<a href="/wiki/Wikipedia:%E9%AB%98%E9%A2%A8%E9%9A%AA%E6%A8%A1%E6%9D%BF" title="Wikipedia:高風險模板">高风险</a>及可见性会被<a href="/wiki/Wikipedia:%E4%BF%9D%E6%8A%A4%E6%96%B9%E9%92%88" class="mw-redirect" title="Wikipedia:保护方针">永久保护</a>。部分页面有时会因为<a href="/wiki/Wikipedia:%E7%BC%96%E8%BE%91%E6%88%98" class="mw-redirect" title="Wikipedia:编辑战">编辑争议</a>而受到保护。 </li> <li>关于本页被保护的理由、时间和类型,請参看<a class="external text" href="https://zh.wikipedia.org/w/index.php?title=Special:Log&amp;type=protect&amp;page=Module%3ABuffer">本页的保护日志</a>。如果未能在保护日志中查阅,本页可能是在保护之后被<a href="/wiki/Help:%E9%A1%B5%E9%9D%A2%E9%87%8D%E5%91%BD%E5%90%8D" title="Help:页面重命名">移动</a>。 </li></ul> <div class="mw-heading mw-heading2"><h2 id="我现在可以做些什么?"><span id=".E6.88.91.E7.8E.B0.E5.9C.A8.E5.8F.AF.E4.BB.A5.E5.81.9A.E4.BA.9B.E4.BB.80.E4.B9.88.EF.BC.9F"></span>我现在可以做些什么?</h2></div> <ul> <li>您可以<a href="/w/index.php?title=Module_talk:Buffer&amp;action=edit&amp;redlink=1" class="new" title="Module talk:Buffer(页面不存在)">和其他人讨论此页</a>。如果您无法编辑讨论页,请到<a href="/wiki/Wikipedia:%E4%BA%92%E5%8A%A9%E5%AE%A2%E6%A0%88/%E6%B1%82%E5%8A%A9" title="Wikipedia:互助客栈/求助">互助客栈</a>求助。 </li> <li>在讨论页提出一个编辑请求,让<a href="/wiki/Wikipedia:%E7%AE%A1%E7%90%86%E5%91%98" title="Wikipedia:管理员">管理员</a>将您想要更改的内容提交上去。 </li><li>若您想移动本页,请按照<a href="/wiki/Wikipedia:%E7%A7%BB%E5%8A%A8%E8%AF%B7%E6%B1%82" class="mw-redirect" title="Wikipedia:移动请求">Wikipedia:移动请求</a>的说明提出。 </li> <li>申请解除页面保护。<span class="skin-invert" style="color:red;">请注意提出请求时须附有合理原因,否则管理员很可能会拒绝您的请求。</span> </li> </ul> <div style="text-align:center; margin:auto;"> <p><span class="plainlinks"><a class="external text" href="https://zh.wikipedia.org/w/index.php?title=Module_talk%3ABuffer&amp;preload=Template%3ASubmit+an+edit+request%2Fpreload&amp;action=edit&amp;section=new&amp;editintro=Template%3AEditprotected%2Feditintro&amp;nosummary=1&amp;preloadtitle=&amp;preloadparams%5B%5D=+%E7%B7%A8%E8%BC%AF%E8%AB%8B%E6%B1%82+2024-12-02+"><span class="mw-ui-button mw-ui-progressive" role="button">提出代为编辑请求</span></a></span> <span class="plainlinks"><a class="external text" href="https://zh.wikipedia.org/w/index.php?title=Draft:Module:Buffer&amp;action=edit&amp;preload=Module%3ABuffer&amp;summary=撰写受保护页面的草稿"><span class="mw-ui-button mw-ui-progressive" role="button">撰写草稿</span></a></span> <span class="plainlinks"><a class="external text" href="https://zh.wikipedia.org/w/index.php?title=Wikipedia:%E8%AF%B7%E6%B1%82%E4%BF%9D%E6%8A%A4%E9%A1%B5%E9%9D%A2&amp;action=edit&amp;section=new&amp;preload=Template:请求解除保护/auto2&amp;nosummary=1&amp;preloadparams%5B%5D=Module%3ABuffer"><span class="mw-ui-button mw-ui-destructive" role="button">提出解除页面保护</span></a></span> </p> </div></td></tr></tbody></table></li><li class="mw-permissionerror-blockedtext"> <table id="mw-blocked-text" style="border:1px solid var(--border-color-notice,rgba(0,0,0,0.4)); border-radius: 3px; width:100%; margin:0 auto 6px auto; padding: 0;"> <tbody><tr> <td> <div style="width:100%; text-align:center; margin: 1.3em 0 1.3em 0;"><div style="font-size:1.6em; color:var(--color-error,rgba(221,51,51,1));"><b>您現在使用的IP地址目前不能編輯維基百科</b></div> <div style="text-align: center;"><div style="display: inline-block; padding: 0 2em; border-radius: 3px;"><b>您可以瀏覽頁面</b>,但不能編輯或建立頁面</div></div> </div> <div style="margin:auto; width:70%;"> <div style="text-align:justify;"> <p>目前,IP地址區段「<u>8.222.0.0/16</u>」已被‪Jimmy-abot‬<b><a href="/wiki/Wikipedia:BLOCK" class="mw-redirect" title="Wikipedia:BLOCK">封禁</a></b>,而您所使用的IP地址正位於被封禁的範圍內。該IP地址區段被封禁的 </p> <div style="margin:1em; background: var(--background-color-neutral,#eaecf0); padding:0.6em 2em; border:0px var(--border-color-notice,#666) solid; border-radius: 3px;" id="mw-blocked-text-reason"> <div style="color: var(--color-progressive--active,rgba(42,75,141,1))">封禁理由:</div> <div style="color: var(--color-error,rgba(221,51,51,1)); margin:0.5em 1em"> <table class="user-block" style="border: 1px solid var(--border-color-base,#AAA); padding: 0.5em; width: 100%;"> <tbody><tr> <td> <figure class="mw-halign-left" typeof="mw:File"><a href="/wiki/File:Banned_proxys.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Banned_proxys.svg/50px-Banned_proxys.svg.png" decoding="async" width="50" height="50" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Banned_proxys.svg/75px-Banned_proxys.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f0/Banned_proxys.svg/100px-Banned_proxys.svg.png 2x" data-file-width="480" data-file-height="480" /></a><figcaption></figcaption></figure>您正在使用的<a href="/wiki/IP%E4%BD%8D%E5%9D%80" class="mw-redirect" title="IP位址">IP地址</a>被判定用于代理工具,因此这一IP已经被封禁。 <p>为防止破坏,<b><a href="https://meta.wikimedia.org/wiki/No_open_proxies/zh" class="extiw" title="m:No open proxies/zh">维基媒体基金会禁止使用部分代理工具来编辑维基百科</a></b>。 </p> </td></tr> <tr> <td style="border-top: 1px solid #AAA; padding-top: 0.5em;"> <p><b>为什么?</b> </p><p>您当前访问维基百科使用的IP被我们判定为代理(包括<a href="/wiki/%E7%AA%81%E7%A0%B4%E7%BD%91%E7%BB%9C%E5%AE%A1%E6%9F%A5" title="突破网络审查">突破网络审查</a>)工具所使用的IP。因代理工具可以隐藏用户的真实IP,使破坏者可以以人工或程序对维基百科进行破坏,故禁止使用公共代理工具进行编辑。 </p><p><b>怎么办?</b> </p> <ul><li>直接访问维基百科,不经过代理服务。</li> <li>如果您在中国大陆而必须使用代理服务器,或是有特殊需要,请您 <span class="plainlinks"><a href="/wiki/Wikipedia:Unblock-zh/Blocked_proxy" class="mw-redirect" title="Wikipedia:Unblock-zh/Blocked proxy"><span class="mw-ui-button mw-ui-progressive" role="button">使用网站</span></a></span> 或者 <span class="plainlinks"><a href="/wiki/Wikipedia:IPBEMAIL" class="mw-redirect" title="Wikipedia:IPBEMAIL"><span class="mw-ui-button mw-ui-progressive" role="button">使用电邮</span></a></span> 申请IP封禁豁免。带有此权限的用户可以使用被封禁的代理编辑维基百科。</li> <li>如果您相信自己并未运行或使用代理,那很可能是因为上一个从<a href="/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E6%9C%8D%E5%8A%A1%E4%BE%9B%E5%BA%94%E5%95%86" title="互联网服务供应商">互联网服务供应商</a>分配到此IP地址的用户运行了代理。那么请在您的<a href="/wiki/Help:%E8%AE%A8%E8%AE%BA%E9%A1%B5" class="mw-redirect" title="Help:讨论页">讨论页</a>使用&#123;&#123;<a href="/wiki/Template:Unblock" title="Template:Unblock">unblock</a>&#125;&#125;模板申请解除封禁。极少数情况下,您的网络设备或服务提供商可能未进行正确配置,或已被恶意软件(如病毒)入侵。</li> <li>您如果无法自行解决问题,可至<a href="/wiki/Wikipedia:IRC%E8%81%8A%E5%A4%A9%E9%A2%91%E9%81%93" title="Wikipedia:IRC聊天频道">IRC聊天频道</a>寻求其他编者的帮助。</li></ul> </td></tr></tbody></table> </div> <div style="color: var(--color-progressive--active,rgba(42,75,141,1))">這次封禁的結束時間是:<b>2025年7月23日 (三) 10:52 (<a href="/wiki/UTC" class="mw-redirect" title="UTC">UTC</a>)</b></div> </div> <p>如您对此封禁有疑问或异议,您可以: </p> <div style="margin:1em; background: var(--background-color-neutral,#eaecf0); color: var(--color-progressive--active,rgba(42,75,141,1)); padding:0.6em 2em; border:0px var(--border-color-notice,#666 solid); border-radius: 3px;"> <div style="margin-bottom: 0.4em;"><b>网站申诉</b>:前往<a rel="nofollow" class="external text" href="https://unblock-zh.org/new/zhwp">-{R|https://unblock-zh.org/new/zhwp}-</a>,如果您没有账户,请选择“无法创建账户”。如果您有账户,请选择“已有账户,但无法编辑”。在页面下方的“IP地址和IPBE”一节,请您选择“检测并提供我的IP地址信息,同时申请IPBE权限”。如果您使用代理/翻墙工具,请确保您开启全局模式,以保证我们获得您的准确IP信息。管理员将手工处理您的请求。</div> <div style="margin-bottom: 0.4em;"><b>邮件申诉</b>:将您的用户名和申诉理由写入电子邮件,发送至 <b><samp>unblock-zh<span class="skin-invert" typeof="mw:File"><span title="@"><img alt="@" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Nospam_at.svg/12px-Nospam_at.svg.png" decoding="async" width="12" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Nospam_at.svg/18px-Nospam_at.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Nospam_at.svg/24px-Nospam_at.svg.png 2x" data-file-width="16" data-file-height="16" /></span></span>lists.wikimedia.org</samp></b>。管理员将在收到邮件后考虑您的请求。请注意邮件发送可能会有延时,请勿重复多次发送。</div> <div class="user-show"><b>联络管理员</b>:聯絡<a href="/wiki/Special:%E7%94%B5%E9%82%AE%E8%81%94%E7%B3%BB/Jimmy-abot" title="Special:电邮联系/Jimmy-abot">执行封禁的管理员‪Jimmy-abot‬</a>或者其他的<a href="/wiki/Wikipedia:%E7%AE%A1%E7%90%86%E5%91%98%E5%90%8D%E5%8D%95#在任管理员" title="Wikipedia:管理员名单">管理員</a>,討論這次封禁。如果您希望使用「電郵用戶」功能聯絡管理員,請注意您必须已于您的<a href="/wiki/Special:%E5%8F%82%E6%95%B0%E8%AE%BE%E7%BD%AE" title="Special:参数设置">参数设置</a>中設定了一個有效的電子郵件地址,并且在管理员执行封禁时没有被禁止发送电子邮件。</div></div> <p>您目前的IP地址是8.222.208.146,而該封鎖ID是#566341。請您在所有申訴中註明此IP地址及封鎖ID。 </p><p><br /> </p> <div style="height: 2em;"></div> </div></div> </td></tr></tbody></table></li><li class="mw-permissionerror-globalblocking-blockedtext-range"><b>您的IP地址属于已<a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Global_blocks" class="extiw" title="m:Special:MyLanguage/Global blocks">在所有维基媒体基金会维基受到封禁</a>的地址段。</b> <p>封禁执行者是<a href="/wiki/User:Jon_Kolbert" title="User:Jon Kolbert">‪Jon Kolbert‬</a>。封禁原因是<i><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/NOP" class="extiw" title="m:Special:MyLanguage/NOP">Open proxy/Webhost</a>: See the <a href="https://meta.wikimedia.org/wiki/WM:OP/H" class="extiw" title="m:WM:OP/H">help page</a> if you are affected </i>。 </p> <ul><li>封禁开始时间:2023年8月27日 (日) 15:12</li> <li>封禁期满时间:2028年8月27日 (日) 15:12</li></ul> <p>您当前的IP地址是8.222.208.146。封禁的地址段是8.222.128.0/17。 </p> 请在进行咨询时提供上面所有详情。如果您认为您受到错误封禁,您可以在<a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/No_open_proxies" class="extiw" title="m:Special:MyLanguage/No open proxies">禁止公开代理</a>全域方针里找到更多信息和说明。您也可以<a href="https://meta.wikimedia.org/wiki/Steward_requests/Global" class="extiw" title="m:Steward requests/Global">到元维基发布复查申请</a>讨论该封禁。您还可以给<a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Stewards" class="extiw" title="m:Special:MyLanguage/Stewards">监管员</a><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/VRT" class="extiw" title="m:Special:MyLanguage/VRT">VRT</a>队列(<kbd>stewards@wikimedia.org</kbd>)发送提供上面所有详情的电子邮件。</li></ul><hr /> <p>您可以查看和复制此页面的源代码。 </p><textarea readonly="" accesskey="," id="wpTextbox1" cols="80" rows="25" style="" class="mw-editfont-monospace" lang="en" dir="ltr" name="wpTextbox1">--[[============================= This Module was written by Alexander Zhikun He, also known as, User:Codehydro on the English Wikipedia All methods were developed independently and any resemblance to other string buffer libraries would be coincidental. Furthermore, many methods will not work when compiled by standard Lua libraries as they depend on behaviors unique to the MediaMiki Scribunto mod, which, for example, has a getmetatable() method that always returns nil on non-tables. https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual Source code comments may be thin at some points because they are intended to be supplemented by the documentation page: https://en.wikipedia.org/wiki/Module:Buffer/doc Licensed under Creative Commons Attribution-ShareAlike 3.0 Unported License https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License https://en.wikipedia.org/wiki/Module:Buffer https://en.wikipedia.org/wiki/User:Codehydro =============================--]] local function Valid(v)--type validation if v and v~=true then--reject nil/boolean; faster than 2 type() comparisons local str = tostring(v)--functions not filtered since unlikely passed by accident (Scribunto does not have userdata/thread types) if str~=v and str=='table' then return rawget(v, 1) and table.concat(v) end--tostring(string-type) returns same ref; same refs compare faster than type() if str~='' then return str end--numbers are coerced to string per table.concat op; appending in string form saves ops on repeat concat end end local noOp, MBpairs = function()end do local iMap, vMap, oMap, pIter, pOther, pFast, Next--Map local function init()--init = noOp after first run function Next(t) return next, t end--slightly faster to do this than to use select() function pIter(t, k) k = (iMap[t] or MBpairs(t, true) and iMap[t])[not k and 1 or vMap[t][k]] return k, t[k] end--don't use rawget; accepting unmapped tables does not measurably affect performance. function pOther(t, k) k = (oMap[t] or MBpairs(t, true) and oMap[t])[nil==k and 1 or vMap[t][k]] return k, t[k] end--comparison to nil because false is a valid key function pFast(t, k) k = not k and 1 or k &lt; (vMap[t] or #t) and k + 1 or nil return k, t[k] end--mapless iterator; almost as fast as native ipairs; slight performance penalty when length not cached --k and k &lt; (vMap[t] or #t) and k + 1 or not k and 1 or nil return k, t[k] end--mapless iterator; almost as fast as native ipairs; slight performance penalty when length not cached local mk = {__mode = 'k'}--use mode 'k'; found that mode 'kv' sometimes garbage collects maps mid-loop (may not error because iterators auto re-map, but that's expensive) init, iMap, vMap, oMap = noOp, setmetatable({}, mk), setmetatable({}, mk), setmetatable({}, mk)--iMap is numeric keys, oMap is non-numeric keys, and vMap points to next key end function MBpairs(t, ...)--pairs always iterates in order local iter, ex = ... iter = iter==init()--nil if iter and not oMap[t] and ex==nil and rawget(t, 1)~=nil and next(t, #t)==nil then--while possible to miss keys, more thorough check would negate the benefit of pFast vMap[t] = #t return pFast, t, nil elseif ... or not vMap[t] or select('#', ...)~=1 then local ti, tn, to, n = {}, {}, {}, #t--reduces table lookups iMap[t], vMap[t], oMap[t] = ti, tn, to for k = 1, n do ti[k], tn[k] = k, k + 1 end--stage one avoids number type checking op in stage two for most numeric keys for k in (ex or Next)(t) do if not tn[k] then table.insert(tonumber(k)~=k and to or ti, k) end end if #ti~=n then table.sort(ti) for k = 1, #ti do tn[ti[k]] = k + 1 end--somewhat wasteful, but trying to avoid overwriting can be even more expensive end for k = 1, #to do tn[to[k]] = k + 1 end end return iter and pIter or oMap[t] and pOther or noOp, t--noOp for mapless end end local parent, rawkey, spec do--new scope for variables not reused outside (reduces number of var names that need to checked outside of scope) local mkv = {__mode='kv', __call=function(t,k,v)t[k]=v return k end}--shared meta for Buffer parent property, raw mode, and specialized functions parent, rawkey, spec = setmetatable({}, mkv), setmetatable({}, mkv), setmetatable({}, mkv)--shared meta less memory end local MB, MBi, MBmix, buffHTML, gfuncs, noCache, Element do--minimize number of locals per scope to reduce time spent sifting through irrelevant variable names local _stream do local stream--keep stream near top of scope local function init(f)--init = noOp after first run local function each(self, ...) for k = 1, select('#', ...) do k = Valid(select(k, ...))--slightly faster than table.insert(self, (Valid(select(k, ...)))) if k then table.insert(self, k) end end return self end init, stream, _stream = noOp, { __call = function(t, v) v = v and Valid(v) return v and table.insert(t, v) or t end,--last_concat cleared before entering stream mode __index = function(t, i) return i=='each' and each or MB.__index(t, i) and setmetatable(t, MB)[i] end,--no table look up minimizes resources to retrieve the only stream function __tostring = function(t) return setmetatable(t, MB)() end } for k, v in next, MB do stream[k] = stream[k] or v end setmetatable(stream, getmetatable(MB)) end function _stream(self, ...) self.last_concat = init() return setmetatable(self, stream):each(...) end end local function isMBfunc(Buffer, s, ...)--helper for :getParent()-like methods (including getBuffer which does not return a parent) return s and (select('#', ...)==0 and--eventually should figure out to make this work for :getHTML which is very similar (not rawkey[s] and tostring(s):match'^_.*' and MB.__index(Buffer, s) and MB.__index(Buffer, s)(Buffer) or MBmix(Buffer, s))--unprefixed function names append as a string or assert(MB.__index(Buffer, s), ('" %s " does not match any available Module:Buffer function'):format(s))(Buffer, ...)--getParent is a one-way trip so one-time assert not expensive ) or Buffer end local function MBselect(n, ...)--helper for :_out and :_str local n, seps = n - 1, {select(2, ...)} if type(seps[n])=='table' then if buffHTML and rawget(seps[n], buffHTML) then return ... end setmetatable(seps, {__index = setmetatable(seps[n], {__index = function(t) return rawget(t, 1) end})})[n] = nil end return ..., seps end local _inHTML do local lastBuffer, lastHTML local function init(...)--init replaced and new version called on return local create, mwFunc = mw.html.create do local mwHTMLmeta = getmetatable(create()) buffHTML, mwFunc, _inHTML = setmetatable(mw.clone(mwHTMLmeta), getmetatable(MB)), mwHTMLmeta.__index--buffHTML declared near top of module; remove _inHTML from outer scope function init(nodes, ...) local name, args, tag = select(... and type(...)=='table' and 1 or 2, nil, ...) tag = create(Valid(name), args) if nodes then table.insert(nodes, tag.parent and tag or rawset(tag, 'parent', parent[nodes])) end if args then local a, b = args.selfClosing, args.parent args.selfClosing, args.parent = nil if next(args) then Element._add(parent(tag.nodes, tag), args) end args.selfClosing, args.parent = a, b--in case args is reused end return tag end for k, v in next, {[mw] = mwHTMLmeta, __call = function(h, v) return MBmix(spec[h.nodes] and h.nodes or spec(setmetatable(parent(h.nodes, h), MB), Element), v) end, __concat = false,--false means take from MB __eq = false } do buffHTML[k] = v or MB[k] end end local nonSelf, BHi = {tag=true,done=true,allDone=true}, buffHTML.__index do local g g = {__index = function(t, i) if gfuncs and gfuncs[i] then g.__index, gfuncs = gfuncs return g.__index[i] end end} setmetatable(nonSelf, g) setmetatable(BHi, g) end for k in next, nonSelf do--any HTML objects returned by these funcs will be granted Module:Buffer enhancements local func = mwFunc[k] BHi[k] = function(t, ...) local HTML = func(t, ...) return parent[HTML] and HTML or setmetatable(parent(HTML, t), buffHTML) end end do local function joinNode(HTML, sep) local nodes, join = HTML.nodes if noCache and rawkey[sep] or Valid(sep) then join, HTML.nodes = tostring(rawset(HTML, 'nodes', {MB.__call(nodes, sep)})), nodes end return join or tostring(HTML) end for k, v in next, { getParent = function(HTML, ...) lastHTML = HTML return MBi.getParent(HTML:allDone(), ...) end,--return to Buffer that created the HTML tree getBuffer = function(HTML, ...) lastHTML = HTML return isMBfunc(lastBuffer, ...) end,--return to last used killParent = function(HTML, ...) MBi.killParent(HTML:allDone(), ...) return HTML end, _out = function(HTML, ...) if ...==0 then MBi._out(HTML.nodes, ...) return HTML end lastHTML, HTML = HTML, HTML:allDone() local n, ops, seps = select('#', ...) if n > 1 then local ops, seps = MBselect(n, ...) return parent[HTML]:_in(joinNode(HTML, rawget(seps, 0))):_out(ops, rawset(seps, buffHTML, true)) end return parent[HTML]:_(joinNode(HTML, ...)) end, _str = function(HTML, ...)--does not set lastHTML if ...==0 then return joinNode(HTML, select(2, ...)) end--passing 0 strings without calling allDone() local HTML, n = HTML:allDone(), select('#', ...) if n > 1 then local ops, seps = MBselect(n, ...) return parent[HTML]:_in(joinNode(HTML, rawget(seps, 1))):_str(ops, rawset(seps, buffHTML, true)) end return joinNode(HTML, ...) end, _parent = function(HTML, ...) table.insert(HTML.nodes, parent[HTML:allDone()]:_str(...)) return HTML end } do BHi[k] = v end end do local htmlArg, skip, outFuncs = {parent=true,selfClosing=true,tagName=true}, {} do local out local function func(nodes, ...) return out(parent[nodes], ...) end outFuncs = setmetatable({ tag = function(nodes, ...) return parent(setmetatable(init(nodes, ...), buffHTML), parent[nodes]) end, done = function(b, ops) b = parent[b] while b.parent and ops~=0 do b, ops = b.parent, ops and ops - 1 or 0 end return b end }, {__index = function(nodes, i) if rawget(BHi, i) then out = BHi[i] return func end--rawget to exclude globals end}) end Element = { _add = function(nodes, t) for k, v in MBpairs(t), t, skip[t] do (v~=true and MBmix or noOp)(nodes, v) end local HTML = parent[nodes] for k, v in MBpairs(t, false) do if htmlArg[k] then HTML[k] = v elseif v and v~=true then if nonSelf[k] then if k=='tag' then if type(v)=='table' then skip[v], k = 1, rawset(create(Valid(v[1])), 'parent', HTML) Element._add(spec(parent(k.nodes, k, table.insert(nodes, k)), Element), v) if k.selfClosing then k.nodes = nil else spec[k.nodes], parent[k.nodes] = nil end--free memory/reduce clutter; parent ref will auto-unset when k.nodes is nil if not k.tagName then k.styles, k.attributes = nil end else table.insert(nodes, create(v)) end elseif mwFunc[k] then if k=='done' and tonumber(v)~=v and v[1] and tonumber(v[1])==v[1] then skip[v] = 1 end MBmix(outFuncs[k](nodes, skip[v] and v[1]).nodes, v) elseif v[1] or v[2] then k = MBi[k](nodes, unpack(v, 1, rawset(skip, v, k=='_B' and 1 or 2)[v])) Element._add(getmetatable(k) and rawget(k, 'nodes') or k, v)--if k is not a table, then v should not contain any extra keys or this may error. else MBi[k](nodes, v) end--k probably == '_G' or '_R' elseif mwFunc[k] then if type(v)~='table' or rawget(v, 'nodes') then mwFunc[k](HTML, v) else local css = k=='css' for x, y in MBpairs(v, true) do (y and y~=true and mwFunc[k] or noOp)(HTML, css and x:gsub('_', '-') or x, y) end--iterate non-numbers first for _, y in MBpairs(v, nil) do (y and y~=true and mwFunc[k] or noOp)(HTML, y) end--don't bother with gsub since text must be quoted anyhow end elseif rawget(Element, k) or rawget(MBi, k) then if tonumber(v)==v or v[1]==nil or getmetatable(v) then (Element[k] or MBi[k])(nodes, v)--v is probably string-able object, or a table to be handled by :_all else (Element[k] or MBi[k])(nodes, unpack(v, 1, table.maxn(v))) end--v is definately a table else mwFunc.css(HTML, k:gsub('_', '-', 1), tostring(v)) end--oddly enough, :_add clocked its fastest runtime after adding auto-gsub as a feature skip[v] = nil end end return nodes end } local tempMeta = {mode='v', copy={styles=true,attributes=true}} function tempMeta.__index(t, i) return tempMeta.copy[i] and rawset(t, i, MBi._cc(false, 0, t.orig[i]))[i] or t.orig[i] end rawkey[setmetatable(Element, {__index = outFuncs, __concat=function(Element, v) return setmetatable({nodes=spec({}, Element),orig=parent[v]}, tempMeta) end})] = math.huge end function MBi:getHTML(...) lastBuffer = self if ... then if select('#', ...)==1 then return not rawkey[s] and tostring(...):match'^_' and BHi[...] and BHi[...](lastHTML) or lastHTML(...) else return assert(BHi[...], ('" %s " does not match any mw.html or Buffer-mw.html function'):format(tostring(...)))(lastHTML, select(2, ...)) end end return lastHTML end function MBi:_html(...) return MBi._(self, lastHTML, select(spec[self]==Element and select('#', ...)==0 and 1 or 2, true, ...)) end return init(...) end function _inHTML(self, ...) local HTML = init(nil, ...) if HTML.selfClosing and spec[self]==Element then self.last_concat = table.insert(self, HTML) return self end lastBuffer, lastHTML = self, setmetatable(parent(HTML, self), buffHTML)--set after 'args' table processed by :_add return HTML end end local _var, unbuild do local prev, rebuild local function init(...)--init replaced before return local function pick(b, v) return b and table.insert(b, v) or v end local function c(a, num) return rawset(a.a or a, 0, a[0] and a[0] + a.c or num and a[1] or a[1]:byte())[0] end local same, build, alt = {__tostring = function(a, b) return a.a[0] and pick(b, a.a.string and string.char(a.a[0]) or a.a.table and a.a[1][a.a[0]] or a.a[0]) end}, { __index = {c = 1}, __tostring = function(t) return t:_build() end, table = function(a, b) local i = next(a[1], a[0]) or a[0]==#a[1] and next(a[1]) return pick(b, rawset(a.a or a, 0, i)[1][i]) end,--change rate (a.c) ignored since users control the table's contents number = function(a, b) return pick(b, c(a, true)) end, string = function(a, b) return pick(b, string.char(c(a))) end }, {__index = function(a, i) return a.a[i] end, __tostring = function(a, b) return (rawget(a, 0) and a[0]==tostring(a[0]) and rawset(a, 0, a[0]:byte()) or a).a._build(a, b) end} local function shift(t, c) t[0] = t[0] and t[0] + c or t:_build() and t[0] - t.c + c if t.table then t[0] = (t[0] - 1) % #t[1] + 1 end end function rebuild(...) local v, c = ... if v or select('#', ...)==0 then if v and not c then return prev end local meta, c = select(v and 1 or 3, alt, c, same, 0) return setmetatable({a = prev, _build = meta.__tostring, c = c}, meta) elseif v==nil then--no-op elseif c then shift(prev, c)--v == false else prev:_build() end end init, noCache = function(v, c) prev = setmetatable({v, c = c, _build = build[type(v)] or v, [type(v)] = true, alt = {}}, build) return prev end, true return init(...) end function unbuild(sep) for k, v in MBpairs(sep, nil) do k = getmetatable(v) if k and (k==build or k==alt) then shift(v.a or v, -v.c) end end end function _var(self, ...) local obj if ... and ...~=true then obj = init(...) elseif prev then if ...~=false then obj = rebuild(...) else rebuild(...) end end return obj and MBi._(self, obj, nil, true) or self end end local lib; MBi = setmetatable({stream = _stream, _inHTML = _inHTML, _var = _var, _ = function(self, v, ...) local at, raw = select(select('#', ...)==1 and ...==true and 1 or 2, nil, ...) if raw then rawkey[self] = math.huge else v = Valid(v) end if v or raw then if at or rawkey[self] then raw = #self end--if length increases by more than one after table.insert, then set rawkey[self] = math.huge; rawkey[self] may be equal to a previous 'at' at, self.last_concat = at and (tonumber(at)~=at and raw + at or at) table.insert(self, select(at and 1 or 2, at, v)) if at and at &lt; 0 or raw and #self - raw > 1 then rawkey[self] = math.huge elseif at and #self==raw then rawkey[self] = rawkey[self] and math.max(rawkey[self], at) or at end end--above line looks bizarre because one table.insert op may make length jump from 0 to 8: local wtf={[2]=2,[4]=4,[8]=8}mw.log(#wtf,table.insert(wtf,1),#wtf) return self end, _nil = function(self, at, ...) if ...~=true and ...~=false then--faster than type(...) ~= 'boolean' if not at or at=='0' then self[#self] = ... if ... then rawkey[self] = math.huge end else local n, v = tonumber(at), ... if n~=at then if n then n = #self + at elseif at~=true and select('#', ...)==0 then v, n = at, #self end end if n then if v==nil and n > 0 then table.remove(self, n) else self[math.floor(n)], rawkey[self] = v, math.huge end--floor position for consistency with Table library end end self.last_concat = nil end return self end, _all = function(self, t, valKey) for k, v in MBpairs(t) do MBmix(self, v, valKey) end for k, v in valKey and MBpairs(t, false) or noOp, t do if tonumber(v) then MBi._(self, k, v)--self not always a buffer elseif rawget(MBi, k) and v and v~=true then if v[1]==nil or getmetatable(v) then MBi[k](self, v) else MBi[k](self, unpack(v, 1, table.maxn(v))) end end end return self end, _str = function(t, ...) local n = select('#', ...) if n > 1 then local k, ops, seps, r = 2, MBselect(n, ...) r = MB(t(seps[1])) while parent[t] and ops > 1 and r:_(parent[t](seps[k]), 1) do t, k, ops = parent[t], k + 1, ops - 1 end return table.concat(r, seps[k] or nil) end return MB.__call(t, ...) end, _in = function (self, ...) return parent(MB(...), self) end, _out = function(t, ...) if ...==0 then return parent(t, parent[t], MBi._cc(t, t, MB.__call(t, (select(2, ...))), getmetatable(t))) end--love how :_cc needed nothing new to implement this *self pat on back* local n = select('#', ...) if n > 1 then local k, ops, seps = 1, MBselect(n, ...) while parent[t] and ops > 0 do t, k, ops = parent[t]:_(t(seps[k])), k + 1, ops - 1 end elseif parent[t] then return parent[t]:_(t(...)) end return t end, _cc = function(self, clear, copy, meta) if clear then if rawequal(clear, copy) then return self, spec[MBi._cc] and setmetatable(spec[MBi._cc], MB)--rawequal to avoid re-string via __eq in case both are different Buffer objects elseif copy==true then copy = self end if clear~=0 then assert(type(clear)=='table', debug.traceback('Buffer:_cc can only "clear" tables. Did you forget to call with a colon?', 2))--errors can be hard to trace without this for k in self and next or noOp, clear do rawset(clear, k, nil) end else return MBi._cc(false, {unpack(copy)}, copy) end--copy length w/o empty strings; recursion to avoid self = false causing garbage collection (non-weak child may exist) if self==false or copy and type(copy)=='table' then--self==false means copy is a table (saves a type op for recursive calls) meta = meta or getmetatable(copy) if self and #copy > 1 then--preserves length with empty strings; developed from studying http://www.lua.org/source/5.1/ltable.c.html local n, null, i, e = #copy, {}, math.ldexp(2, select(2, math.frexp(#copy)) - 2) e, spec[MBi._cc], parent[null] = i - 1, null, clear for k = 1, e do table.insert(clear, false) end while i&lt;=n do table.insert(clear, i, '') i, null[i] = i + math.ldexp(2, select(2, math.frexp(n - i)) - 2), '' end for k = 1, e do rawset(clear, k, nil) end end for k, v in next, copy do rawset(clear, k, type(v)=='table' and MBi._cc(false, 0, v) or v) end elseif copy then rawset(clear, 1, (Valid(copy))) end rawkey[setmetatable(clear, meta)], parent[clear] = rawkey[copy], parent[copy] end return self and rawset(self, 'last_concat', nil) or clear end, _parent = function(self, ...) return parent[self] and MBi._(self, parent[self]:_str(...)) or self end, getParent = function(self, ...) return isMBfunc(parent[self] or parent[parent(self, setmetatable({}, MB))], ...) end, killParent = function(self, ...) return parent[self] and isMBfunc(parent[self], ...) and parent(self) or self end, _build = function(self, t) table.insert(t, self()) end,--for compatibility with mw.html:node() last_concat = false--prevent library check }, {__index = function(t, i)--import string, mw.text, and mw.ustring libraries on an as-needed basis local func = string[i] or mw.text[i] or mw.ustring[i] or type(i)=='string' and mw.ustring[i:match'^u(.+)'] if func then lib = lib or function (s, f, ...) if parent[s] and next(s)==nil then return s:_((f(tostring(parent[Element and (spec[s]==Element and s:allDone() or spec[parent[s]]==Element and parent[s]) or s]), ...))) end return f(tostring(s), ...)--not using ternary/logical operators here to allow multiple return values end return rawset(t, i, i:match'^u?gsub' and function(self, p, r, ...)return lib(self, func, p, r or '', ...)end--Why are ugsub/gsub special? because empty strings are against my religion! or function(self, ...)return lib(self, func, ...)end)[i] end end}) end function MBmix(t, v, ...) return v and ((type(v)~='table' or getmetatable(v)) and MBi._(t, v) or (select('#', ...)==0 and spec[t] and spec[t]._add or MBi._all)(t, v, ...)) or t end--:_all always passes two args local _G, new_G = _G--localize _G for console testing (console _G ~= module _G) return setmetatable({__index = function(t, i) return spec[t] and spec[t][i] or MBi[i] end, __call = function(t, ...) local rawsep, sep, i, j, raw = noCache and rawkey[...] and ..., ... if i or j or rawsep or Valid(sep) then raw, sep, i, j = rawkey[spec[t]] or rawkey[t], rawsep or Valid(sep), i and (i~=tonumber(i) and i + #t or i), j and (j~=tonumber(j) and j + #t or j) if rawsep or raw and (raw>=(j or #t) or i &lt; 1) then raw, i, j = {}, i and math.floor(i), j and math.floor(j)--floor for consistency with table.concat(t, sep, i, j), which ignores decimals raw.lc, t.last_concat = t.last_concat--temporarily unset last_concat to prevent disqualification from mapless iteration for k, v in MBpairs(t) do if raw[1] or not i or k>=i then if j and k > j then break end if raw.s then raw.s = table.insert(raw, tostring(sep)) end--if sep contains v and v is a Buffer-variable, sep must be strung before v k = Valid(v) if k then raw.s = rawsep or sep and raw[1] and table.insert(raw, sep) table.insert(raw, k) end end end if rawsep and not raw.s then raw[#raw] = unbuild(sep) end--unbuild rawsep if final index in t was invalid t.last_concat = raw.lc return table.concat(raw) end return table.concat(t, sep, i and math.max(i, 1), j and math.min(j, #t)) end return MB.__tostring(t) end, __tostring = function(t) if t.last_concat then return t.last_concat end local r = rawkey[spec[t]] or rawkey[t] r = table.concat(r and r>=#t and MBi._all({}, t) or t) return (noCache or rawset(t, 'last_concat', r)) and r end, __concat = function(a, b) if buffHTML then for k = 1, 2 do local v = select(k, a, b)--faster than for k, v in pairs{a, b} do if v and spec[v] and spec[v]==Element then if parent[v].selfClosing then if rawequal(a, b) then return (not noCache or parent[v].tagName) and v:_str(0):rep(2) or v:_str(0)..v:_str(0) end--rawequal avoids premature tostring of Buffer:_var objects; b, a = select(k, b, parent[v], a) else local temp = Element .. v --helper method; returns a mirror of parent[v] MBmix(MBmix(parent(temp.nodes, temp), a), k==1 and spec[b]==Element and parent[b] or b) return buffHTML.__tostring(setmetatable(temp, {__index=parent[v], __mode='v'}))--switch from tempMeta to avoid MBi._cc op of styles/attributes end end end end return table.concat(MBmix(MBmix({}, a), b)) end, __pairs = MBpairs, __ipairs = MBpairs, __eq = function(a, b) return tostring(a)==tostring(b) end--avoid a==b in this module; use rawequal(a,b) when they may be different Buffers (premature tostring waste ops and is bad for Buffer:_var) }, {__tostring = function()return''end, __call = function(self, ...) MB = MB or self if new_G then if ... and _G and ...==_G then new_G = ... end elseif ... and (...==_G or type(...)=='table' and (...)._G==...) then local Nil, mG = {}, (...):getmetatable() or (...):setmetatable{}:getmetatable() new_G, _G, gfuncs = ..., ..., {--gfuncs stored for Buffer:_inHTML; new_G is a is a Module:Buffer local declared just before the final return statement. _G = function(self, i, ...) local X, save = rawget(new_G, i), select('#', ...)==0 and self or ... if i and i~=true and not (X and save and rawequal(X, save)) and rawset(new_G, i, save) and (X~=nil or save==nil and new_G[i]~=nil) then--rawequal in case X is another buffer local mG = getmetatable(new_G) or {__call=mG.__call} if mG.__index then pcall(rawset, mG.__index, i, X) else mG.__index = setmetatable(new_G, mG) and {[i] = X} end end return self, ...--avoiding __eq with rawequal(self,save) is overkill since buffers can self-save without being passed as save end, _R = function(self, i, v, m) if i~='new_G' then if i and i~=true then rawset(new_G, i , v) end elseif not v or v==true or v._G~=_G then new_G = setmetatable(v~=true and v or {}, {__call = mG.__call, __index = v~=true and m~=true and (m or new_G) or nil}) else new_G, (not m and (m~=nil or v==new_G) and Nil or getmetatable(v)).__index = v, m~=true and (m or new_G) or nil end--setting Nil.__index is noOp return self end, _2 = function(self, ...) if new_G[...]~=nil then return new_G[...] end--higher priority so Buffer:_G('new_G', ...) can prevent an overwrite if ...=='new_G' then return rawset((select('#', ...)~=1 and MBi._R(new_G, ...) or new_G), '_G', _G) end return select(select('#', ...)==1 and 1 or 2, self:_G(...))--return only one value; 'return select(2, self:_G(...)) or self' doesn't work for returning nil end, _B = function(self, v) return v or v==nil and Nil end } for k, v in next, gfuncs do MBi[k] = v end setmetatable(Nil,{__concat=MB.__concat,__newindex=noOp,__call=noOp,__tostring=noOp,__metatable=MB,__index=setmetatable({_B=MBi._B,_=function()return Nil end,last_concat=''}, {__index=function(t,i)return (MBi[i] or i and not tonumber(i)) and t._ or nil end})}) function mG.__call(G, k, ...) return (k._G or G.type(k)=='table') and (G.select('#', ...)~=1 and G.rawset(k, ...) or G:rawset(..., k) and k) or G:rawset(k, (...)) and ... end end local new = setmetatable({}, self) if ... and (...)==new_G then return select(2, ...) and MBmix(new:_G((select(2, ...))), select(3, ...)) or new end return ... and MBi._(new, ...) or new end, __index = function(t, i) MB = MB or t return MBi[i] and function(...) return MBi[i](setmetatable({}, t), select(...==t and 2 or 1,...)) end end }) </textarea><div id="mw-scribunto-console"></div><div class="templatesUsed"><div class="mw-templatesUsedExplanation"><p>本页<a href="/wiki/Wikipedia:%E5%B5%8C%E5%85%A5%E5%8C%85%E5%90%AB" title="Wikipedia:嵌入包含">嵌入包含</a>了42个页面: </p></div><ul> <li><a href="/wiki/Template:High-use" title="Template:High-use">Template:High-use</a>(<a href="/w/index.php?title=Template:High-use&amp;action=edit" title="Template:High-use">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Template:If_subst" class="mw-redirect" title="Template:If subst">Template:If subst</a>(<a href="/w/index.php?title=Template:If_subst&amp;action=edit" class="mw-redirect" title="Template:If subst">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Ifsubst" title="Template:Ifsubst">Template:Ifsubst</a>(<a href="/w/index.php?title=Template:Ifsubst&amp;action=edit" title="Template:Ifsubst">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Mbox" title="Template:Mbox">Template:Mbox</a>(<a href="/w/index.php?title=Template:Mbox&amp;action=edit" title="Template:Mbox">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Module_rating" title="Template:Module rating">Template:Module rating</a>(<a href="/w/index.php?title=Template:Module_rating&amp;action=edit" title="Template:Module rating">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Template:NSPN" class="mw-redirect" title="Template:NSPN">Template:NSPN</a>(<a href="/w/index.php?title=Template:NSPN&amp;action=edit" class="mw-redirect" title="Template:NSPN">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Namespace_detect" title="Template:Namespace detect">Template:Namespace detect</a>(<a href="/w/index.php?title=Template:Namespace_detect&amp;action=edit" title="Template:Namespace detect">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Namespace_pagename" title="Template:Namespace pagename">Template:Namespace pagename</a>(<a href="/w/index.php?title=Template:Namespace_pagename&amp;action=edit" title="Template:Namespace pagename">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Notice" title="Template:Notice">Template:Notice</a>(<a href="/w/index.php?title=Template:Notice&amp;action=edit" title="Template:Notice">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Template:Ombox" title="Template:Ombox">Template:Ombox</a>(<a href="/w/index.php?title=Template:Ombox&amp;action=edit" title="Template:Ombox">查看源代码</a>)(模板保护)</li><li><a href="/wiki/Template:Track_upstream" title="Template:Track upstream">Template:Track upstream</a>(<a href="/w/index.php?title=Template:Track_upstream&amp;action=edit" title="Template:Track upstream">编辑</a>)</li><li><a href="/wiki/Module:Arguments" title="Module:Arguments">Module:Arguments</a>(<a href="/w/index.php?title=Module:Arguments&amp;action=edit" title="Module:Arguments">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Buffer" title="Module:Buffer">Module:Buffer</a>(<a href="/w/index.php?title=Module:Buffer&amp;action=edit" title="Module:Buffer">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Buffer/doc" title="Module:Buffer/doc">Module:Buffer/doc</a>(<a href="/w/index.php?title=Module:Buffer/doc&amp;action=edit" title="Module:Buffer/doc">编辑</a>)</li><li><a href="/wiki/Module:CallAssert" title="Module:CallAssert">Module:CallAssert</a>(<a href="/w/index.php?title=Module:CallAssert&amp;action=edit" title="Module:CallAssert">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Category_handler" title="Module:Category handler">Module:Category handler</a>(<a href="/w/index.php?title=Module:Category_handler&amp;action=edit" title="Module:Category handler">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Category_handler/blacklist" title="Module:Category handler/blacklist">Module:Category handler/blacklist</a>(<a href="/w/index.php?title=Module:Category_handler/blacklist&amp;action=edit" title="Module:Category handler/blacklist">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Category_handler/config" title="Module:Category handler/config">Module:Category handler/config</a>(<a href="/w/index.php?title=Module:Category_handler/config&amp;action=edit" title="Module:Category handler/config">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Category_handler/data" title="Module:Category handler/data">Module:Category handler/data</a>(<a href="/w/index.php?title=Module:Category_handler/data&amp;action=edit" title="Module:Category handler/data">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Category_handler/shared" title="Module:Category handler/shared">Module:Category handler/shared</a>(<a href="/w/index.php?title=Module:Category_handler/shared&amp;action=edit" title="Module:Category handler/shared">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Documentation" title="Module:Documentation">Module:Documentation</a>(<a href="/w/index.php?title=Module:Documentation&amp;action=edit" title="Module:Documentation">查看源代码</a>)(模板保护)</li><li><a href="/wiki/Module:Documentation/config" title="Module:Documentation/config">Module:Documentation/config</a>(<a href="/w/index.php?title=Module:Documentation/config&amp;action=edit" title="Module:Documentation/config">查看源代码</a>)(模板保护)</li><li><a href="/wiki/Module:Documentation/styles.css" title="Module:Documentation/styles.css">Module:Documentation/styles.css</a>(<a href="/w/index.php?title=Module:Documentation/styles.css&amp;action=edit" title="Module:Documentation/styles.css">查看源代码</a>)(模板保护)</li><li><a href="/wiki/Module:Effective_protection_expiry" title="Module:Effective protection expiry">Module:Effective protection expiry</a>(<a href="/w/index.php?title=Module:Effective_protection_expiry&amp;action=edit" title="Module:Effective protection expiry">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Module:Effective_protection_level" title="Module:Effective protection level">Module:Effective protection level</a>(<a href="/w/index.php?title=Module:Effective_protection_level&amp;action=edit" title="Module:Effective protection level">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:File_link" title="Module:File link">Module:File link</a>(<a href="/w/index.php?title=Module:File_link&amp;action=edit" title="Module:File link">查看源代码</a>)(模板保护)</li><li><a href="/wiki/Module:High-use" title="Module:High-use">Module:High-use</a>(<a href="/w/index.php?title=Module:High-use&amp;action=edit" title="Module:High-use">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Module:Message_box" title="Module:Message box">Module:Message box</a>(<a href="/w/index.php?title=Module:Message_box&amp;action=edit" title="Module:Message box">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Message_box/configuration" title="Module:Message box/configuration">Module:Message box/configuration</a>(<a href="/w/index.php?title=Module:Message_box/configuration&amp;action=edit" title="Module:Message box/configuration">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Namespace_detect/config" title="Module:Namespace detect/config">Module:Namespace detect/config</a>(<a href="/w/index.php?title=Module:Namespace_detect/config&amp;action=edit" title="Module:Namespace detect/config">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Namespace_detect/data" title="Module:Namespace detect/data">Module:Namespace detect/data</a>(<a href="/w/index.php?title=Module:Namespace_detect/data&amp;action=edit" title="Module:Namespace detect/data">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:No_globals" title="Module:No globals">Module:No globals</a>(<a href="/w/index.php?title=Module:No_globals&amp;action=edit" title="Module:No globals">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Page" title="Module:Page">Module:Page</a>(<a href="/w/index.php?title=Module:Page&amp;action=edit" title="Module:Page">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Protect" title="Module:Protect">Module:Protect</a>(<a href="/w/index.php?title=Module:Protect&amp;action=edit" title="Module:Protect">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Protection_banner" title="Module:Protection banner">Module:Protection banner</a>(<a href="/w/index.php?title=Module:Protection_banner&amp;action=edit" title="Module:Protection banner">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Module:Protection_banner/config" title="Module:Protection banner/config">Module:Protection banner/config</a>(<a href="/w/index.php?title=Module:Protection_banner/config&amp;action=edit" title="Module:Protection banner/config">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Module:Redirect" title="Module:Redirect">Module:Redirect</a>(<a href="/w/index.php?title=Module:Redirect&amp;action=edit" title="Module:Redirect">查看源代码</a>)(模板保护)</li><li><a href="/wiki/Module:Separated_entries" title="Module:Separated entries">Module:Separated entries</a>(<a href="/w/index.php?title=Module:Separated_entries&amp;action=edit" title="Module:Separated entries">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:TableTools" title="Module:TableTools">Module:TableTools</a>(<a href="/w/index.php?title=Module:TableTools&amp;action=edit" title="Module:TableTools">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li><li><a href="/wiki/Module:Transclusion_count" title="Module:Transclusion count">Module:Transclusion count</a>(<a href="/w/index.php?title=Module:Transclusion_count&amp;action=edit" title="Module:Transclusion count">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">半保护</a>)</li><li><a href="/wiki/Module:Transclusion_count/data/B" title="Module:Transclusion count/data/B">Module:Transclusion count/data/B</a>(<a href="/w/index.php?title=Module:Transclusion_count/data/B&amp;action=edit" title="Module:Transclusion count/data/B">编辑</a>)</li><li><a href="/wiki/Module:Yesno" title="Module:Yesno">Module:Yesno</a>(<a href="/w/index.php?title=Module:Yesno&amp;action=edit" title="Module:Yesno">查看源代码</a>)(<a href="/wiki/Wikipedia:%E4%BF%9D%E8%AD%B7%E6%96%B9%E9%87%9D" title="Wikipedia:保護方針">全保护</a>)</li></ul></div><p id="mw-returnto">返回<a href="/wiki/Module:Buffer" title="Module:Buffer">Module:Buffer</a>。</p> <!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&amp;useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">检索自“<a dir="ltr" href="https://zh.wikipedia.org/wiki/Module:Buffer">https://zh.wikipedia.org/wiki/Module:Buffer</a>”</div></div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">隐藏分类:​<ul><li><a href="/wiki/Category:%E5%B8%A6%E7%94%B5%E9%82%AE%E5%9C%B0%E5%9D%80%E7%9A%84%E9%A1%B5%E9%9D%A2" title="Category:带电邮地址的页面">带电邮地址的页面</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">隐私政策</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:%E5%85%B3%E4%BA%8E">关于维基百科</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:%E5%85%8D%E8%B4%A3%E5%A3%B0%E6%98%8E">免责声明</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">行为准则</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">开发者</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/zh.wikipedia.org">统计</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie声明</a></li> <li id="footer-places-mobileview"><a href="//zh.m.wikipedia.org/w/index.php?title=Module:Buffer&amp;action=edit&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">手机版视图</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.log.warn("This page is using the deprecated ResourceLoader module \"mediawiki.ui.button\".\n[1.41] Please use Codex. See migration guidelines: https://www.mediawiki.org/wiki/Codex/Migrating_from_MediaWiki_UI");mw.config.set({"wgHostname":"mw-web.codfw.main-5c59558b9d-5czvf","wgBackendResponseTime":647,"wgPageParseReport":{"limitreport":{"cputime":"0.225","walltime":"0.295","ppvisitednodes":{"value":956,"limit":1000000},"postexpandincludesize":{"value":40600,"limit":2097152},"templateargumentsize":{"value":1993,"limit":2097152},"expansiondepth":{"value":22,"limit":100},"expensivefunctioncount":{"value":7,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":1028,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 246.704 1 -total"," 81.87% 201.969 1 Template:Protected_page_text/full"," 79.87% 197.048 1 Template:Protected_page_text"," 78.70% 194.144 1 Template:Fmbox"," 30.32% 74.811 1 Template:Submit_an_edit_request"," 11.72% 28.902 1 Template:Mbox"," 11.25% 27.742 16 Template:Lan"," 6.89% 16.987 1 Template:Editnotice_load"," 6.07% 14.975 1 Template:Editnotice_load/content"," 5.14% 12.669 4 Template:Clickable_button_2"]},"scribunto":{"limitreport-timeusage":{"value":"0.104","limit":"10.000"},"limitreport-memusage":{"value":1884031,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-5c59558b9d-5czvf","timestamp":"20241202003855","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10