Skip to content

Plugin to show images in teasers

General
6 2 1.4k 1
  • Hi,

    I’ve posted this on nodebb before but was hoping to get more response here if anyone is interested. 🙂

    I was searching for a solution to show images, especially custom emojis, in teasers. Right now custom emojis or images are shown like “xyz.png” or “:emoji1:”:

    Screenshot 2023-06-08 at 12-39-45 Kategorien.png

    Regular emojis from emoji packs are displayed, I guess because the browser interprets ASCII.

    I’ve then created a plugin using an intended solution found here. It should remove the img-tag from the configureStripTags Hook.

    Unfortunately there is no impact to the recent cards plugin or any other teasers. No regarding error or warning found in the nodebb log. This is part of the log when I run ./nodebb dev:

    verbose: [plugins] Loaded plugin: nodebb-plugin-teaser-image
    
    verbose: [plugins/fireHook] filter:teasers.configureStripTags
    

    Plugin is as basic as it can be:

    index.js:

    'use strict';
    
    var plugin = {};
    
    plugin.filterTeasersConfigureStripTags = async function (hookData) {
      // Check if the "img" tag is present in the tags array
      if (hookData.tags.includes('img')) {
        // Remove the "img" tag from the tags array
        hookData.tags = hookData.tags.filter(tag => tag !== 'img');
      }
    
      return hookData;
    };
    
    module.exports = plugin;
    

    package.json:

    {
      "name": "nodebb-plugin-teaser-image",
      "version": "1.0.0",
      "description": "NodeBB Plugin to show images in teasers",
      "main": "index.js",
      "dependencies": {},
      "nbbpm": {
        "compatibility": "^1.0.0 || ^2.0.0 || ^3.0.0"
      }
    }
    
    

    plugin.json:

    {
      "id": "nodebb-plugin-teaser-image",
      "name": "Show images in Teasers",
      "description": "A NodeBB plugin to show images in teasers",
      "version": "1.0.0",
      "hooks": [
        {
          "hook": "filter:teasers.configureStripTags",
          "method": "filterTeasersConfigureStripTags"
        }
      ]
    }
    
    

    Anything I have overlooked or any more information I could add? From my understanding, this should already work. 🤔 Help is appreciated. I don’t have a github link yet, If anyone wants to try you can just create a folder in node_modules and add the above files.

  • Hi,

    I’ve posted this on nodebb before but was hoping to get more response here if anyone is interested. 🙂

    I was searching for a solution to show images, especially custom emojis, in teasers. Right now custom emojis or images are shown like “xyz.png” or “:emoji1:”:

    Screenshot 2023-06-08 at 12-39-45 Kategorien.png

    Regular emojis from emoji packs are displayed, I guess because the browser interprets ASCII.

    I’ve then created a plugin using an intended solution found here. It should remove the img-tag from the configureStripTags Hook.

    Unfortunately there is no impact to the recent cards plugin or any other teasers. No regarding error or warning found in the nodebb log. This is part of the log when I run ./nodebb dev:

    verbose: [plugins] Loaded plugin: nodebb-plugin-teaser-image
    
    verbose: [plugins/fireHook] filter:teasers.configureStripTags
    

    Plugin is as basic as it can be:

    index.js:

    'use strict';
    
    var plugin = {};
    
    plugin.filterTeasersConfigureStripTags = async function (hookData) {
      // Check if the "img" tag is present in the tags array
      if (hookData.tags.includes('img')) {
        // Remove the "img" tag from the tags array
        hookData.tags = hookData.tags.filter(tag => tag !== 'img');
      }
    
      return hookData;
    };
    
    module.exports = plugin;
    

    package.json:

    {
      "name": "nodebb-plugin-teaser-image",
      "version": "1.0.0",
      "description": "NodeBB Plugin to show images in teasers",
      "main": "index.js",
      "dependencies": {},
      "nbbpm": {
        "compatibility": "^1.0.0 || ^2.0.0 || ^3.0.0"
      }
    }
    
    

    plugin.json:

    {
      "id": "nodebb-plugin-teaser-image",
      "name": "Show images in Teasers",
      "description": "A NodeBB plugin to show images in teasers",
      "version": "1.0.0",
      "hooks": [
        {
          "hook": "filter:teasers.configureStripTags",
          "method": "filterTeasersConfigureStripTags"
        }
      ]
    }
    
    

    Anything I have overlooked or any more information I could add? From my understanding, this should already work. 🤔 Help is appreciated. I don’t have a github link yet, If anyone wants to try you can just create a folder in node_modules and add the above files.

    @dave1904 there’s nothing wrong with the plugin you’ve written, but seeing as it’s a server side hook, have you changed the plugin load order so that yours is the last to load?

    It could well be that your plugin is being overridden by another.

  • @dave1904 there’s nothing wrong with the plugin you’ve written, but seeing as it’s a server side hook, have you changed the plugin load order so that yours is the last to load?

    It could well be that your plugin is being overridden by another.

    @phenomlab said in Plugin to show images in teasers:

    have you changed the plugin load order so that yours is the last to load?

    Yes I did, the plugin is last in the plugin order list.

  • @phenomlab said in Plugin to show images in teasers:

    have you changed the plugin load order so that yours is the last to load?

    Yes I did, the plugin is last in the plugin order list.

    @dave1904 have you considered doing this client side? You could fairly easily manipulate the element in question using js.

    Admittedly, anyone using your site without script access won’t be able to leverage this, but it’s an acceptable solution.

  • Thank you @phenomlab

    Client side development is something I would consider but I don’t like it when things don’t work and especially when I don’t know why they don’t work. Do you maybe have any idea where I could have a look for more troubleshooting? I see that the hook is fired but can I see anywhere what the hook is doing in detail?

  • Thank you @phenomlab

    Client side development is something I would consider but I don’t like it when things don’t work and especially when I don’t know why they don’t work. Do you maybe have any idea where I could have a look for more troubleshooting? I see that the hook is fired but can I see anywhere what the hook is doing in detail?

    @dave1904 I’d start by adding a console.log function to hookData so you can see what is being returned

    return hookData;
    console.log(hookData):
    

Related Topics
  • NodeBB recent cards customisation

    Solved Customisation nodebb recent cards
    3
    1
    2 Votes
    3 Posts
    876 Views
    @phenomlab thank you very much for the assistance Mark, massively appreciated as always. The great thing about this is it’s all documented for other NodeBB users that come looking for solutions . Looks far better .
  • navigation menu panel on mobile

    Solved Customisation nodebb css
    8
    1
    7 Votes
    8 Posts
    2k Views
    @crazycells hmm. That’s odd. I haven’t made any changes from recollection but I could be wrong. I’ll need to check. EDIT - very strange. I honestly don’t recall adding the below CSS block to alter the bottom bar, but you’re right… .bottombar-nav { padding: 0px !important; } I’ve removed this so it reflects stock Harmony.
  • Composer Zen icon?

    Solved Configure nodebb
    8
    1
    2 Votes
    8 Posts
    1k Views
    @DownPW exactly. Not really a new concept, and in all honesty, not something I’ve ever used. If you consider the need to add links and references, or citations, you’d need to be able to see other parts of the screen!
  • 12 Votes
    47 Posts
    11k Views
    @dave1904 just coming back to this thread as @DownPW and I both experienced issues with other plugins today, and the fix was to use the plugin ordering in the ACP and move the Harmony theme to the very top so it comes before everything else in terms of other plugins. It might be worth at least trying this to see if it gives you a result rather than the previous bulldozer approach. Thinking about it, the previous fix I proposed is along the same lines and disabling plugins does in fact change the order when they are enabled again, so this is definitely worth a try. Let me know how you get on.
  • Fresher in Nodebb install

    General nodebb
    24
    15 Votes
    24 Posts
    7k Views
    @Hari I’ve been reading a lot about APO. Looks impressive.
  • Adding fileWrite to nodebb code

    Solved Configure nodebb
    16
    1
    5 Votes
    16 Posts
    3k Views
    @eveh this might be a question for the NodeBB Devs themselves. In all honesty, I’m not entirely sure without having to research this myself.
  • NodeBB metadata

    Solved Configure nodebb
    4
    2 Votes
    4 Posts
    1k Views
    @phenomlab said in NodeBB metadata: @jac Are you sure ? https://www.google.co.uk/search?q=site%3Astockportcounty.fans&sxsrf=AOaemvLwnaZL-PliU_2dBOg_Eo1pMVhBjg%3A1638982328139&source=hp&ei=uOKwYeatBcOsad3yp7AE&iflsig=ALs-wAMAAAAAYbDwyLBSDcG5XYoFCKwQFhgz94wTxOcV&ved=0ahUKEwjm6dX71NT0AhVDVhoKHV35CUYQ4dUDCAk&uact=5&oq=site%3Astockportcounty.fans&gs_lcp=Cgdnd3Mtd2l6EAM6BAgjECc6CwgAEIAEELEDEIMBOg4ILhCABBCxAxDHARCjAjoRCC4QgAQQsQMQgwEQxwEQowI6BQguEIAEOggIABCABBCxAzoFCAAQgAQ6CAguELEDEIMBOgsILhCABBDHARCvAToICC4QgAQQsQM6BQgAELEDOgsILhCABBDHARDRAzoLCAAQgAQQsQMQyQM6BQgAEJIDUABYySZg0CdoAHAAeACAAW2IAa0NkgEEMjMuMpgBAKABAQ&sclient=gws-wiz Fair enough 🤪🤪.
  • nodebb-plugin-customize error

    Solved Customisation
    25
    2 Votes
    25 Posts
    11k Views
    @phenomlab it work, thanks