browse  log 



You can also use your local clone with git send-email.


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.link }}>{{ publi.title }}</a>
    {{ publi.where }} -
    {{ publi.authors|join(', ') }}
    ({{ publi.date }})
  {% 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() }}