• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics in ~tildes.official with the tag "comments". Back to normal view / Search all groups
    1. Experimenting with a way of avoiding deeply nested comment threads

      One of the difficulties with a nested/tree commenting system is finding a way to deal with threads that get very "deep", when people continue replying back and forth under the same threads. The...

      One of the difficulties with a nested/tree commenting system is finding a way to deal with threads that get very "deep", when people continue replying back and forth under the same threads. The deep threads end up getting indented very far, and this looks bad, can be hard to follow, and wastes a ton of space (especially on smaller screens like phones).

      I'm not a huge fan of any of the ways that I've seen other sites try to handle this, so I've been trying to figure out if there might be any other possibilities that would work well. I've noticed that in most of the cases where a thread gets very deep, a lot of the depth comes from back-and-forth replies, where there's only one comment on each "level". So I'm testing a method that will flatten those sections out and just put a note on each comment that it's a direct reply to the comment above it.

      Specifically, the current method (which is now live), works like this: if a comment is at least 4 levels deep and only has a single reply, don't indent the reply any further. Instead, keep the reply at the same indentation and add a note at the top of it indicating that it's a reply to the above comment.

      I managed to implement this entirely through CSS, by writing what's probably the worst best chunk of CSS (really, SASS) of my life, which I want to show off here. If you don't know CSS and can't read this, trust me, you're better off:

      .comment:not([data-comment-depth="0"]):not([data-comment-depth="1"]):not([data-comment-depth="2"]):not([data-comment-depth="3"]) {
        &[data-comment-replies="1"] {
          & > .comment-tree-replies {
            margin-left: -1px;  // compensate for border
      
            & > .comment-tree-item > .comment > .comment-itself {
              & > .comment-text::before,
              & > header > .is-comment-deleted::before,
              & > header > .is-comment-removed::before {
                content: "(Reply to above comment)";
                font-size: 0.6rem;
                font-style: italic;
                margin-right: 0.2rem;
              }
            }
          }
        }
      }
      

      One of the really interesting things about implementing this entirely in CSS is that we can easily change what level it happens at based on screen size. So I have it set to always start at depth >= 4 right now to help with testing and deciding whether it works well or not, but if we decide to keep it I could easily change the threshold to higher on desktop and keep it lower on smaller screens.

      As an example of how it works, the previous ~tildes.official thread works really well. @Amarok and @cfabbro had a long discussion about music metadata that went very deep. The thread ends up 16 levels deep, but this new change makes it so that it only indents by 5 levels instead of 16. Here's a comparison between how the end of the thread looks on my phone: before this change vs. after this change (yes, something's not quite right with the indentation lines yet).

      Let me know what you think. I'm mostly concerned that this might make it a little harder to follow long threads since the information from the indentation is lost, but I think we need to test it out in real threads for a while to see if that actually ends up being significant or just takes a bit of getting used to.

      76 votes
    2. Many updates to The Feature Formerly Known as Comment Tagging

      A couple of weeks ago, I re-enabled the comment tagging feature. Since then, I've been keeping an eye on how it's being used, reading all the feedback people have posted, and have made a few other...

      A couple of weeks ago, I re-enabled the comment tagging feature. Since then, I've been keeping an eye on how it's being used, reading all the feedback people have posted, and have made a few other small adjustments in the meantime. Today, I'm implementing quite a few more significant changes to it.

      First, to try to head off some confusion: if you're very new to Tildes, you won't have access to this feature yet. Currently, only accounts that are at least a week old can use it. Also, the docs haven't been updated yet, but I'll do that later today.

      Here's what's changed:

      • The name has changed from "tag" to "label". I think it's better to use a different term to separate it more easily from topic tags since the features are very different, and "label" shouldn't have the implications that some people attach with "tagging".

      • As suggested by @patience_limited, "Troll" and "Flame" have now been replaced with a single label named "Malice". I don't think the distinction was important in most cases, and the meanings of them were a bit ambiguous, especially with how much the word "troll" has become over-used lately.

        Basically, you should label a comment as Malice if you think it's inappropriate for Tildes for some reason - whether the poster is being an asshole, trolling, spamming, etc.

      • This new Malice label requires entering a reason when you apply it. The reason you enter is only visible to me.

      • Another new label named "Exemplary" has been added, which is the first clearly positive one. This label is intended for people to use on comments that they think are exceptionally good, and it effectively acts as a multiplier to the votes on that comment (and the multiplier increases if more people label the comment Exemplary). Like Malice, it requires entering a reason for why you consider that comment exemplary, but the reason is visible (anonymously) to the author of the comment.

        Currently, you can only use this label once every 8 hours - don't randomly use it as a test, or you won't be able to use it again for 8 hours.

      The interface for some of these changes is a bit janky still and will probably be updated/adjusted before long, but it should be good enough to start trying them out. And as always, beyond the interface, almost everything else is subject to change as well, depending on feedback/usage. Let me know what you think—comment labels have a lot of potential, so it's important to figure out how to make them work well.

      105 votes