Plugin – lektor-hal 0.1.2

Fetches publications from HAL

Project links


Version: 0.1.2

Author: Nicolas Cedilnik


bibliography, citation, science, and setup-env

View all tags.

Project Description


A plugin for Lektor that uses the HAL API to easily maintain an up-to-date list of publications on a static website.

HAL is an open archive where authors can deposit scholarly documents from all academic fields.


Add lektor-hal to the [packages] section of your .lektorproject file.

In ./configs/hal.ini, the query field must be specified, following to the HAL docs


query = ((authIdHal_s:my-id-hal) OR (authFullName_s:"My Name"))



<ul class="publications" id="publications">
  {% for publi in hal_publications %}
    <a href={{ }}>{{ publi.title }}</a>
    {{ publi.where }} -
    {{ publi.authors|join(', ') }}
    ({{ }})
  {% endfor %}

Two global variables are available in your jinja template, hal_publications and hal_request.


A list of Publications, a dataclass with the following attributes:

  • raw: A dict containing everything about this publication returned by the HAL API.
  • title: The title of the publication
  • hal_id: The HAL ID of the publication
  • authors: A list of strings (author names)
  • date: A string (producedDate_s)
  • type: The publication type, eg "ART", "COMM", "POSTER", etc/

and properties:

  • link: URL pointing to the HAL resource
  • where: returns where the article was published (journalTitle_s or conferenceTitle_s if missing)


URL used for the HAL API request.

Known caveat

Lektor will not 'know' that the page must be rebuilt when new entries are returned by the HAL API request. As a workaround, the plugin allows to mark any page as "dirty", so it is rebuilt everytime. Add this to the template that uses the publications list:

{{ volatile() }}