mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-03-24 04:18:10 +00:00
Created Folders: Collected Clippings (markdown)
589
Folders:-Collected-Clippings.md
Normal file
589
Folders:-Collected-Clippings.md
Normal file
@@ -0,0 +1,589 @@
|
||||
This is a file of collected clippings of conversations from gitter, discord, reddit, github, etc.
|
||||
|
||||
It's a chaotic mess. Don't try cleaning it up. Do copy/steal interesting stuff into the main wiki topic page for folders.
|
||||
|
||||
----
|
||||
|
||||
|
||||
Initially you'll be able to filter by tags on the user page, but as we
|
||||
get user settings set up I plan on adding smart folders to the list
|
||||
that key off of tags
|
||||
|
||||
|
||||
|
||||
|
||||
DUMB FOLDERS
|
||||
|
||||
Dumb folders are just smart folders with a specific structure of
|
||||
nested tags, unless you're planning on having them correspond to real
|
||||
disk folders instead of just simulating that with metadata.
|
||||
|
||||
> /{route}/{route}/{resource} vs /{tag} and /{tag}
|
||||
|
||||
Hmm .. no .. folders will be a mechanism to view a curated collection
|
||||
of brews. Each of those brews will have a resource uri of just
|
||||
`/user/name/:brewid` — the folder path will not be exposed (for a
|
||||
couple of reasons).
|
||||
|
||||
Or maybe not. [RESOLVE]
|
||||
|
||||
|
||||
|
||||
If we have "folders" which act as views of curated collections of
|
||||
brews, and have urls like `/user/name/foldername` or
|
||||
`/user/name/foldername/nestedfoldername` .. and requesting that url
|
||||
reveals the folder contents .. the brews listed there wouldn't include
|
||||
the folder path in their respect URIs, right?
|
||||
|
||||
They'd be things like `/share/brewid` or `/edit/brewid`. Right?
|
||||
|
||||
Given the brewids are becoming perma-identifiers, while folder names
|
||||
could come and go and mutate, and possibly even a brew could be placed
|
||||
into multiple folders of one user, and certainly a multi-author brew
|
||||
could be placed into multiple author folders (since folders are owned
|
||||
and managed as a user thing, not a brew thing) .. it would be making a
|
||||
lot of hard work for us to try supporting `/share/foldername/nestedfoldername/brewid`
|
||||
(especially since the route could be parsed by totally discarding the
|
||||
folder-path middle).
|
||||
|
||||
|
||||
Dumb folders could be inferred from an array of strings in a code
|
||||
fence in each brew - unless we want to make it easy for users to
|
||||
rename/move folders (likely), and use a picker UI instead of “type the
|
||||
path string” UI (also likely). Would also support creating empty
|
||||
folders.
|
||||
|
||||
[RESOLVED: separate mongo entity, folder object contains array of brewids ]
|
||||
|
||||
|
||||
|
||||
|
||||
SMART FOLDERS
|
||||
|
||||
What smart folders are is a folder that instead of having a static set
|
||||
of items that only changes when items are added/removed is a query
|
||||
that calls for documents that meet criteria.
|
||||
|
||||
On smart folders, would we want criteria other than just tags?
|
||||
Probably not for v0.1 of course, but eventually .. things like smart
|
||||
folders for "edited recently", "viewed recently", or "most popular
|
||||
brews"?
|
||||
|
||||
FWIW the idea of smart folders based off tags was going to be
|
||||
implemented after we got user settings set up -- that way you'd only
|
||||
see folders you created
|
||||
|
||||
We still need dumb folders before/contemporaneous with tags, to avoid
|
||||
tag-misused-as-folder behaviour. (Assuming tags will become public
|
||||
facing in various ways).
|
||||
|
||||
I think that overall smart folders would likely not be able to do more
|
||||
than a query URL but it would give a nice UI. The only advantage it
|
||||
might have is being able to nest it. So a dumb folder that holds smart
|
||||
folders, etc. Its just a UI to hold queries in the end though.
|
||||
|
||||
I think the easiest way to make them useful would be to allow them to
|
||||
hold folders in addition to a query. So you could put static items in
|
||||
a smart folder so long as they were inside a dumb folder.
|
||||
|
||||
My personal desire for smart folders is the ability to group homebrews
|
||||
simply. Having a folder for "forest" and a folder for "monsters" and
|
||||
making a dryad statblock and it automatically goes into each when
|
||||
given those tags. Or for instance making homebrew and tagging it with
|
||||
everything relevant but also "campaign X" and having it go to the
|
||||
campaign folder that the players have access to, even though it was
|
||||
created in a different folder originally.
|
||||
|
||||
|
||||
Smart folders could simply be dumb-folders with non-blank
|
||||
smart-criteria. That way not only can the smart folder be placed
|
||||
inside another folder (dumb or smart), but could also have other items
|
||||
(brews, folders) placed within it.
|
||||
|
||||
|
||||
|
||||
WHAT COMPLEXITY OF QUERY?
|
||||
|
||||
> (tag1 AND tag2) OR (tag3 AND tag1 AND tag4) NOT (tag5 OR tag6)
|
||||
|
||||
We could likely get away with a simple structure of an array of
|
||||
queries, each query being executed in order and compiled into one
|
||||
collection. The simplest version would be
|
||||
|
||||
[
|
||||
[tag1, tag2, tag3],
|
||||
[tag6, tag7]
|
||||
]
|
||||
|
||||
.. but lets look ahead a little bit and make that more explicit, like this..
|
||||
|
||||
[
|
||||
{ "and": [tag1, tag2, tag3] },
|
||||
{ "and": [tag6, tag7] }
|
||||
]
|
||||
|
||||
.. so we could later extend that to this..
|
||||
|
||||
[
|
||||
{ "and": [tag1, tag2, tag3], "not": [tag4, tag5]}, // or ..
|
||||
{ "and": [tag6, tag7] }, // or ..
|
||||
{ "and": [tag8]}, //
|
||||
{ "omit": [tag9, tag10] }, //
|
||||
{ "omit": [tag11] }
|
||||
]
|
||||
|
||||
But that is getting way ahead of what would be needed. Probably ever.
|
||||
|
||||
And also doesn't even support non-tag criteria. /sigh.
|
||||
|
||||
|
||||
|
||||
|
||||
FOLDER HIERARCHY
|
||||
|
||||
Folders will have a `parent-folder-id` property. That way a simple
|
||||
nesting hierarchy can be established, and we don't have to worry about
|
||||
loops. A blank `parent-folder-id` just means it is in the root (i.e.
|
||||
userpage).
|
||||
|
||||
|
||||
|
||||
USER FACING URLS?
|
||||
|
||||
> Ah and at that point we'd need Folders to exist as a whole separate
|
||||
Mongo object that has relations back to brews, so we can use object
|
||||
ids as urls instead of folder names
|
||||
|
||||
Object ids instead of folder names as user-facing UI ? hrmm
|
||||
|
||||
Would be useful internally to avoid breaking links when things get
|
||||
renamed
|
||||
|
||||
But I do like being able to rattle off “/users/erics/friday-game” in a
|
||||
socmed chat to a new player.
|
||||
|
||||
That's also fair -- and for that we could get into published folders
|
||||
vs unpublished ones if we wanted
|
||||
|
||||
URLs being object ids would also allow you to share them more
|
||||
privately so people don't just url spam until they find a valid folder
|
||||
|
||||
|
||||
|
||||
|
||||
PASSWORD PROTECTED FOLDERS
|
||||
|
||||
> object ids would also allow you to share them more privately so
|
||||
> people don't just url spam until they find a valid folder
|
||||
|
||||
This is a difficult problem. We want users to share a folder, but only
|
||||
to a limited audience, most/many of which won’t present any
|
||||
credentials on request. An obfuscated mumble-token does work for that,
|
||||
but does require sharing that mumble-token instead of the friendly
|
||||
name.
|
||||
|
||||
Another method might be basic auth on the folder .. share the friendly
|
||||
url and the password and your anon buddies can view. Others guessing
|
||||
the friendly url hit the gate, do not pass go.
|
||||
|
||||
|
||||
Maybe do something like Google sharing URLs!? Generate a "token" that
|
||||
is passed as a query parameter and lasts until it is revoked -- if the
|
||||
token isn't present and valid then you can't access the folder
|
||||
|
||||
Hmm .. sociologically I like the having the "token" be named a
|
||||
"password". Not only has it the tech features, it also communicates
|
||||
“this is a private space”.
|
||||
|
||||
|
||||
Was almost about to suggest three states: folders anyone can view with
|
||||
the url, password required, and folders only I can view. Yeah nah,
|
||||
this can be done with just a password field: no password, password
|
||||
shared, password not shared. Problem solved.
|
||||
|
||||
Side note: an author should not be prompted for the password of a
|
||||
password protected folder if it is a folder they created.
|
||||
|
||||
|
||||
Minor issue of leakage of existence tho (password prompt vs 404).
|
||||
People will know you have a folder named "My Naughty Brews", there
|
||||
would be no plausible deniability. We could always force the password
|
||||
to be on a query param instead of in the browser window.
|
||||
|
||||
So `/../folder` → 404, but `/../folder?p=secret` → access?
|
||||
And `/../folder?p=wrong_secret` would also be 404
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
TAGS UI:
|
||||
|
||||
> I assume only the OG author can add and remove authors?
|
||||
|
||||
> I assume only the OG author can add and remove tags?
|
||||
|
||||
So that's the thing -- we don't actually have a way to distinguish the
|
||||
original author vs added authors. So while this is obviously a huge
|
||||
improvement, it could still be a problem if someone malicious was
|
||||
given edit access
|
||||
|
||||
Secondarily, only letting `author[0]` edit authors would be nice but
|
||||
at least preventing removal of `author[0]` would be ideal.
|
||||
|
||||
Hmm. Well I would like to at least see `author[0]` never being able to
|
||||
be removed if nothing else. It would be dumb if someone could remove
|
||||
your perms after you shared it…
|
||||
|
||||
Eventually, this might be managed via a `owningAuthor` field on the brew.
|
||||
|
||||
The existence of an `originalAuthor` field, more properly known as
|
||||
`owningAuthor` field, would imply the existence of a `transfer
|
||||
ownership` UI.
|
||||
|
||||
And raises questions about what happens with google-drive brews when
|
||||
the owner changes.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DO TAGS *AFTER* FOLDERS
|
||||
|
||||
Hmm .. we’re gonna have to hold off on brew tags until we also get
|
||||
user folders implemented .. because users *will() use tags as
|
||||
folder-proxies, and I don’t want to see a folder magically appear
|
||||
named “dumb shit I’ll get to later” (because of an added author adding
|
||||
a tag). Especially if I have that brew marked as Published.
|
||||
|
||||
FWIW the idea of smart folders based off tags was going to be
|
||||
implemented after we got user settings set up -- that way you'd only
|
||||
see folders you created.
|
||||
|
||||
|
||||
|
||||
TAGS BY INCREMENTS
|
||||
|
||||
I think the best plan for tags to start is just an incremental release
|
||||
where we release the ability to add tags, they show up, and you can
|
||||
filter by them
|
||||
|
||||
|
||||
|
||||
FOLDERS AS SPECIAL CASE OF TAGS?
|
||||
|
||||
> Those are just two separate tagging mechanisms. You could have a url
|
||||
route strategy which displays them differently, but I'm not sure why
|
||||
they'd have to be implemented as entirely different systems. It seems
|
||||
redundant. What I'm saying is that you can implement folders using
|
||||
whatever framework you come up with for tagging files. They don't have
|
||||
to internally be two systems.
|
||||
|
||||
Now, in theory, both types of folders (dumb, smart) could be done with
|
||||
tags. A dumb folder would be "show all documents with the tag (read:
|
||||
folder ID) 'folder:j12h3j2ebjy'", and a smart folder would be "show
|
||||
all documents that are tagged as a monster and made by jeddai". Adding
|
||||
a document to a dumb folder would add the folder tag. Showing the tags
|
||||
that dumb folders use would be a suboptimal user experience because I
|
||||
imagine that a folder ID would be a UUID or something similar, but
|
||||
that is a way that could do both.
|
||||
|
||||
|
||||
On the other hand, it would be more convenient to store a list of
|
||||
brewids into a folder object, instead of folderid (or list of
|
||||
folderids) into a brew object. A) If a folder is deleted, it would
|
||||
entail deleting one folder object (vs updating multiple brew objects
|
||||
to suit), and B) things get messy when different users can and will
|
||||
put the one brew into each of their own folders (folders are user
|
||||
centric objects).
|
||||
|
||||
|
||||
|
||||
PUBLIC VS PRIVATE TAGS
|
||||
|
||||
> All public tags are actually "public:{tag}" and the tag search only
|
||||
looks for ones that match 'public:{tag}'. Or maybe the reverse of
|
||||
that, it ignores tags that have 'private:{tag}'
|
||||
|
||||
However, “private:{tag}” clashes with an idea of tag categories. Like
|
||||
“system:PF2” and “genre:Fantasy”. Look at GMB high-level categories of
|
||||
tags for practical examples.
|
||||
|
||||
That said, perhaps an attribute could be added to tags, like
|
||||
"genre:erotic-punk{private}".
|
||||
|
||||
This is all orthogonal to whether a brew is published or not. This is
|
||||
about whether a published brew would have all the author tags made
|
||||
visible on that brew.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SMART FOLDERS VS SERVER PERFORMANCE
|
||||
|
||||
> Bogging down the server with complex and large queries is not exactly
|
||||
optimal so I imagined you guys would find some reasonable limit that
|
||||
gave it minor flexibility without punishing your usage
|
||||
|
||||
The full list of a user's brews would be retrieved in one call on the
|
||||
back end, and then they are processed and displayed on the front end
|
||||
via react. So, at worst, it only slows down the client not the server.
|
||||
All the same, I'd prefer simpler too.
|
||||
|
||||
|
||||
|
||||
> Hmm .. if a brew is put into a dumb folder, we'd remove it from the
|
||||
top level view. But what happens to brews that appear in smart
|
||||
folders [according to smart criteria]?
|
||||
|
||||
Smart folders would likely be "illegal locations" to store a brew,
|
||||
they merely query them from other locations. So it would just be
|
||||
wherever it was created, root or dumb folder, but also the smart
|
||||
folder.
|
||||
|
||||
|
||||
|
||||
Wait .. if someone was thinking they'd use smart folders to tidy up
|
||||
their userpage, then they'd be disappointed. They'd have to manually
|
||||
shunt all the brews they want not visible on the base userpage into a
|
||||
dumb folder.
|
||||
|
||||
Would smart folders scan all brews, including brews that have been
|
||||
shunted into either sub-folders or even into sibling folders? For
|
||||
example, I create a dumb folder for "My Traveller™ game", and toss all
|
||||
those brews in there. If I then have a smart folder inside that folder
|
||||
for tag=monster, I probably wouldn't want monsters from "My Pokemon™
|
||||
game" to appear there, right?
|
||||
|
||||
Maybe that could be a filter? Or even just a checkmark? Like, "search
|
||||
sub folders" and "search sibling folders" would be options? because I
|
||||
can definitely imagine having a single monster in multiple folders. I
|
||||
can't imagine why a smart folder would be a valid location for a brew
|
||||
to live permanently though, because part of the reason to have a smart
|
||||
folder would be to keep the same brew in multiple locations without
|
||||
having to duplicate it. And it makes no sense to have a folder with no
|
||||
static values to be where a brew "lives" if it can also be seen in
|
||||
other locations?
|
||||
|
||||
Agree, smart folders are lenses, not locations.
|
||||
|
||||
Rename "folders" as being lenses? Does a nested hierarchy of lenses
|
||||
make sense? (Isn't that a microscope?)
|
||||
|
||||
|
||||
I know that from a database perspective what I am talking about is
|
||||
more like a view. But I think for the average person that "smart
|
||||
folder" will more clearly express what it is than lense or view. I
|
||||
guess "filter" is fairly ubiquitous if we are looking for a new name.
|
||||
|
||||
We're using "filter" to refer to the free-form filtering widget at the
|
||||
top of the userpage. Hmm, no wait, we're also using "search" for that.
|
||||
I think "filter" as a term is only used in the backend or in a css
|
||||
class. Time for a tiny refactor to tidy up nomenclature.
|
||||
|
||||
People filter their emails and excel sheets.
|
||||
|
||||
True, "search" as a UI is usually thought of as a
|
||||
command-and-response, while "filter" is more a live and dynamic update
|
||||
of the view.
|
||||
|
||||
|
||||
|
||||
|
||||
A BREW IN EVERY PORT
|
||||
|
||||
We're planning on allowing a specific brew to be placed into multiple
|
||||
dumb folders. Think of them as symlinks.
|
||||
|
||||
So just a desktop shortcut but for brews? xD
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
VERY EARLY TAG DISCUSSIONS:
|
||||
|
||||
|
||||
It would be cool to be able to share a whole Folder at a time, rather
|
||||
than individual brews, too.
|
||||
|
||||
It made me think it might be possible to use a Route like
|
||||
/user/:id/:folder_name to access another user's brews that are both
|
||||
Published and tagged with 'folder:{folder_name}'. Of course, that
|
||||
needs both tagging brews and brew filtering by tags to be in place and
|
||||
functional first, which at this point is are likely extensions to
|
||||
follow on from the current brew sorting work.
|
||||
|
||||
So the end user would only need to navigate to
|
||||
homebrewery.naturalcrit.com/user/Gazook89/my_homebrew_campaign to see
|
||||
all of that published material.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
If we have "folders" which act as views of curated collections of
|
||||
brews, and have urls like `/user/name/foldername` or
|
||||
`/user/name/foldername/nestedfoldername` .. and requesting that url
|
||||
reveals the folder contents .. the brews listed there wouldn't include
|
||||
the folder path in their respect URIs, right?
|
||||
|
||||
They'd be things like `/share/brewid` or `/edit/brewid`. Right?
|
||||
|
||||
Given the brewids are becoming perma-identifiers, while folder names
|
||||
could come and go and mutate, and possibly even a brew could be placed
|
||||
into multiple folders of one user, and certainly a multi-author brew
|
||||
could be placed into multiple author folders (since folders are owned
|
||||
and managed as a user thing, not a brew thing) .. it would be making a
|
||||
lot of hard work for us to try supporting
|
||||
/share/foldername/nestedfoldername/brewid (especially since the route
|
||||
could be parsed by totally discarding the folder-path middle).
|
||||
|
||||
|
||||
Yah. Punt the question of what do we do if
|
||||
`/user/name/foldername/oops-this-was-renamed/brewid` is clicked. Will
|
||||
that be `404 NOT FOUND`, or `300 MULTIPLE CHOICES` (because it could
|
||||
be in multiple folders) or `301 MOVED PERMANENTLY` or `302 FOUND` or
|
||||
`418 I'M A TEAPOT`?
|
||||
|
||||
It should likely be `400 BAD REQUEST` (because we simply don't support
|
||||
routes-to-brews).
|
||||
|
||||
Also, is this a URI to a brew, or to a strangely named folder:
|
||||
`/user/name/folder/nested/Z2yOC6xNMpKc`. (The latter, of course, and
|
||||
we shouldn't be asking the server to guess).
|
||||
|
||||
|
||||
|
||||
|
||||
On the folder subject, my thinking was less folder hierarchy and more
|
||||
groups. Actually "group" might be a better term, as it doesn't imply a
|
||||
multi-layer parent-child hierarchy in the way that "folder" does. So
|
||||
the hypothetical functionality is that user's Brews can be filtered to
|
||||
a group of brews defined by the tag "group:group_name", perhaps
|
||||
accessible via a Route (e.g. /user/:id/:group_name). This should be a
|
||||
fairly natural extension to filtering Brews by title.
|
||||
|
||||
So my progression plan for this project is roughly [x] Sorting => [ ]
|
||||
Filtering by Title => [ ] Filtering by System => [ ] Filtering by Tag
|
||||
=> [ ] Custom User tags
|
||||
|
||||
You know, in between and around the other stuff I'm already doing and
|
||||
need to get back to first.
|
||||
|
||||
|
||||
|
||||
On filtering: there are two different features to be considered
|
||||
|
||||
a shareable permalink that shows only the matching brews a UI widget
|
||||
that facilitates live filtering of the account page I have a
|
||||
javascript-injection stub that works for #2, although it can also be
|
||||
done via react.
|
||||
|
||||
On (1), a wrinkle might be not allowing escalation exposure. That is,
|
||||
if I give you /user/erics/fridaygame, you certainly could escape to
|
||||
/user/erics (of course), but I might wantsundaygame and fridaygame to
|
||||
not be visible from there (while still exposing lore).
|
||||
|
||||
|
||||
I think groups could have a similar "published" status that hides them
|
||||
if you are not logged in.
|
||||
|
||||
|
||||
|
||||
In my thinking, group is a special tag. One brew can have multiple
|
||||
group tags, but the filter term 'group:A' will only find brews tagged
|
||||
with 'group:A'. Custom user tags can use [A-Za-z0-9], all symbols
|
||||
reserved for future use, so a tag containing a colon (e.g.
|
||||
'group:erics') can only be applied through the UI. The structure
|
||||
itself is still flat, so in this thought experiment, ALL brews are
|
||||
still visible at /user/erics (to the user, and if published, the
|
||||
public) but are automatically filtered to just the group:fridaygame at
|
||||
/user/erics/fridaygame.
|
||||
|
||||
It's not impossible to imagine a publish_in_group:true tag that makes
|
||||
it visible to the public (like PUBLISHED) but only when viewed via the
|
||||
group.
|
||||
|
||||
A better version being publish_in_group:fridaygame, to specify which
|
||||
group to publish it in, rather than just publishing it in all groups
|
||||
it's attached to.
|
||||
|
||||
If I put a brew in a group, I would want it to be visible when that
|
||||
group is shared. I can't think of a situation for putting a brew in a
|
||||
group but the brew wouldn't be published. (Unless it's an unpublished
|
||||
brew?)
|
||||
|
||||
So it comes down to whether the tag/group/ui (e.g. fridaygame) is
|
||||
exposed on the home page. Someone could be given
|
||||
/user/erics/fridaygame, escalate to /user/erics, see some interesting
|
||||
tags there of published brews, and thus also visit /user/erics/lore to
|
||||
see a list of brews with that tag (because I've not hidden that tag).
|
||||
|
||||
The published/unpublished status of a brew should still be respected
|
||||
though. I might have a "Halloween Rules" brew I put into :fridaygame
|
||||
and :sundaygame and :mondaygame ahead of time, and only push to
|
||||
publish mid October. Similarly, if I un-publish "House Rules" then I'd
|
||||
want that to not be listed in any group, even if still tagged.
|
||||
|
||||
Yes, unpublished brews will never be visible to users who are not
|
||||
listed as an author.
|
||||
|
||||
Not visible in a listing. They can still be shared and visited.
|
||||
|
||||
On syntax of tags .. I think I wrote something on that at some point,
|
||||
something like <grouping>:<value>, where <grouping> could be preloaded
|
||||
with {meta, type, system, version} and associated tags (e.g.
|
||||
system:D&D, version:2e, type:lore; or system:Pathfinder,
|
||||
type:adventure; etc). Hmm .. maybe not separate system and version.
|
||||
We'd still want to allow multiple tags of the same grouping, such as
|
||||
[meta:lore, meta:feats, meta:monster] or even [system:d&d5e,
|
||||
system:pathfinder2e]. There would be some nonsense or unlikely
|
||||
combinations, but we shouldn't preclude those possibilities
|
||||
|
||||
People are bound to have Brews that encompass Lore, Feats, Classes,
|
||||
etc. It's not hard to envisage a brew for a Homebrew race of
|
||||
unpleasant-goose-humanoids, for example, that has custom Racial Feats
|
||||
(Fly, Honk) and adds homebrew twists to existing Classes (Barbarian of
|
||||
the Golden Bell, White Feather Rogue) or creates new ones entirely.
|
||||
|
||||
Also possible someone might author a brew tagged [system:d&d2e,
|
||||
meta:feats] or even [system:d&d5e, meta:nwp].
|
||||
|
||||
|
||||
And of course just because we pre-define meta, system (or game), and
|
||||
type, that doesn't mean a user couldn't mint their own grouping terms
|
||||
and tags (e.g. tone:silly).
|
||||
|
||||
Ugh .. does this mean we might also want to filter by grouping? "Show
|
||||
me all brews tagged with tone:".
|
||||
|
||||
Also, on the system vs version question
|
||||
.. sub-tags that qualify the group:tag?
|
||||
e.g. `system:d&d:2e``, `tone:silly:very``.
|
||||
|
||||
(the Library Sciences part of my backstory is emerging)
|
||||
|
||||
Getting ahead of ourselves here though. We should perhaps reserve `:`
|
||||
as a special character in tag names.
|
||||
|
||||
It certainly should be possible for a user to enter an ungrouped tag:
|
||||
`fridaygame``, `session_zero``, `storytime`.
|
||||
|
||||
My thinking is that only tags that follow the form `group:name` qualify
|
||||
as groupings and would be accessible via ``/user/:id/:group` However it
|
||||
should still be possible to filter by custom tags like tone-silly
|
||||
|
||||
[NB. the idea of implementing folders via tags i.e. `group:` was later
|
||||
abandoned. There are useful and helpful things we can do if folders
|
||||
are maintained as separate objects.]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user