令我不满的是,MediaWiki 最近禁用了对整个维基百科的TeX公式的MathJax(票证:T99369)渲染的支持.
由于我(以及其他人,如果你浏览故障单的讨论主题)发现渲染与其余选项(MathML,PNG)相比较差,我想将MathJax"滑入"维基百科.
由于直接通过维基百科中的自定义JavaScript设置直接加载JavaScript文件似乎不可能使用<script>
元素,因此我对如何实现此专长感到茫然.是不是,MathJax最容易通过CDN包含在内.
我正在使用当前的Edge和Firefox浏览器,因此任何使用它们中的一个或两个的解决方案都将非常感谢!
同时,我发现了Greasemonkey for Firefox,它可以通过合适的脚本完成此任务.既然我既不是Greasemonkey-也不是JavaScript专家,那么任何关于如何编写这样一个脚本的提示都会有所帮助.
如何custom.js
在mediawiki安装中添加自定义javascript文件(比如说)?
例如,如果我放在custom.js
文件夹下resources/lib/
,如何在每个页面上加载?
我不是试图将此作为扩展的一部分,我宁愿保留我的更改LocalSettings.php
.
任何人都知道如何使用mediawiki API获取维基百科页面的修订数量?我已阅读此API文档,但找不到相关的API:
Revision API
我正在使用基于维基媒体引擎的维基,即维基百科使用的相同维基技术。
如何使用 wiki 语言编写一个链接,以便在新窗口或选项卡中打开目标 URL。本质上,我想要相当于以下内容的维基语言:
<a href="http://www.google.com" target="new">Google</a>
Run Code Online (Sandbox Code Playgroud) 缺乏在线资源,证明我可以解析维基词典API响应,如下所示:
{
"query": {
"pages": {
"40915": {
"pageid": 40915,
"ns": 0,
"title": "reluctant",
"revisions": [
{
"contentformat": "text/x-wiki",
"contentmodel": "wikitext",
"*": "==English==\n\n===Etymology===\nFrom {{etyl|la|en}} {{term|lang=la|reluctans}}, present participle of {{term|reluctare}}, {{term|reluctari||to struggle against, oppose, resist}}, from {{term|re-||back}} + {{term|luctari||to struggle}}.\n\n===Pronunciation===\n* {{IPA|/???l?kt?nt/}}\n* {{audio|en-us-reluctant.ogg|Audio (US)}}\n\n===Adjective===\n{{en-adj}}\n\n# {{context|now|_|rare|lang=en}} [[opposing|Opposing]]; offering [[resistance]] (to).\n#* '''1819''', Lord Byron, ''Don Juan'', II.108:\n#*: There, breathless, with his digging nails he clung / Fast to the sand, lest the returning wave, / From whose '''reluctant''' roar his life he …
Run Code Online (Sandbox Code Playgroud) 我看到例如dumps.wikimedia.org/other/pagecounts-raw/,但是那里没有特定国家/地区的数据...
我正在尝试API:Login文档中描述的Wikipedia客户端登录流程,但发生了一些错误:
1)我正确地得到了一个用 HTTP GET 引发的令牌 https://en.wikipedia.org/w/api.php?action=query&meta=tokens&type=login&format=json
我得到一个有效的logintoken
字符串。
2.1)然后我尝试clientlogin
类似:
HTTP POST /w/api.php?action=clientlogin&format=json&lgname=xxxx&lgtoken=xxxx%2B%5C
POST BODY 是
{
"lgpassword" : "xxxxx",
"lgtoken" : "xxxxx"
}
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
{
"error": {
"code": "notoken",
"info": "The \"token\" parameter must be set."
},
"servedby": "mw1228"
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试更改lgtoken
为token
我得到相同的结果。
2.2) 然后我尝试了旧方法 ieaction=login
并传递正文,但它不起作用,因为它给了我另一个登录令牌:HTTP POSThttps://en.wikipedia.org/w/api.php?action=login&format=json&lgname=xxxx
和相同的POST BODY
然后我得到
{
"warnings": {}
},
"login": {
"result": "NeedToken",
"token": "xxxxx+\\"
Run Code Online (Sandbox Code Playgroud)
}
当文档在这里指出,
NeedToken if the lgtoken …
我想检索 Wikimedia Category 的成员American rock singers
。我必须使用维基数据,它告诉我用P31
用Q4167836
。下面的查询仅返回有关“类别”页面的信息,而不返回有关其成员的信息。
还有其他方法可以检索维基媒体类别的成员吗?我还尝试使用术语dcterms:subject
,我在 DBpedia 中成功使用了该术语,但在 Wikidata 中,查询返回空结果。
prefix wdt: <http://www.wikidata.org/prop/direct/>
prefix wd: <http://www.wikidata.org/entity/>
prefix wikibase: <http://wikiba.se/ontology#>
prefix bd: <http://www.bigdata.com/rdf#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?subject ?predicate ?object ?objectLabel WHERE {
?subject ?predicate ?object ; wdt:P31 wd:Q4167836 ;
rdfs:label "Category:American rock singers"@en
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" .}
}
Run Code Online (Sandbox Code Playgroud)
在这里试试
我有一个函数可以获得随机Wikipedia文章的第一部分,但我不知道如何获得该文章的实际URL.我环顾了一下WikiMedia API并找不到它.
getRandomArticle : function() {
return $.getJSON("http://en.wikipedia.org/w/api.php?action=query&generator=random&grnnamespace=0&prop=extracts&explaintext&exintro=&format=json&callback=?", function (data) {});
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
wikimedia ×10
wikipedia ×4
javascript ×3
categories ×1
firefox ×1
loading ×1
mathjax ×1
member ×1
node.js ×1
parsing ×1
sparql ×1
wikidata ×1
wikidata-api ×1
wiktionary ×1