Skip to content

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

General
5 2 1.5k 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
    949 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.
  • Q&A Plugin Changes NodeBB

    Solved Customisation nodebb q&a plugin
    25
    1
    6 Votes
    25 Posts
    6k Views
    @phenomlab said in Q&A Plugin Changes NodeBB: float: right; left: 10px; } worked thank you
  • Top Ranked Forums

    Chitchat nodebb top ranked
    9
    1
    3 Votes
    9 Posts
    2k Views
    The real issue here is that most people consider forums to be “dead” in the sense that nobody uses them anymore, and social media groups have taken their place. Their once dominant stance in the 90’s and early 00’s will never be experienced again, but having said that, there are a number of forums that did in fact survive the social media onslaught, and still enjoy a large user base. Forums tend to be niche. One that immediately sticks out is Reddit - despite looking like it was designed in the 80s, it still has an enormous user base. Another is Stack Overflow, which needs no introduction. The key to any forum is the content it offers, and the more people whom contribute in terms of posting , the more popular and widely respected it becomes as a reliable source of information. Forums are still intensely popular with gamers, alongside those that offer tips on hacking etc.
  • Embed - What Are You Using?

    Solved General customisation plugin
    13
    3 Votes
    13 Posts
    2k Views
    @DownPW Hmm - it’ll work with iFramely (locally hosted), or you can use the below string to embed using https://community.nodebb.org/topic/7135/nodebb-plugin-ns-embed-ns-embed/114 Watch (?:<a.*?)?(?:https?:\/\/)?(?:www\.)?dailymotion\.com\/video\/([a-zA-Z0-9_-]{4,11})(?:.*?\/a>)? Replace <div class='embed-wrapper'><div class='embed-container'><iframe src='//www.dailymotion.com/embed/video/$1' frameborder='0' allowfullscreen></iframe></div></div> [image: 1661188242952-4f5f13f7-0c73-460e-b32f-f974f170b236-image.png]
  • 2 Votes
    4 Posts
    1k Views
    @qwinter it’s workable I think, but not perfect - then again, unless you write a specific plugin to perform such a task, what is. As you pointed out, you have versioning of sorts with the historical access to reach post.
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    237
    49 Votes
    237 Posts
    98k 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 dropdown menu

    Solved Configure nodebb
    5
    1
    0 Votes
    5 Posts
    2k Views
    @phenomlab said in nodebb dropdown menu: @kurulumu-net You set it like the below example taken from this site [image: 1637939951821-aae36790-3257-4bb2-ad5a-0d744309876a-image.png] Which presents this [image: 1637939983445-77f47260-2941-4afe-9614-8e17dcfc8c19-image.png] Very interesting… I actually thought this wasn’t possible, as I remember it being asked in the NodeBB forum. Is this something new that’s been implemented? I’ll 100% be doing that when I’m on the laptop over the weekend.
  • Nodebb best plugins

    General nodebb plugins
    18
    7 Votes
    18 Posts
    4k Views
    @phenomlab thanks