Title: Customizing and Extending Nukumi2 Page: customizing-and-extending-nukumi2 This chapter describes the ways you can use to customize and tune Nukumi2 to your needs. ## Template Overriding Template modification is the probably most used kind of customization. By design, the `html` (XHTML, actually) flavor was made to be very easy to customize. To get started, look in your Nukumi2 installation for the `template` directory. It contains directories having the name of the flavor (so far `html`, `atom` and `rss`) they contain. These directory contain a list of files, at least `content-type` and `page`. `content-type` contains the name of the Content-Type used for HTTP responses, usually you don't want to override it. `page` is the more interesting part: It contains the Tangerine template used to render the whole page. Tangerine templates can include subtemplates by using the `,,@...` command to insert the file given. Let's say you want to override the `footer` template of `html`: Create (unless you already have it, of course) a directory `templates/html` and copy `footer` from the original directory into. You can now hack it as you like, but as well update Nukumi2 and make use of the other, possibly updated templates. ## Adding Sidebar Elements If you want to add elements on the sidebar, edit the template `sidebar` as explained in the section before. XXX Example: Blogroll ## Plugins *Plugins* are to Nukumi2 any code that adds features that do not need to be in the core. The actual use of this code can vary from integration with other tools over new directives for templates to doing the dishes... For now, you need to be savy of the Nukumi2 codebase to write more complex plugins, as there is no description of how to write extension plugins. Installing plugins is easy: simply copy it's source file (named `*.rb` to the `plugin/` directory of your Nukumi2 installation (global use) or your project directory (local use). Be careful running code from foreign sources. ## Adding new flavors XXX ## Hacking the Registry (Needle) XXX ## Adding a new backend XXX ## Contributing patches with darcs XXX