/wiki-infobox-parser

A Wikipedia Infobox Parser

Primary LanguageJavaScriptMIT LicenseMIT

Wikipedia Infobox Parser

build status npm version

A parser for Wikipedia Inforbox, as described in Wikipedia help page:

An infobox is a fixed-format table designed to be added to the top right-hand corner of articles to consistently present a summary of some unifying aspect that the articles share and sometimes to improve navigation to other interrelated articles.

alt nodejs_infobox_screenshot

alt nodejs_infobox_screenshot

Features

It's still on development, it needs to support more markup templates.

  • Get Wikipedia Infobox by keyword
  • Support keyword redirection
  • Convert Wikipedia Markup text to JSON text

Installation

npm install wiki-infobox-parser

Usage

var wikiParser = require('wiki-infobox-parser');

wikiParser('france', function(err, result) {
  if (err) {
		console.error(err.message);
	} else {
		console.log(result);
	}
});

Result

alt nodejs_infobox_screenshot

The parsed result is

{
    "name": "Node.js",
    "logo": "frameless",
    "author": "Ryan Dahl",
    "developer": "[https://github.com/ry/node/blob/master/AUTHORS Node.js Developers], Joyent, [https://github.com/joyent/node/graphs/contributors GitHub Contributors]",
    "operating system": "OS X, Linux, Solaris, FreeBSD, OpenBSD, Microsoft Windows (older versions require Cygwin), webOS, NonStop OS",
    "status": "Active",
    "released": "2009/05/27",
    "latest release version": "4.2.1",
    "latest release date": "2015/10/13",
    "programming language": "C, C++, JavaScript",
    "genre": "Event-driven networking",
    "license": "MIT",
    "website": "http://nodejs.org"
}

How to contribute

Todo

  • Support map caption
  • Support link & free link
  • Support picture
  • Support template: {{fake clarify}}
  • Support template: {{fake citation needed}}
  • Support template: {{fake elucidate}}
  • Support template: {{fake heading}}
  • Support template: {{fake notes and references}}
  • Support template: {{dummy ref}}
  • Support template: {{dummy backlink}}
  • Support template: {{dummy footnote}}
  • Support template: {{break}}
  • Support template: {{break|5}}
  • Support template: {{clear}}
  • Support template: {{clear|left}}
  • Support template: {{clear|right}}
  • Support template: {{plainlist}}
  • Support template: {{startflatlist}}
  • Support template: {{flatlist}}
  • Support template: {{hlist|first item|second item|third item|...}}
  • Support template: {{bulleted list |item1 |item2 |...}}
  • Support template: {{pagelist}}
  • Support template: {{nowrap}}
  • Support template: {{italics}}
  • Support template: {{smallcaps|small caps}}
  • Support template: {{pad|4.0em}}

Issue tracker

img

Don't hesitate to contact me when you have any issue or idea about this parser, both PivotalTracker and Github issue are welcomed!

Tests

# Test with a small test cases set
make test

# Test with a full test cases set
# It will take ~2mins, depending on the network
make test-all

Before sending a PR please add corresponding tests, thanks!

Contributors

Reference