Engine requirements
(This is a subpage of Feature list, you can go back to see other features planned.)
- 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
- "Primary" channels that have DNS shorthand (http://apple.altslash.org/ being equiv to http://altslash.org/ch/apple/)
- "Secondary" channels that users could create and play editor that use the more verbose syntax (http://altslash.org/ch/baseball/) that is reminiscent of subreddits
- User channels (i.e. journals, as we've always had)
- 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:
- AC posts first comment on a new article (let's presume it's an upmod-worthy comment, not fristpsot)
- I post my unrelated comment as a reply to AC's FP, in order to achieve greater visibility
- I downmod the AC to -1
- 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)
- Unless/until users with threshold=-1 and mod points happen by to rectify things, my comment is now the first thing most users see.
- ??? (sorry, can't resist...)
- 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)