WikiJs is a node.js library which serves as an interface to Wikipedia (or any MediaWiki).

What can it do?

Search wiki articles

Fetch article content

Find all links/images/categories in a article page

Get parsed information about articles

Find articles by geographical location

and much more!

Documentation

https://dijs.github.io/wiki

Install

npm install wikijs

Build yourself

You can run these commands in order to build and test WikiJs:

git clone git@github.com:dijs/wiki.git cd wiki npm install npm run build npm test

Usage

import wiki from ' wikijs ' ; wiki ( ) . page ( ' Batman ' ) . then ( page => page . info ( ' alterEgo ' ) ) . then ( console . log ) ;

Usage with webpack

In order for webpack to build wikijs properly, you must add an option to your webpack configuration file. Documentation

externals: { " isomorphic-fetch " : " fetch " }

Usage with other MediaWiki's

You can use the API options configuration:

wiki ( { apiUrl : ' https://awoiaf.westeros.org/api.php ' , origin : null } ) . search ( ' Winterfell ' ) ;

Usage with other languages

You just need to change the API to the proper URL. This is normally just changing the subdomain of wikipedia.

wiki ( { apiUrl : ' https://es.wikipedia.org/w/api.php ' } ) . page ( ' Cristiano Ronaldo ' ) . then ( page => page . info ( ) ) . then ( console . log ) ;

Read more about Cross Domain Requests here

Usage with custom headers

If you need to pass authentication headers or anything else.

wiki ( { headers : { Cookie : ' name=value; name2=value2; name3=value3 ' } } ) . search ( ' Winterfell ' ) ;

Parsing Wiki Infobox Data

The code Wikipedia uses for infobox data is strange and complex. So I have split the parsing code into another library. You can find it here.

We not only parse out the information, but also try to transform the data into a convenient structure for data processing.

I always welcome help. Please just stick to the lint rules and write tests with each feature/fix.

Artwork

Thanks to Heather van der Dys for the awesome logo!