The metabook.json is a file part of the bundle and gathers the collection/book metadatas.
Specification
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
A collection object contains the specification for the entire render and contains the following fields:
- type
"collection"- version
1- items
- an array of
ChapterorArticleobjects. - license
- an array of
Licenseobjects. - 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
Chapterobject. - 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
langattribute) 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
WikiConfobjects, giving the wiki configurations referenced by theitems
Chapter
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
Articleobjects contained within this chapter.
Article
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'swikisarray, giving theWikiConffor 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
revisionfield so that we don't spoil caching. - url
- the canonical URL for the article. (This can be derived from the
WikiConfand siteinfo in the bundle.)
License
A license object presumably represents the default license for a wiki or collection. It is currently unused.
- type
"license"
WikiConf
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
$wgScriptDirUrlfor the wiki, from which we can obtain the API endpoints. - script_extension
- the
$wgScriptExtensionfor 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.wikiidin the wiki's siteinfo). - filerepos
- an array of
FileRepoobjects 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
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 theimagerepositoryfield in the image metadata. - wiki
- an index into the
Collection'swikisfield 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
$wgScriptDirUrlof the repository (this can be obtained from theWikiConfreferenced by thewikifield of theFileRepo. - rootUrl
- a path which could be used to construct a direct URL for a file in the repository
Examples
Single article
{
"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
{
"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
}
]
}
]
}