Comments (9)
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.
from pullup.
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.
from pullup.
@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?).
from pullup.
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.
from pullup.
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.
from pullup.
@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.
from pullup.
@chall8908 I really like that. That's also great for mobile devices which are inherently bad at displaying nested content inline.
from pullup.
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.
from pullup.
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
from pullup.
Related Issues (20)
- Footer is not anchored to the bottom of the page HOT 5
- Better mobile views HOT 1
- Consider having a goal to focus on. HOT 4
- Landing page still visible after login HOT 1
- Justify GitHub Auth permission to read/write my repositories HOT 6
- A new idea for PullUp HOT 16
- Help: Issue deploying to heroku HOT 2
- Autocomplete username in comments HOT 3
- Update README.md: no need to include quotes around env variables when exporting them HOT 1
- Pullup as a reddit style layer for pull requests and issues. HOT 8
- [RFC] Switch from Gitter to Slack
- [LINKS] Domain not parsed on this submission HOT 1
- [PROFILE] Add contributions to mobile
- Add margin between error message and join alert HOT 2
- Make comments linkable
- Submit News button is misaligned HOT 3
- Hide upvote button if already upvoted
- On mobile: Vertically center vote count when there's no upvote
- Comment deleting needs a backend check
- Help me
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pullup.