Skip to content

Add cross reference links when a discussion is mentioned from another one.

License

Notifications You must be signed in to change notification settings

club-1/flarum-ext-cross-references

Repository files navigation

CLUB1 Cross-references

License Latest Stable Version Total Downloads Coverage Build Status

A Flarum extension. Add cross reference links when a discussion is mentioned from another one.

cross reference screenshot

Features

This extension is mainly inspired by GitHub cross linking features. It adds similar features to Flarum forums.

  • EventPost in target discussion:
    • is created when a post referencing it is saved
    • links back to the source and displays its title
    • shows the ID of the source (option)
    • shows the primary tags of the source (option)
    • shows the secondary tags of the source (option)
  • Links in source discussion:
    • are changed to show the title of target discussion when the text is the same as the href
    • have (comment) indication if it points to a specific comment
    • load the target discussion faster as they use the FrontEnd Router
    • are shown in the preview the way they will be seen once posted
    • are automatically created from #<id> text (e.g. #42) (option)
    • are auto-completed with a selection box when # is entered
    • show the ID of the target (option)
    • show the primary tags of the target (option)
    • show the secondary tags of the target (option)
  • Discussion list:
    • shows the ID of the discussions (option)
  • HeaderRow
    • shows the ID of the discussion (option)

Known issues

Discussion links sometimes show plain links instead of the discussion title in rendered post, but are shown as expected in preview.

This is because the renderer is called with $request = null. It is probably due to another extension not setting this parameter when calling Formatter->render() or CommentPost->formatContent().

Enable Flarum's debug mode then check Flarum's log to find the source of the issue.

Here is an example of how this issue should be fixed in said extensions: the-turk/flarum-diff#35

Installation

Install with composer:

composer require club-1/flarum-ext-cross-references:"*"

Recommendation

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.

Updating

composer update club-1/flarum-ext-cross-references:"*"
php flarum migrate
php flarum cache:clear

Links