-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[docs] Adopt four-quadrant documentation system #5718
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for kicking off this effort. The changes are generally LGTM. Perhaps a few points for discussion, we don't necessarily need to do it in this PR:
- Key concepts
- I kind of like the "Key concepts" item in the sidebar in a way to indicate those are the first 5-6 concepts the users need to know. :) In the todo tutorial, there's some descriptions of the those concepts which I think are sufficient for this purpose.
- "Behind the scene" and "Usage Scenario"
- it's a long list under those sections. Not sure if there's a better way to group them in the sidebar, or maybe as long as we categorize them in the parent page would be good.
Thanks for taking the first step!
👍 How I review this PR is to see if it makes sense to add 'how to' to the items under usage scenarios and add ' what is' to the items under Behind the scenes. Most of them look good to me except the Another concern is the |
Would it be a good chance to move those connector-related tutorials to the Tutorial umbrella? |
List More useful info in the root level menu?inspired by #5113 (comment) (I don't find a good candidate in the root level menu to unfold: "behind the scene" has a long list, others don't list sub-sections in a certain order. But the items in "Inside a LoopBack Application" is close to what I am looking for. ) Here is a list of the most basic concepts I could think of that makes at least REST API developers understand what this framework offers: App --> Model --> Datasource --> Repository --> Controller --> API Explorer --> Relation --> Security --> Deploy Maybe we can refactor "Inside a LoopBack Application" to display ^ in the menu? Highlight "REST framework" and "More powerful beyond REST"And I also like @hacksparrow 's point in #5551, agree to make "REST framework" and "More powerful beyond REST" obvious enough. Maybe in the overview section, we can have 2 sub sections:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏 Nice start!! I like the new structure, post two suggestions in comment #5718 (comment), in terms of giving readers a more clear impression of what our framework offers without looking into details.
sorry joined the doc discuss late :p hope I catched up all the discussions and the suggestions are not off topic.
docs/site/Behind-the-scene.md
Outdated
@@ -1,22 +1,75 @@ | |||
--- | |||
lang: en | |||
title: 'Components' | |||
keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI | |||
title: 'Behind the scene' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A thought: I see frameworks like angular uses word "Techniques" , I think it describes the same concept and concise as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think Angular is a good source of inspiration. When I look at their docs for Animation technique, I see a mix of tutorials, explanations and how-to guides. In my PR, I am trying to move away from that style.
Maybe "Fundamentals" would be a better term to borrow from them, but then our "Behind the scenes" content goes far beyond fundamental concepts.
Yes, "Key Concepts" was like a reliable go-to help for the confused souls. Clubbing everything under "Behind the Scenes" is taking away the anchor and adding to the confusion. Also, I am not very convinced by the name "Behind the Scenes". |
Thank you for the feedback!
The page Inside a LoopBack Application is explaining the first 5-6 concepts the users need to known. I found the content in "Inside a LoopBack application" as well structured for new LoopBack users and don't feel the need to create dedicated "key concepts" entries in the left sidebar. Can we perhaps find a better name than "Inside a LoopBack Application", one that will make it easier for new users to understand what content to expect in that page and also that this is the page to read when they want to learn about the basic concepts?
I agree the list is too long. I'd like to introduce grouping based on functional areas/usage scenarios (e.g. "build REST API", "access data", "prepare for production", etc.), but let's do that in a follow-up issue, so that we can discuss which page belongs where and what other updates are needed as part of those changes.
I feel the GDPR page is a bit of an odd-ball. I think it would be better to rework that page to become a How-to guide, something like "Make your application GDPR compliant". WDYT? Such change would be out of scope of this PR though, but I can open a follow-up issue if we think this is something to make happen. BTW should we create a similar page for California Consumer Privacy Act considerations? Maybe rework the GDPR page into a broader page "Make your app compliant with privacy regulations"? Anyhow, in this PR, I'll simply follow your suggestion and list the current page after Change logs.
Good catch! I am going to open follow-up issues to reorganize existing content along "how-to" vs "what is" axis, but since "Using express middleware" is already written in how-to style, I'll move the page to "how-to" section in the sidebar.
Good point 👍 I'll keep this in mind when creating follow-up stories to untangle pages mixing different kinds of content.
Let's leave that out of scope of this PR please. I'll open a follow-up issue (or epic).
I see how it can be useful to be able to get an impression of what the framework does at high level. I am not convinced though that the sidebar is the right place for this kind of information. IMO, we should provide such overview on one of the introductory pages, e.g. "Inside a LoopBack Application" you mentioned or perhaps on the landing page (see Overview). I'll open a follow-up issue to continue this discussion and find a good solution.
Let's discuss this part in #5551 please, such changes should be easy to implement after my PR is landed. I understand the desire to have few key concepts listed in the sidebar under "Inside a LoopBack application". However, I am concerned that such arrangement could cause more harm than good. Consider the current situation, where we have "Key Concepts" and "Behind the scenes" sections - personally, I never know which concept (e.g. Binding vs Controller) belongs to which group and I have always to search both sections to find the docs. Here is how I see the user experience in my proposed sidebar:
I agree that we should have an easy way how to find the relevant content and that "Behind the Scenes" may not be the best name. However, I disagree that "Key Concepts" was a reliable go-to help, because some pages were nested under "Behind the Scenes" section and one had to remember where to find which page. In my proposal, I am solving this problem by bringing all explanations into the same category. I am happy to use a different name than "Behind the Scenes", do you @hacksparrow have any proposal for a better one? |
6d12a14
to
97c6f71
Compare
Rebased on top of the latest master and addressed review comments in 97c6f71. @agnes512 @jannyHou @dhmlau @hacksparrow @raymondfeng LGTY now? Do you have any opinion on git history - can I squash all commits into a single one, or is it better to keep the changes split into multiple commits? |
Not able to preview the site locally because of an error: Liquid Exception: Invalid syntax for include tag: content="A TypeScript limitation prevents mixins from overriding existing members of a base class. Hence the need for I have a success rate of around 50% with most Ruby-based tools. Does it still look like this? IMO, all top level menus should have contents inside them. In fact, "Getting Started" and "Inside a LoopBack Application" should probably go under "Overview".
"Fundamentals"? As @jannyHou mentioned. Some of the "Behind the scenes" contents ("Key Concepts") could be moved to "Overview". |
@hacksparrow, there's a missing closing |
@bajtos, I'm good to have this PR land as-is since we will be iterating on it. Regarding your comments:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. See my comments: #5718 (comment).
Regroup documentation page along the following quadrants: - Learning-oriented tutorials nested in "Tutorials" - Problem-oriented how-to guides nested in "Usage scenarios" - Understanding-oriented explanations nested in "Behind the scenes" - Information-oriented reference guides nested in "Reference guides" Remove "Key Concepts" from the sidebar, move the content of `Concepts.md` to `Behind-the-scene.md`. Move "Using components" entries to "Usage scenarios", remove "Using components" page altogether and move the relevant content to "Components" page in "Behind the scenes" section. Rename "Reference" to "Reference guides" Rearrange top sidebar entries, move tutorials higher up in the sidebar.
97c6f71
to
306bc89
Compare
I have different opinion here, see #5718 (comment)
To me, it's fine that some top-level menus don't have any nested content, FAQ is another example. @hacksparrow feel free to open a follow-up issue to continue this discussion and iterate on the sidebar structure.
I'll open a follow-up issue to continue the discussion about a better name for "Behind the scenes". I am against moving pages from "Behind the scenes" to other parts (like "Overview"), because it makes those pages more difficult to find for our users and makes it more difficult for us to decide where to put which page. The beauty of four-quadrant documentation system is in the simplicity: if a page is explaining concepts, then it belongs to "Behind the scenes".
Nice! I'll open a follow-up issue or PR to discuss this further. |
I have created the following follow-up issues & pull requests:
|
As the first step on a longer journey to rearrange & improve our docs as discussed in #5549, I am proposing to re-arrange the sections in our sidebar as follows:
Concepts.md
toBehind-the-scene.md
).Screenshot of the proposed sidebar:
I was not able to find any quick & easy way how to create an online preview of the new doc version, please run
npm docs:prepare && npm docs:start
to start preview locally on you computer.Please note I don't consider this as the ultimate final version, I am expecting us to iterate on the structure in the near future, as part of Documentation improvements 2020Q3 #5113.
Checklist
👉 Read and sign the CLA (Contributor License Agreement) 👈
npm test
passes on your machinepackages/cli
were updatedexamples/*
were updated👉 Check out how to submit a PR 👈