Open ghost opened 10 years ago
I'm going to be a contrarian and suggest that flat comments might actually work better if done properly. Other sites manage inline references without nesting.
Also - this is probably not the "correct" way to do it but here is an experiment I made a while ago to build a threaded forum using firebase.io: https://github.com/kennethrapp/firethread
I think it's about as simple as you can get - using id/parent id references and building everything in the browser.
I'm not familiar with firebase, but that looks interesting. I'll have to take a closer look.
Using the existing infrastructure, I think this would be fairly simple and we'd get fast hierarchical retrieval using materialized paths. However, if the idea is to add comment voting at some point then sorting by votes/score is where things get much more complicated... maybe a hybrid backend/client sorting solution would work well.
That said, there really doesn't appear to be much interest in this feature at the moment, I'm just putting some ideas out there.
@kennethrapp does your example of a threaded forum have a live demo somewhere? I am interested in non-nested options. In my own experience I skip over deeply nested threads as they usually don't add much to the conversation (although maybe that's an argument to keep them nested so there is an easy visual cue?).
sure: http://kennethrapp.github.io/firethread/ - it should also run if you just clone it and open it locally but I understand if people don't want to do that ;)
It's still little more than a proof of concept for myself, but I think it does solve one of the problems I have with threaded comments which is that threading tends to work for headers, but makes following conversations difficult when the comments themselves are also threaded. Although in the case of deeply nested threads, I understand this is meant to be a feature in some places.
What about having some kind of syntax where you can respond to a comment by id/number. Something like:
#15
I agree in principal with what you're saying, but...
#27
Have you tried...
Essentially, it would place some kind of widget (link, button that opens a modal, expandable preview, whatever) inline in your comment that shows what you're replaying to.
@willurd that's pretty much how FIM Fiction handles comments. I find that it works pretty well.
Replies use the name of the poster as the link. Depending on how prominent the name of the poster is, this may make it easier to figure out which comment is being replied to.
Hovering over the link opens the comment in a floating div.
Clicking on it opens the comment in-line. Comments shown in this manner can also be clicked on. So, if that comment is a reply to another comment, that comment can be in-lined inside the first comment and so on.
@chall8908 I really like that. That's also great for mobile devices which are inherently bad at displaying nested content inline.
Imageboards use that method. I think it would allow the structure of conversations to be more dynamic than nested comments would. The scripting could also be done entirely though main.js.
Seeing @chall8908's example has me thinking that a totally flat structure (not even one-level nesting) is the way to go. I like the idea of quoting based on user (which is easy) and post (which is specific).
Perhaps the way to go would be to have the commenter type the user's name, and pull up a list of that user's comments in this thread so that the commenter can select the specific comment to be referenced. It wouldn't even require any backend work, like @kennethrapp mentioned - the post referenced can be pulled in with front-end js (Trello has a system like this that works pretty well).
Here's some interesting reading on this topic: http://blog.vanillaforums.com/philosophy/why-vanilla-no-nested-comments/ http://www.codinghorror.com/blog/2006/11/discussions-flat-or-threaded.html http://www.joelonsoftware.com/articles/BuildingCommunitieswithSo.html
I think not being able to reply to comments inline makes for very confusing discussions. Are there any thoughts regarding adding nested/threaded comments?