clojure-grimoire / grimoire

Community documentation of Clojure
http://conj.io
159 stars 41 forks source link

Bring back live cheatsheet search behaviour #231

Open j0ni opened 8 years ago

j0ni commented 8 years ago

One of my favourite Grimoire features was the way the cheatsheet would shrink to include only matching terms. This seems to have been deprecated in favour of the live match selection dropdown in the search bar. Could that original behaviour be re-introduced without sacrificing either the new front page design or the dropdown match list?

A side note: if #230 is implemented, I think the behaviour I'm talking about would be even more sorely missed, as there would be no way of finding the term on the front page other than a full visual scan.

arrdem commented 8 years ago

Hum. This is at least somewhat surprising to me since the whole idea with the new live search behavior is that it supersets the previous elimination search.

I'm not opposed to bringing back the old behavior or perhaps doing both, I guess I'd like to understand how you were used to using the previous version of the cheatsheet and how the new edition fails.

j0ni commented 8 years ago

My old use case was to start typing and as soon as I spotted what I was looking for, click on it.

The live completions list doesn't feel as comfortable to me - but the shrinking page felt great. But I'm not going to make an argument against it, because (a) it's an entirely subjective preference and (b) I often find myself in the minority about such things. However, there is one use case that might be persuasive: I would go looking for some kind of function, say, a collection predicate, without knowing what it might be called. I could type in something related, and I would end up having the box of related functions from the cheatsheet brought immediately to the fore. The related function might not have a similar name, but I'd have a route to related functions immediately.

If you re-bind C-f (or equivalent), the only similar path available to me on that page would then be gone. I could always just go over to the cheatsheet, but it's good to have a one-stop shop.

arrdem commented 8 years ago

Yeah. I agree that category search is definitely valuable, and that exploratory side of Grimoire is something I want to improve going forwards.

The primary goal of the live search box was to eliminate the case of knowing what you wanted (map, conj, update or what have you) and having to C-f or use the search box just to get a link to it. Going by the live search logging I've got going on, that role it seems to be filling pretty well.

From a strictly implementation perspective, it should be possible to have both search behaviors, or at least to employ the old cheatsheet restricting search when there are no results found. I'll look into adding that behavior back in when I work on Grimoire next, probably later this week.

j0ni commented 8 years ago

Thanks @arrdem - and thanks for the excellent resource :+1:

arrdem commented 8 years ago

Sure! I'm being well funded for it :stuck_out_tongue:.

j0ni commented 8 years ago

Hey, I'm responsible for just over 6% of your monthly income! Talk about leverage.

I'll up it to $5 because $50 is a whole other level.

arrdem commented 8 years ago

lmao. Thanks!

shofetim commented 8 years ago

I too find the new UI less than the old one, I hoped that the new version would grow on me, but so far I'm still wishing for the way it used to be.

Yeah. I agree that category search is definitely valuable, and that exploratory side of Grimoire is something I want to improve going forwards.

This is what I used grimoire for most. Start typing an English word that sounds like the right verb, see that ah, it isn't "empty?" that works on strings but rather "blank?" and on I go.

The primary goal of the live search box was to eliminate the case of knowing what you wanted (map, conj, update or what have you) and having to C-f or use the search box just to get a link to it.

If I already know what I want, but just need the docs, my editor's doc lookup is generally fastest. I've always used grimoire to explore.

daviddurand commented 8 years ago

I have to say that I'm with the others here. The cheatsheet format was what I really liked, and the dynamic filtering would get me into the region that I needed to search.

I had come to prefer this to all the other Clojure references. The new behavior is tailored to finding detail on something whose name I know. I usually come here because I often know, for instance, that I need a functional sequence operations, but can't remember the correct names or exact function repertoire off the bat. So a quick search to get into the right area of the cheatsheet is perfect.

The new organization is not so great for this either, though it does cover some information that was not so well served by the old page.

The old page might make sense an option that would serve the older use cases. The stats would tell you if one was much much preferred, or more likely, show that each has its fans. I will play with the new one, but for the moment, I'm going to have to go to other sources to find the information I want at this moment, which is sad.

arrdem commented 8 years ago

Just going by Google Analytics traffic numbers, I've actually seen about a 10% improvement in traffic over the last three days compared day over day to the prior two months. This is honestly surprising to me as since you three are here I was expecting to see traffic having tanked as well. Going by my logs of the new search feature, it looks like a significant majority of users are looking for something in particular and finding it better served with the new search behavior.

I'm totally willing to bring back the old filtering behavior as a fallback, but as I have exams Friday and Monday this isn't a priority for me right now. Sorry for the inconvenience, in the meantime Andy's cheatsheet still works just fine.

daviddurand commented 8 years ago

Certainly exams are more important. I will look forward to an update though...

I don't know that traffic says much though -- the new interface seems to do more fetches, and I at least have clicked around a lot more, trying to figure out what was going on...

Andy's sheet is great.

jafingerhut commented 8 years ago

I believe the old behavior has always been available here, including a choice of linking to ClojureDocs.org, or to Grimoire:

http://jafingerhut.github.io/

Click one of the 2 links in the top right cell of the table.

arrdem commented 8 years ago

I messed with this some tonight. After functionality testing the old cheatsheet, its elimination search operates strictly on link titles. As such, unless you're using the name of a known function to find related functions (possible, no user evidence for/against) the new autocomplete box offers exactly the same search results as the old search does, with faster access to the matching results.

I'll see if a different approach to a fallback search makes more sense.

j0ni commented 8 years ago

@arrdem you should be studying! :P

arrdem commented 8 years ago

Christ yes don't remind me.

daviddurand commented 8 years ago

I just examined the old interface, and you are right that the search targets are always functions. What was so useful (to me at least) is that the groups of functions were highlighted along with the matches, and non-matching groups So it was possible to type a function or keyword from a function name, and see it's relatives at a glance. So knowing that I want a collection combinator whose name I can't remember, I can type map, or reduce, and see similar functions that I expect in the sequences group, but also be reminded of the map-specific functions, etc.

Typing "reduce", for instance, shows me the reduce-kv function instantly, but the new interface doesn't remind me that it applies both the maps and vectors, nor does it let me scan the filtered function groups, giving me a quick view of related functions.

I often type "map" to get a list of sequence combinators to remember if I'm forgetting one that will meet my need of the instant.