# Glossary Builds a glossary page containing definition lists found in articles. ## Example If you have an article (Markdown or ReST) that generates the following: file `defns.html` titled "My definitions" ```
My Term
This is definition for My Term.
Another Term
And another definition.
``` This plugin will do two things. First, it will add an anchor to the beginning of the
tag, like so: file `defns.html` titled "My definitions" ```
My Term
This is definition for My Term.
Another Term
And another definition.
``` Second, it will extract all such definitions and put them inside the `definitions` variable in the pelican context. It will be seen by all page templates. The `definitions` variable will have the following attributes: + `title`, the definition title, inside
tags, + `definition`, the definition, inside
tags, + `anchor`, the text inside the `name` attribute for the anchor link, + `source`, the article or page that contains this definition list, + `see_also`, containing a list of objects just like this one, made from other definitions in the same list. For example, for the above html code, the `definitions` variable would look like the following: ``` definitions = [obj1, obj2] obj1.title = "My Term" obj1.definition = "This is definition for My Term." obj1.anchor = 'my-term' obj1.source = obj1.see_also = [obj2] obj2.title = "Another Term" obj2.definition = "And another definition." obj2.link = 'another-term' obj2.source = obj2.see_also = [obj1] ``` ## Usage Next is an example usage of the `definitions` variable. glossary.html ``` {% for def in definitions | sort(attribute='title') %}

{{ def.title }}

{{ def.definition }}

Defined in: {{ def.source.title }}. {% if def.see_also %} See also: {% for also in def.see_also %} {{ also.title }}{% if not loop.last %}, {% else %}.{% endif %} {% endfor%} {% endif %}

``` This example generates new anchors in the glossary page, so that navigation through the `see also` links is done inside the same page, as well as link to the source page (with the correct anchor too). >>>>>>> Stashed changes ## Notes + The `glossary` plugin supports the use of a `GLOSSARY_EXCLUDE` setting, which can be set to an arbitrary list in your `pelicanconf.py`. By default, it's equal to the empty list. `glossary` will add to `definitions` all definitions **EXCEPT** those whose title is found inside `GLOSSARY_EXCLUDE`.