Offline content generator/metabook.json
The metabook.json is a file part of the bundle and gathers the collection/book metadatas.
Specification
[edit]The metabook.json
file is composed of several different object types, each of which shares a field named type
which can be used to distinguish them. The top level object is a Collection
.
Collection
[edit]A collection object contains the specification for the entire render and contains the following fields:
- type
"collection"
- version
1
- items
- an array of
Chapter
orArticle
objects. - license
- an array of
License
objects. - title
- the overall title for the collection
- subtitle
- overall subtitle for the collection
- summary
- summary text for the collection (currently unused)
- toc
- (optional) a boolean indicating whether a table of contents will be generated for this collection. If this option is missing, a table of contents will be generated iff items contains at least one
Chapter
object. - columns
- (optional) a number indicating whether this collection should be rendered in one column or two column layout. The default is 2.
- lang
- (optional) a BCP47 language tag (ie, a valid value for an HTML
lang
attribute) giving the language of the collection as a whole. This is used for page numbers, chapter headings, etc. If this option is missing, the default language of the wiki containing the first article is used. - wikis
- an array of
WikiConf
objects, giving the wiki configurations referenced by theitems
Chapter
[edit]A chapter object groups articles in a collection. It contains the following fields:
- type
"chapter"
- title
- the title of this chapter
- columns
- (optional) a number indicating whether this collection should be rendered in one column or two column layout.
- items
- an array of
Article
objects contained within this chapter.
Article
[edit]An article object represents a single wikipedia article within a collection or chapter. It contains the following fields:
- type
"article"
- title
- the title of the article, in human-readable form (spaces, initial lowercase where appropriate, etc)
- wiki
- an index within the
Collection
'swikis
array, giving theWikiConf
for the wiki containing this article - revision
- (optional) the revision ID of the article. If missing, the latest version will be rendered.
The following fields are filled in by the bundler process, but are not required as input to the bundler.
- revision
- if the article revision is missing, it will be added
- timestamp
- the timestamp corresponding to the given revision
The following fields are present for legacy compatibility, but are presently unused:
- currentVersion
1
- content_type
"text/x-wiki"
- latest
- the most recent revision of the article. Hard coded to match the
revision
field so that we don't spoil caching. - url
- the canonical URL for the article. (This can be derived from the
WikiConf
and siteinfo in the bundle.)
License
[edit]A license object presumably represents the default license for a wiki or collection. It is currently unused.
- type
"license"
Please expand this page. |
WikiConf
[edit]A wikiconf object gives the configuration of one of the wikis from which articles and images will be taken. It contains the following fields:
- type
"wikiconf"
- baseurl
- the
$wgScriptDirUrl
for the wiki, from which we can obtain the API endpoints. - script_extension
- the
$wgScriptExtension
for the wiki - imagesize
- the maximum image width (in pixels) to use when rendering images from this wiki
- parsoid
- a parsoid endpoint to use for parsing content from this wiki. Should correspond to
$wgVirtualRestConfig['modules']['parsoid']['url']
- prefix
- a prefix to use when formulating parsoid queries. Should correspond to
$wgVirtualRestConfig['modules']['parsoid']['prefix']
(and, in general, togeneral.wikiid
in the wiki's siteinfo). - filerepos
- an array of
FileRepo
objects giving the configuration of local and foreign file repositories for this wiki.
The following fields are present for legacy compatibility, but are presently unused:
- keep_tmpfiles
false
- format
"nuwiki"
- status_file
- output
FileRepo
[edit]A filerepo object gives the configuration of a foreign or local file repository used by a wiki. The name
, displayname
, and local
fields correspond to those in the output of a action=query&meta=filerepoinfo
query on the wiki. It contains the following fields:
- type
"filerepo"
- name
- a short name for the repo, typically
"local"
or"shared"
. Corresponds to theimagerepository
field in the image metadata. - wiki
- an index into the
Collection
'swikis
field giving the wiki configuration of this file repository. For local repos, this will give the index of the containingWikiConf
.
The following fields are present but currently unused:
- displayname
- A human-readable name for this file repository
- rootUrl
- local
- a boolean reflecting whether this file repository is within the containing
WikiConf
- scriptDirUrl
- the
$wgScriptDirUrl
of the repository (this can be obtained from theWikiConf
referenced by thewiki
field of theFileRepo
. - rootUrl
- a path which could be used to construct a direct URL for a file in the repository
Examples
[edit]Single article
[edit]{
"type":"collection",
"title":"",
"subtitle":"",
"summary":"",
"version":1,
"items":[
{
"type":"article",
"title":"Taoism",
"wiki":0,
"revision":"4585542"
"content_type":"text/x-wiki",
"url":"http://simple.wikipedia.org/wiki/Taoism",
}
],
"licenses":[
{
"type":"license",
"name":"License",
"mw_rights_icon":"",
"mw_rights_page":"",
"mw_rights_text":"",
"mw_rights_url":""
}
],
"wikis":[
{
"type":"wikiconf",
"baseurl":"http://simple.wikipedia.org/w",
"imagesize":1200,
"keep_tmpfiles":false,
"script_extension":".php",
"format":"nuwiki",
"parsoid":"http://parsoid-lb.eqiad.wikimedia.org/",
"prefix":"simplewiki",
"filerepos":[
{
"type": "filerepo",
"name":"shared",
"displayname":"Wikimedia Commons",
"rootUrl":"//upload.wikimedia.org/wikipedia/commons",
"local":false,
"apiUrl":"http://commons.wikimedia.org/w/api.php",
"wiki":1
},
{
"type": "filerepo",
"name":"local",
"displayname":null,
"rootUrl":"//upload.wikimedia.org/wikipedia/simple",
"local":true,
"wiki":0
}
]
},
{
"type":"wikiconf",
"baseurl":"http://commons.wikimedia.org/w/api.php",
"imagesize":1200,
"keep_tmpfiles":false,
"script_extension":".php",
"format":"nuwiki",
"parsoid":"http://parsoid-lb.eqiad.wikimedia.org/",
"prefix":"commonswiki",
"filerepos":[
{
"type": "filerepo",
"name":"local",
"displayname":null,
"rootUrl":"//upload.wikimedia.org/wikipedia/commons",
"local":true,
"wiki":1
}
]
}
]
}
Collection including multiple articles
[edit]{
"type":"collection",
"title":"1933 Atlantic hurricane season",
"subtitle":"",
"summary":"",
"version":1,
"items":[
{
"type":"chapter",
"title":"Introduction",
"items":[
{
"type":"article",
"title":"1933 Atlantic hurricane season",
"wiki":0,
"revision":"579329188",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":579329188,
"timestamp":"1383073948",
"url":"http://en.wikipedia.org/wiki/1933_Atlantic_hurricane_season"
}
]
},
{
"title":"Storms",
"type":"chapter",
"items":[
{
"type":"article",
"title":"1933 Trinidad hurricane",
"wiki":0,
"revision":"550867472",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":550867472,
"timestamp":"1366230514",
"url":"http://en.wikipedia.org/wiki/1933_Trinidad_hurricane"
},
{
"type":"article",
"title":"1933 Texas tropical storm",
"wiki":0,
"revision":"572402424",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":572402424,
"timestamp":"1378848251",
"url":"http://en.wikipedia.org/wiki/1933_Texas_tropical_storm"
},
{
"type":"article",
"title":"1933 Chesapeake–Potomac hurricane",
"wiki":0,
"revision":"579390421",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":579390421,
"timestamp":"1383099157",
"url":"http://en.wikipedia.org/wiki/1933_Chesapeake%E2%80%93Potomac_hurricane"
},
{
"type":"article",
"title":"1933 Cuba–Brownsville hurricane",
"wiki":0,
"revision":"572402369",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":572402369,
"timestamp":"1378848216",
"url":"http://en.wikipedia.org/wiki/1933_Cuba%E2%80%93Brownsville_hurricane"
},
{
"type":"article",
"title":"1933 Treasure Coast hurricane",
"wiki":0,
"revision":"575674769",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":575674769,
"timestamp":"1380856363",
"url":"http://en.wikipedia.org/wiki/1933_Treasure_Coast_hurricane"
},
{
"type":"article",
"title":"1933 Outer Banks hurricane",
"wiki":0,
"revision":"576090149",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":576090149,
"timestamp":"1381119599",
"url":"http://en.wikipedia.org/wiki/1933_Outer_Banks_hurricane"
},
{
"type":"article",
"title":"1933 Tampico hurricane",
"wiki":0,
"revision":"567480201",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":567480201,
"timestamp":"1375840931",
"url":"http://en.wikipedia.org/wiki/1933_Tampico_hurricane"
},
{
"type":"article",
"title":"1933 Cuba–Bahamas hurricane",
"wiki":0,
"revision":"578977949",
"content_type":"text/x-wiki",
"currentVersion":1,
"latest":578977949,
"timestamp":"1382894555",
"url":"http://en.wikipedia.org/wiki/1933_Cuba%E2%80%93Bahamas_hurricane"
}
]
}
],
"licenses":[
{
"type":"license",
"name":"License",
"mw_rights_icon":"//creativecommons.org/images/public/somerights20.png",
"mw_rights_text":"Creative Commons Attribution-Share Alike 3.0",
"mw_rights_url":"//creativecommons.org/licenses/by-sa/3.0/"
}
],
"wikis":[
{
"type":"wikiconf",
"baseurl":"http://en.wikipedia.org/w",
"imagesize":1200,
"keep_tmpfiles":false,
"output":"/home/anomie/test.zip",
"script_extension":".php",
"status_file":"/home/anomie/statusfile",
"parsoid":"http://parsoid-lb.eqiad.wikimedia.org/",
"prefix":"enwiki",
"filerepos":[
{
"type":"filerepo",
"name":"shared",
"displayname":"Wikimedia Commons",
"rootUrl":"//upload.wikimedia.org/wikipedia/commons",
"local":false,
"apiUrl":"http://commons.wikimedia.org/w/api.php",
"wiki":1
},
{
"type":"filerepo",
"name":"local",
"displayname":null,
"rootUrl":"//upload.wikimedia.org/wikipedia/en",
"local":true,
"wiki":0
}
]
},
{
"type":"wikiconf",
"baseurl":"http://commons.wikimedia.org/w/api.php",
"imagesize":1200,
"keep_tmpfiles":false,
"script_extension":".php",
"format":"nuwiki",
"parsoid":"http://parsoid-lb.eqiad.wikimedia.org/",
"prefix":"commonswiki",
"filerepos":[
{
"type":"filerepo",
"name":"local",
"displayname":null,
"rootUrl":"//upload.wikimedia.org/wikipedia/commons",
"local":true,
"wiki":1
}
]
}
]
}