# Plugin – lektor-index-pages 1.1.0

Lektor plugin to generate blog-like index pages

#### Project links

#### Meta

Version: 1.1.0

Author: Jeff Dairiki

#### Tags

before-build, blog, indexing, and setup-env

View all tags.

## Project Description

# Lektor Index Pages Plugin

This Lektor plugin can be used to generate “index pages” for a blog or similar collection of pages. These index pages list the blog posts segregated by some key, with each index page containing only those posts which match that key.

Examples of what this can be used for include:

- Category Indexes: A set of index pages, one for each category, which lists all the posts in that category. (Multi-valued index keys are also supported, so that each post can appear on more than a single index page: e.g. keyword indexes.)

- Date Indexes: A set of index pages, one for each year (say), which list all the posts in that year. (Sub-indexes are supported subindexes — e.g., each year index may have as children a sequence of month indexes.)

Behind the scenes, judicious caching of indexing results, and careful control of Lektor’s dependency tracking prevent all this from slowing the build process down too excruciatingly much.

## Project Links

- Documentation
- Github
- PyPI

## Author

Jeff Dairiki dairiki@dairiki.org

## Changelog

### Release 1.1.0 (2023-06-16)

- Drop support for Lektor 3.2.x
- Test under python 3.11
- Add type annotations
- Convert packaging from setuptools to PDM
- Disuse `pkg_resources` in favor of `importlib.metadata`
- Add pre-commit configuration
- Run black and reorder-python-imports on code

### Release 1.0 (2022-01-28)

- Drop support for python 2.7 and 3.6.
- Fix deprecation warning from `jinja2`. Jinja2 version 3 is now required.

#### Documentation

- Documentation clarifications, updates and fixes. (PR #2 — Thank you Bart Van Loon!)

- Add missing requirement `recommonmark` to `docs/requirements.txt`.

- Add `docs` enviroment to `tox.ini` to test that docs will build cleanly.

#### Testing

- Test under python 3.10 and lektor<3.3

### Release 0.1 (2021-02-05)

No code changes.

Update development status classifier to "stable".

### Release 0.1a3 (2020-05-08)

#### API changes

- Added a `key` field on the index virtual source object. It is an alias to `_id`, but is syntactically more self-explanatory.

- The `keys` configuration key has been renamed to `key`.

- When the `key` expression is being evaluted, the record whose key(s) is(are) to be be computed is now available in the jinja context as `item` rather than `this`.

#### Documentation

- Documentation moved from README to Sphinx docs at RTFD.io

### Release 0.1a2 (2020-05-06)

#### API changes

- The `record` argument has been dropped from the (jinja) global `index_pages` function. (Since indexes can not have multiple parents, it is not necessary.)

- The `parent` configuration key has been renamed to `parent_path`.

- The `slug` configuration key has been renamed to `slug_format`.

- The `attributes` config section has been renamed to `fields`.

  Though they are not quite like regular Lektor Record fields, they are more field-like than attribute-like. (I.e. access is via getitem rather than getattr.)

### Release 0.1a1 (2020-05-05)

Initial release.

## Comments