Friday, October 24, 2008

Google Books and Mediawiki

Following on from the previous post, I wrote a simpe Mediawiki extension to insert a Google Book into a wiki page. Written in a few minutes, not tested much, etc.

To use this, copy the code below and save in a file googlebook.php in the extensions directory of your Mediawiki installation.

# rdmp

# Google Book extension
# Embed a Google Book into Mediawiki
# Usage:
# <googlebook id="OCLC:4208784" />
# To install it put this file in the extensions directory
# To activate the extension, include it from your LocalSettings.php
# with: require("extensions/googlebook.php");

$wgExtensionFunctions[] = "wfGoogleBook";

function wfGoogleBook() {
global $wgParser;
# registers the <googlebook> extension with the WikiText parser
$wgParser->setHook( "googlebook", "renderGoogleBook" );

# The callback function for converting the input text to HTML output
function renderGoogleBook( $input, $argv )
$width = 425;
$height = 400;

if (isset($argv["width"]))
$width = $argv["width"];
if (isset($argv["height"]))
$width = $argv["height"];

$output = '<script type="text/javascript"
$output .= '<script type="text/javascript">
. $argv["id"] . '\','. $width . ',' . $height . ');

return $output;

In your LocalSettings.php file add the line


Now you can add a Google book to a wiki page by adding a <googlebook> tag. For example:

<googlebook id="OCLC:4208784" />

The id gives the book identifier (such as an OCLC number or a ISBN (you need to include the identifier prefix). By defaulot, the book will appear in a box 425 × 400 pixels in size. You can add optional width and height parameters to adjust this.

1 comment:

Pierre Lindenbaum said...

Many thanks for this short demo !