Skip to content
Wikipedia Interface for Node.js
JavaScript
Branch: master
Clone or download
Pull request Compare This branch is 25 commits behind dijs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs/wikijs
img
src
static/img
test
wikijsdocs/wikijs
.babelrc
.eslintrc
.gitignore
.jsdoc.json
.npmignore
.prettierrc
.travis.yml
LICENSE
README.md
index.d.ts
package.json
wallaby.js

README.md

NPM Version Build Status Coverage Status paypal

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';
// const wiki = require('wikijs').default;

wiki().page('Batman')
	.then(page => page.info('alterEgo'))
	.then(console.log); // Bruce Wayne

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. NPM Version

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

Contribute!

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!

You can’t perform that action at this time.