Skip to content

Using nodebb as a publishing destination, posting after git push?

General
5 2 1.4k 1
  • Bear with me, this is a bit of a perversion of forum software to use it more as a CMS.
    I want to create an active community. You need to write a lot for that to happen. I do write a lot, but my style is to create a highly connected graph of small thoughts (aka digital garden, aka zettelkasten).

    My ideal workflow is that I have lots of .md files which link to each other.

    I want to publish those to nodebb, as top post on a thread. @phenomlab you already use nodebb instead of a blog, after trying software that was custom-build for blogs (ghost) and not finding it better than nodebb posts! This is very similar, but I want to publish/update lots of posts at once.

    Ideal workflow: I have lots of md files on my local machine. I update them as I like. When I’m ready, I do a git push or similar, and all content appears/gets updated on nodebb.

    This is a perversion: using forum software as a CMS.

    My question is: is this doable? Worth doing? Would I bump into issues in the future if I do this?

  • Bear with me, this is a bit of a perversion of forum software to use it more as a CMS.
    I want to create an active community. You need to write a lot for that to happen. I do write a lot, but my style is to create a highly connected graph of small thoughts (aka digital garden, aka zettelkasten).

    My ideal workflow is that I have lots of .md files which link to each other.

    I want to publish those to nodebb, as top post on a thread. @phenomlab you already use nodebb instead of a blog, after trying software that was custom-build for blogs (ghost) and not finding it better than nodebb posts! This is very similar, but I want to publish/update lots of posts at once.

    Ideal workflow: I have lots of md files on my local machine. I update them as I like. When I’m ready, I do a git push or similar, and all content appears/gets updated on nodebb.

    This is a perversion: using forum software as a CMS.

    My question is: is this doable? Worth doing? Would I bump into issues in the future if I do this?

    @qwinter I wouldn’t use git push for this unless you are specifically looking for version control. I’d personally use the NodeBB API to do exactly this. I have some working code I can share to assist in this process. Essentially, you could just create your own RSS feed, and have NodeBB pull from that directly.

    The code requires some PHP and the SimplePie library - have a look at this

    https://sudonix.com/topic/170/creating-posts-from-rss-feeds-in-flarum

    Something similar I did when using Flarum. If you’d like an idea of how effective this can be, ask @JAC who I’ve written various customizations for over the years for sites that he’s run previously.

  • @qwinter I wouldn’t use git push for this unless you are specifically looking for version control. I’d personally use the NodeBB API to do exactly this. I have some working code I can share to assist in this process. Essentially, you could just create your own RSS feed, and have NodeBB pull from that directly.

    The code requires some PHP and the SimplePie library - have a look at this

    https://sudonix.com/topic/170/creating-posts-from-rss-feeds-in-flarum

    Something similar I did when using Flarum. If you’d like an idea of how effective this can be, ask @JAC who I’ve written various customizations for over the years for sites that he’s run previously.

    @phenomlab wow, no surprise you had thought of this. Yeah I want to keep versions but of course I can do that while still pushing things to an RSS feed.

    Will ask @JAC , thanks for the idea and potentially the scripts!

    Unrelated: I like this at the bottom of the post:

    Referenced by
    phenomlab phenomlab

    Which plugin is that?

  • @phenomlab wow, no surprise you had thought of this. Yeah I want to keep versions but of course I can do that while still pushing things to an RSS feed.

    Will ask @JAC , thanks for the idea and potentially the scripts!

    Unrelated: I like this at the bottom of the post:

    Referenced by
    phenomlab phenomlab

    Which plugin is that?

    @qwinter said in Using nodebb as a publishing destination, posting after git push?:

    Which plugin is that?

    It’s part of core 🙂

  • @qwinter this particular site uses the code I wrote if you want to see it in action. It’s a information and intelligence gatherer I designed for collecting various information security articles from around the globe and consolidating them in one place.

    Essentially, each “post” is in fact generated by the script, and the NodeBB API.

    https://hostrisk.com/


Related Topics
  • TNG + Nodebb

    General tng genealogy nodebb plugin
    4
    0 Votes
    4 Posts
    967 Views
    @Madchatthew said in TNG + Nodebb: you have to try and use duck tape and super glue to change something to make it do what you want it to do I couldn’t have put that better myself.
  • What plugins are being used here on Sudonix?

    Solved General nodebb plugins development
    6
    5 Votes
    6 Posts
    1k Views
    @Roki-Antic Welcome! This site isn’t running Persona, but Harmony - a very heavily customised version at that. Do you have a URL where your site is currently located that is publicly accessible? Feel free to PM this info if you do not want to disclose here. Happy to help with any customisation needs.
  • Fixed background to nodebb forum

    Solved Configure nodebb
    25
    4 Votes
    25 Posts
    5k Views
    @Panda said in Fixed background to nodebb forum: Chatgpt told me the ::before method. Go figure
  • Composer options on nodebb

    Solved Configure nodebb
    8
    1
    3 Votes
    8 Posts
    1k Views
    @Panda You should be able to expose the CSS for these using F12 to get into console [image: 1686833368846-3591518c-e3a3-4ada-a43c-6b32a5e0359c-image.png] [image: 1686833399483-a2b8ed46-4157-4ff2-85f0-576543380107-image.png] That should then expose the element once selected [image: 1686833431032-89d9c545-a47a-40d1-98f4-80cf3b958e8f-image.png] Here’s the below CSS you need based on the screenshot provided. .composer .formatting-bar .formatting-group li[data-format="picture-o"], .composer .formatting-bar .formatting-group li[data-format="spoiler"] { display: none; }
  • 2 Votes
    6 Posts
    1k Views
    @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):
  • Fresher in Nodebb install

    General nodebb
    24
    15 Votes
    24 Posts
    6k Views
    @Hari I’ve been reading a lot about APO. Looks impressive.
  • creating topic specific widgets

    Solved Customisation nodebb
    16
    10 Votes
    16 Posts
    3k Views
    @crazycells said in creating topic specific widgets: Additionally if hide class exists, why are we re-defining it? We’re not 🤭 I misspelled it - it should be hidden
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    237
    49 Votes
    237 Posts
    85k Views
    @baris said: You should change your selectors so it doesn’t look at the entire document. You probably only want to apply fancybox to stuff inside the #content element which is what changes when the user navigates around the page. So use $('#content a').... for your selectors then the forum logo in the header won’t be selected. I modified the JS Fancybox code now and this code and it seem better // --------------------------------------------- // Fancybox Media Reader (Without Website Logo) // --------------------------------------------- if (top.location.pathname !== '/login') { $(window).on('action:posts.loaded', function(data) { console.log("Polling DOM for lazyLoaded images to apply Fancybox"); $(document).ready(function() { $('#content a').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); }); }); }); } if (top.location.pathname !== '/login') { $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { $('#content a').not('.logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); data.preventDefault() // Strip out the images contained inside blockquotes as this looks nasty :) $('#content blockquote img').remove(); }); Fancybox.bind( '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]', { groupAll: true, } ); }); }); } // Chat fancybox - fires when chat module loaded and AJAX calls new chat $(document).ready(function() { $(window).on('action:chat.loaded', function(data) { // >>> Se limiter au contenu principal uniquement <<< $('#content img').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { var newHref = $(this).attr("src"); $(this).wrap("<a class='fancybox' href='" + newHref + "'/>"); $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); data.preventDefault(); // Strip out the images contained inside blockquotes as this looks nasty :) $('#content blockquote img').remove(); }); Fancybox.bind( '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]', { groupAll: true, } ); }); }); For the logo, I must use overflow: visible !important; on [component="brand/logo"] /* --- Logo --- */ [component="brand/logo"] { max-height: 50px; width: auto; height: auto; max-width: 100%; display: block; object-fit: contain; object-position: left center; overflow: visible !important; } Better result !!