A Flarum extension. Add links to the definition of terms defined in a Sphinx documentation inventory.
This is a quite niche extension and it is still a little bit rough around the edges but it works nicely. It could be useful if your community is gathered around a software project that defines a bunch of terms in a Sphinx documentation.
For now it does not have any GUI admin panel settings. It can only be configured through the Flarum console.
This extension is based on the intersphinx feature of Sphinx and is configured in a similar fashion. Mappings that resemble the intersphinx_mapping
configuration value can be added to the database using the sphinx:add
command. Then the sphinx:update
command fetches and parses the corresponding inventories to populate the glossary. This command is scheduled to run daily. It uses HTTP caching and PHP streams to stay low on resources.
By default only the std:term
roles are used as glossary entries. This can be changed on a per mapping basis, using the --role=ROLE
option. For example:
php flarum sphinx:add club1 https://club1.fr/docs/fr/ --role=term --role=logiciel --role=commande
Install with composer:
composer require club-1/flarum-ext-sphinx-glossary:"*"
After enabling the extension from the admin panel, the following Flarum commands are available:
sphinx:add Add a Sphinx documentation inventory to the mapping list
sphinx:list List the Sphinx inventory mappings
sphinx:objects Display info about the loaded Sphinx objects
sphinx:remove Remove a Sphinx documentation inventory from the mapping list and all its objects
sphinx:update Update Sphinx glossary entries by downloading the latest inventories
This extension alone does not apply the formatting changes to previously posted comments. I you want to reparse all the comments posts of the database it is recommended to install and enable the club-1/flarum-ext-chore-commands
extension and use its chore:reparse
command.
composer update club-1/flarum-ext-sphinx-glossary:"*"
php flarum migrate
php flarum cache:clear
The following tools are needed for development:
This extension is based on the following libraries: