Skip to content

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

General
5 2 1.6k 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
  • Nodebb design

    Solved General nodebb
    2
    1 Votes
    2 Posts
    980 Views
    @Panda said in Nodebb design: One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum. From recollection, Google and Bing have the capability to read and process JS, although it’s not in the same manner as a physical person will consume content on a page. It will be seen as plain text, but will be indexed. However, it’s important to note that Yandex and Baidu will not render JS, although seeing as Google has a 90% share of the content available on the web in terms of indexing, this isn’t something you’ll likely lose sleep over. @Panda said in Nodebb design: The “write api” is preferred for server-to-server interactions. This is mostly based around overall security - you won’t typically want a client machine changing database elements or altering data. This is why you have “client-side” which could be DOM manipulation etc, and “server-side” which performs more complex operations as it can communicate directly with the database whereas the client cannot (and if it can, then you have a serious security flaw). Reading from the API is perfectly acceptable on the client-side, but not being able to write. A paradigm here would be something like SNMP. This protocol exists as a UDP (UDP is very efficient, as it is “fire and forget” and does not wait for a response like TCP does) based service which reads performance data from a remote source, thus enabling an application to parse that data for use in a monitoring application. In all cases, SNMP access should be “RO” (Read Only) and not RW (Read Write). It is completely feasible to assume complete control over a firewall for example by having RW access to SNMP and then exposing it to the entire internet with a weak passphrase. You wouldn’t do it (at least, I hope you wouldn’t) and the same ethic applies to server-side rendering and the execution of commands.
  • Welcome to NodeBB V3!

    Pinned Moved General v3-prod code changes
    1
    0 Votes
    1 Posts
    638 Views
    No one has replied
  • Chevron up before & after

    Solved Configure nodebb
    11
    1
    4 Votes
    11 Posts
    2k Views
    @crazycells you are right thank you.
  • NodeBB v2.4.0

    Solved General nodebb version error
    3
    1
    2 Votes
    3 Posts
    1k Views
    @phenomlab As always…Thank you. Worked for me.
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    237
    49 Votes
    237 Posts
    107k 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 !!
  • NodeBB Design help

    Solved Customisation
    8
    3
    2 Votes
    8 Posts
    2k Views
    @riekmedia I’ve applied some new CSS to your site. Can you reload the page and try again ? For the record, this is what I added #footer { background: #2d343e; border-top: 4px solid #2d343e; font-size: 0.9em; margin-top: 70px; padding: 80px 0 0; position: relative; clear: both; bottom: 0; left: 0; right: 0; z-index: 1000; margin-left: -15px; margin-right: -338px; } The /categories page seems a bit messed up, so looking at that currently EDIT - issued some override CSS in the CATEGORIES widget <!--- CSS fix for overspill on /categories page - DO NOT DELETE --> <style> #footer { margin-right: -45px; } </style> That should resolve the /categories issue.
  • Display tweets in widget [NodeBB]

    Solved Customisation
    29
    4 Votes
    29 Posts
    9k Views
    @phenomlab brilliant, many thanks Mark
  • What system did you first use?

    General computer printer learning
    12
    3
    3 Votes
    12 Posts
    3k Views
    @Sala impressive. That’s actually a lot harder than it looks. I once worked for a trading firm in the 90s and a trader came to me with a corrupted floppy disk demanding I get it to work. Evidently, it had all of his trading positions on it and he had no backup and he wasn’t impressed when I told him that the chances of data recovery were less than zero.