~nicoco/lektor-hal

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~nicoco/lektor-hal
read/write
git@git.sr.ht:~nicoco/lektor-hal

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

#Lektor-HAL

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.

#Configuration

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

Example:

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

#Usage

#Example

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

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

#hal_publications

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)

#hal_request

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() }}