-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Navigation for legacy documentation #5
Comments
Hi @demurgos , I like your objectives listed in #4 ! Let me add two objectives that lead me to the navigation proposal below:
With both objectives in mind I wrote the Getting Started page. It starts with two examples to give a quick picture of the lib and then helps the user to decide which flavor to use – callbacks, promises, or streams. IMO this is the most important decision for a new user to make. In regards to the decision whether to use legacy or next I would assume that the next version will be recommended and no reason will exist to use legacy other than being stuck with the old version in an old project. So here I would rather write the whole docs for legacy right now. And later – once next becomes available – branch the whole book so people may still access the legacy docs. In the proposal below I assume you agree. Otherwise I will update it. As you can see on the Getting Started page I already added some links to the end of each "flavor" section that shall allow the user to jump to the parts of the book that are relevant given the chosen flavor – without having to read the whole rest of the book. So combining your navigation above with the additional objectives I would propose:
Since we always have the three flavors to manage, I have one suggestion for the code examples: There is a GitBook plugin "codetabs" that would allow us to provide the code snippets for all flavors: We would use "Callbacks", "Promises", "Streams" and always start with providing the callbacks example. I'll add the promises examples and whenever it makes sense we would lazily add the streams example. So it is not much extra work but allows us to easily have one navigation structure for all flavors combined. Big question now before we discuss the details: Should the navigation structure omit the legacy/next distinction and we branch the whole book when next becomes available or should we design legacy/next into the navigation structure? |
Hi,
After some reflection, I agree with you: this is the best way to keep it clear: this should only document the legacy version. So to answer your big question: we should omit the distinction until |
We need to agree on an initial structure for the navigation/summary of the website, the goal is to at least approve the part relevant for the legacy documentation in order to assign separate tasks more effectively.
Previous propositions
In february, Update site with pending information about Request #1 proposed the following structure for pending informations about Request:
Implicitly, it documents a single version of Request (when we have to also prepare some place for the next version). This is a good structure in my opinion. Use cases could be expanded to include the ones detailed in the library's
README.md
(forms, proxies, authentication, etc.).In Legacy documentation #3, I started to import the legacy API from the library's repo to the website. It was for me the occasion to to reflect on the navigation with a bigger focus on the API. My idea is to document every publicly accessible object in its own page. I differentiated three kinds of objects:
"class" and "interface" might have a disputable meaning in the context of JavaScript, but I feel that it express well the "abstract" semantics of those objects (and the semantics seem more important than the actual implementation details such as prototypal inheritance).
Given that, here is a screenshot of the summary I use in the meantime to work on the API:
The API part itself is not structured because I couldn't find any satisfying way to make it fit into the "book summary" structure (hierarchy and ordered elements), but it seems to be good enough thanks to the relatively small number of elements.
Proposition
If we try to combine the best of those summaries, here is what I propose:
request.defaults(...)
Request
class. This one is tricky, looks like the available attributes evolve in the time (but we'll deal with it in another issue).request.defaults()
and then call one of the main functions with an options object.Conclusion
This is a pretty lengthy issue but we need to tackle this pretty early so we get a good view of what we actually want. It would be nice to get some feedback.
The text was updated successfully, but these errors were encountered: