DangerOnTheRanger / maniwani

Imageboard software for the 21st century
MIT License
75 stars 11 forks source link

URL design #63

Open DonaldTsang opened 5 years ago

DonaldTsang commented 5 years ago
  1. Named boards should have matching URLs instead of board IDs
  2. Using URL to search board threads would be useful

    Design example

  3. boards should be <domain_name>/<board_name>
    • board name should be lower case English alphabet and numbers ONLY
  4. threads should be <domain_name>/<board_name>/<thread_id>.html
    • thread IDs should be octal, decimal, dozenal (duodecimal) or hexadecimal
      • Depending on the ID type, create different regex for digits and prefixes like 0x
    • each board should have unique indexes for people who like to play GETball (e.g. /sp/)
  5. common pages should be <domain_name>/<board_name>/<page>.html
    • pages includes (but not liited to):
      • Rules
      • FAQ/wiki
      • index
      • Catalog
  6. board title search would look like <domain_name>/<board_name>/<keyword>
    • We need to define a good set of keyword search functions
  7. multi-board view would look like <domain_name>/<board_name>+<board_name>
    • The + sign is used to combine different boards
    • The * sign is used for wildcard searching board names
  8. multi-board search would look like <domain_name>/<board_name>+<board_name>/<keyword>
  9. [moderation]
  10. [archiving]
DangerOnTheRanger commented 5 years ago

1 wouldn't be too hard to implement; it would require modifying the boards blueprint to get boards by name (in addition to or instead of?) ID, and then reworking existing references to board IDs in the templates to board names. So a lot of files will need to be modified, but the work would be straightforward.

I'm not sure I understand 2. Do you mean being able to have an URL that you can use to search a board?

DonaldTsang commented 5 years ago

I recommend doing research on how 4chan and 8chan (especially nerv) works, you might see some inspiration.

DangerOnTheRanger commented 5 years ago

Are you referring to multiboards, i.e, being able to do something like view tech/cyber/g/sudo/prog/sci/ simultaneously? That wouldn't be too hard to implement on the backend (the firehose/front page does this already), though I'm not sure how you'd design the frontend outside of having the user type the URL in manually.

DonaldTsang commented 5 years ago

Yep. Basic URLs for boards, threads, multiboards and catalog search are some basic features you have to consider.

DangerOnTheRanger commented 5 years ago

Searching is probably something better discussed on #59, but I'm open to adding multiboards. Again, the UI is something that should be worked out, but if someone were to submit a PR that only added backend support for multiboards (i.e, code that took an URL and spit out a multiboard, that's it) I would accept it, and work on the UI later.

DonaldTsang commented 5 years ago

@DangerOnTheRanger check this again and see if the design is good, and if not, what could be changed.