# Extending

Currently (as of version 1.3.3dev) Hatta has no plugin mechanism. However, this doesn't mean that you can't extend it. There are several ways to do that:

## JavaScript scripts

If you need to add a table of contents to every page, make page sections collapsible, highlight search terms when someone came from a google search, display dates in the user's timezone, embed maps or other dynamic content – then Javascript is just the right thing.

You can add your own scripts to Hatta pages quite easily. The HTML being generated is supposed to be marked with IDs and classes generously to help you with manipulating it with DOM.

## Wrapping

You can override and extend the existing code by wrapping the hatta package: writing your own WSGI application that imports from Hatta, inherits or monkey-patches some of its classes, and calls it. There are some examples in the "examples" directory.

## Using as library

You don't have to use Hatta as a web application – you can write scripts that would generate static html, check validity of pages, generate statistics or perform batch operations on the wiki. You could do all that by just touching the files in the repository directly, but you can also import hatta in your script and call its internal functions to do the job.