Engine requirements

From SoylentNews
Revision as of 17:57, 13 February 2014 by Janek Kozicki (talk | contribs) (added science channel)
Jump to navigation Jump to search
  • Be mindful of bandwidth and the amount of processing done by the server when building any features. One extra character balloons into many megabytes of expensive bandwidth and consumption of server resources. Each feature that bloats a page response or causes the server to process something increases costs--KEEP COSTS DOWN!
  • UTF-8 clean for anything that doesn't end up in a URL (i.e. tags, titles, channel names, user names)
    • Of course, some combining marks would have to be filtered, and the resulting text round-tripped through NFD->NFC to prevent certain types of attacks against users or making text difficult to index.
  • MathJax support both in comments and in submissions
Mathjax is the math rendering engine used on stackexchange and will allow scientific discussion between us (people who read math).
  • Channels (like yro, science, politics, apple) as first class objects
  • Display user IDs
  • Javascript Optional
    • I enjoy having the comment rating slider for example, but main functionality should be accessible with lynx at the least!
  • Submission queues for all channels with membership at the discretion of the channel owner; being able to submit also implies up/downvoting submissions and tagging
Editors/channel owners only
List of users who can submit
All of my friends (for user journals)
All users with mod status
All registered users
Everyone
  • Articles are also first class objects
Perma-link independant of channel
Articles are tagged by topic(s) as well as channel
Articles are automatically archived
Archive is easily searchable, and should be referenced when submissions are edited.
Articles can be cross-posted to other channels by a channel owner (built into the UI if the editor manages more than one channel)
  • Comment key features
Comments are first class objects, just as before, just like articles
Comments can be edited for a short period of time by owner
HOWEVER: Edited comments get a new ID and it links to older versions in the new one. This detail is made prominent to viewer if a comment reply happened before an edit.
Allow alternate markup options (bbcode, markdown, wiki markup)
Provide a mapping to actual div and styles that will be applied, or HTML equivalent codes
  • Allow moderation in same article that you've posted in; only disallow moderation to your own reply chain.
    • You're obviously not allowed to moderate in your own accepted or posted article (treating all comments as replies)
    • Does "reply chain" include parent? If not, how do we deal with threadjacking:
      1. AC posts first comment on a new article (let's presume it's an upmod-worthy comment, not fristpsot)
      2. I post my unrelated comment as a reply to AC's FP, in order to achieve greater visibility
      3. I downmod the AC to -1
      4. Now AC is invisible to anyone with threshold != -1 (including many with mod points and threshold=0, who would have modded AC up on his own merits)
      5. Unless/until users with threshold=-1 and mod points happen by to rectify things, my comment is now the first thing most users see.
      6. ??? (sorry, can't resist...)
      7. Profit!
      • Actually, not just the immediate parent like I said, but 'all' ancestor comments. Otherwise as step 1.5 I just reply with an AC troll (which someone else will rightfully downmod), then in step 2 I reply to that; now that the original AC first post is my comment's gp, so I can still downmod it.
    • Good point you should be prevented from moderating any children and ancestors of your posts (but sibling chains are still fair game)