## Background

While creating a bibliography using nikola I found about nikola path handlers. It allows you to make reference to other posts without needing the full address (e.g. http://necromuralist.github.io/pages/nikola-inter-site-links).

Instead you can use the special link:// protocol and nikola will resolve it for you. It uses the form:

There is (of course) another form that lets you doc it using the :doc: restructured text directive. This form is more succinct, and is what I'll probably stick with in the future. I originally went with the link version because I thought it would work with other markup languages, but it didn't (or at least not with org-mode).

## Post-Paths

In this case I'm trying to link to another post so the link kind is post_path, which will resolve to either posts or pages. Because it can be either one, you need to extend the path to this form:

link://post_path/posts/<post-slug>/


Note

You can get the slug in the meta-data in the post itself.

Warning

When I forgot the last forward-slash (after the slug) nikola couldn't resolve it and returned a 404 error.

### Example

Here's how to link to another post that I titled Pruning Large Files From Git with BFG, with a slug of pruning-large-files-from-git-with-bfg.

link <link://post_path/posts/pruning-large-files-from-git-with-bfg/>__


## Doc Role

This is a restructured-text role that nikola supports to make it easier to install links. The previous example using this style would be done like this:

:doc:link <pruning-large-files-from-git-with-bfg>

link <link://post_path/stories/story-slug/>__