Open markcmiller86 opened 3 years ago
So, after a couple of hours of search for what I thought would be controls on Sphinx/RTD searching features, I discovered that there are special syntaxes to perform partial match searches. I plan on adding a top-level link to this search info so that user's can easily find it.
I've tried testing the special syntaxes referenced in previous comment. There are some things I honestly cannot confirm are working as advertised. I've filed an issue ticket
Would like to again state my case for keeping quickrecipes
: it is good to have simple examples of things you may not know how to search for.
Yes, if you know exactly what you are looking for, a better search engine that finds your example in functions
serves that purpose.
However, I often learn unexpected things by perusing simple examples like found in quickrecipes
. Something I wasn't necessarily searching for, but useful nonetheless. I would never peruse something so lengthy as our functions
documentation. I really only look at it if I know exactly what I need. In light of that, I am opposed to reducing content in quickrecipes
.
Would like to again state my case for keeping
quickrecipes
: it is good to have simple examples of things you may not know how to search for.
I wanna keep the content (that isn't duplicating content elsewhere). I am advocating for a different (IMHO better) way to handle it.
Yes, if you know exactly what you are looking for, a better search engine that finds your example in
functions
serves that purpose.
Both of the above statements allude to the impact of search in the decision to structure the docs as they are. That all tells me the root requirement is improved search...not introducing a new place to duplicate content so a usere has more chances of stubmling into it.
However, I often learn unexpected things by perusing simple examples like found in
quickrecipes
. Something I wasn't necessarily searching for, but useful nonetheless. I would never peruse something so lengthy as ourfunctions
documentation. I really only look at it if I know exactly what I need. In light of that, I am opposed to reducing content inquickrecipes
IMHO...the above perspectives suggest some key issues to be solved (did you disagree with any of the requirements above) with the way our CLI docs are structured and that some changes are needed. While the existence of quickrecipes.rst
may address some, I think it introduces other issues and I think there is a better solution.
Does anyone on @visit-dav/visit-developers know if/how we host our docs on closed systems? Do we serve them from a URL of some kind? Do users just browse them via file://
protocol? Have we decided or still working on this? The answer impacts whether a client-side search is more useful way to go.
We don’t host them anywhere on the closed systems.
We don’t host them anywhere on the closed systems.
Hmm...but we still enable users to get to them via GUI Help
correct? I mean, that now launches a browser on the manuals, correct?
Yes, they are in the GUI help and now that launches a browser on the manuals.
Yes, they are in the GUI help and now that launches a browser on the manuals.
Just curious...do we know how search works under those conditions (e.g. file://
browsing) ? I am guessing it doesn't work at all or maybe very poorly but don't know for sure. There appears to be some attempt at providing some kind of client-side search but when I try it on static build it just enters an endless Searching... mode.
I do think search works, there may be a step as part of the build that generates an index that is used?
That said, I personally haven't been very successful with sphinx searching, and I rely on the outline and hunt around. Even for large docs. It can't read your mind (or restated: it doesn't have feedback to discover the most useful common searches) like google.
I don't think the search issue is one we can really make a dent in, or solve by training our users. They aren't going to rely on search if they have a similar experience to mine.
I understand the maintenance burden related to duplication, but several projects provide quick recipes style docs to help get folks going with common use cases. It also provides hope and an expectation that a user should be able to wield these snippets without much mental anguish.
I guess I am not sure what the proposal is, is it to pack quick recipes style info into another place and extract it magically?
As some one who works on multiple projects - the more visit specific sphinx magic exists, the higher the context switching cost for me to contribute is.
Types of CLI Documentation
functions.rst
help()
when running Python interpreter and in on-line manualhelp()
output in Python interpreter nor cause issues withhelp()
output eitherquickrecipes.rst
UNCLASSIFIED
banner.visit --diff
Requirements for CLI Documentation
We also have some requirements for the CLI documentation (only some of which -- those checked -- are met by current approach):
legend
-- or regex thereof -- turns upGetAnnotationObject()
) in Python interpreter, on-line and stand-alonefunctions.rst
orquickrecipes.rst
or elsewhere)help()
from within the interpreterObservations of Current Approach
quickrecipes.rst
is that IMHO ~90% of it duplicates content already infunctions.rst
. There may be slight variations but not IMHO significant. I am inclined to believe that the rationale for a majority of this duplication was to satisfy one of the other requirements, likely ease of searching. Unfortunately, with the content inquickrecipes.rst
, that satisfies only an on-line search and not a search from Python interpreter. For the latter, we really need to have all that documentation in the one place chosen to source both on-line and interpreter docs (e.g.functions.rst
) and to add some additional CLI methods likevisit_apropos
to make it easily findable.quickrecipes.rst
content is unique have IMHO mostly to do with sub-object classes in the CLI (e.g.legend
objects returned fromGetAnnotationObject()
, SIL objects, Query return objects -- though that is NOT actually documented there). OTOH, documentation of a given CLI method essentially just re-describes whats already infunctions.rst
. Why aren't these sub-objects documented inattributes.rst
where all the attribute objects are documented?GetQueryOutput()
do all developers understand where that goes?help()
in python interp. pour out all the documentation we have on that method including stuff we are inclined to associate with a quick recipe (see below for an example of just that)?Some steps forward
.rst
files so that existing search funtionality behaves as expected or something else. Searching there forlegend
for example should have the effect of returning results which includeGetAnnotationObject()
. In fact, if the code snipit associated with that function infunctions.rst
had included a few lines demonstrating legends, indeed an on-line (or interpreter) search would have returned that part of the CLI manual.GetAnnot
. I would expect a lot of hits. Instead, I get nothing. I then triedgetannotationobject
. That also fails to find anything. If I typeGetAnnotationObject
, then I get a couple of hits. This means I have to know what I am searching for including the correct case before I can find it. We need to discover what Sphinx and/or RTD knobs to fiddle with to do partial word and case-insensitive searches.functions.rst
andquickrecipes.rst
functions_to_method_doc.py
to produce docstrings that conform to Python standards as well as address #5006 and #5005quickrecipes.rst
by avoiding duplication offunctions.rst
and document there only stuff that doesn't have a natural/strong association with a specific CLI function or is a known common usage pattern worth documenting in its own right.attributes.rst
but if we renamed thisobjects.rst
then it could include documentation on all attribute objects and also all CLI method sub-objects like legends, SILs, query outputs, etc. It would be natural there to talk about alegends
object. In fact, that object is aLegendAttributeObject
. Turns out that isn't documented inattributes.rst
. In fact, I found 33 missing objects and added them to #3602Example of
help(GetAnnotationObject)
includingquickrecipe.rst
content