Documentation Structure Block Editor Handbook #48998
Replies: 13 comments 49 replies
-
Thanks for this feedback @tomdevisser. You're absolutely right that the handbook should be more progressive in nature and that it should provide a gentler learning curve. Perhaps the Introduction to Block Development course over on learn.wordpress.org could be adapted to fit into the handbook in some way. Either a modified version of the course could replace the existing Getting Started tutorial, or the existing tutorial could be extended to cover more of the ground that the course covers. Regarding the current structure of the handbook, it's loosely based on the Unified Theory of Documentation. The structure you suggest is a great start. I particularly like the idea of having a section on "The Anatomy of a Block". That's something that I think is lacking in the current handbook. Although I'm sure the information is in there somewhere it's quite dissipated and hard to assimilate, so that's a great idea. A section on the anatomy of a block would, I guess, fall under "Explanations" in the Unified Theory. I think the Unified Theory of Documentation leads to well structured docs that is multi-purpose and serves a variety of users and learners, so we should be cautious of deviating too much from that model. However, within the structure of that model I agree that there's a great deal of restructuring that can be done to improve the docs both from a learning point of view and from a reference point of view. |
Beta Was this translation helpful? Give feedback.
-
As a developer new to Gutenberg / Block Editor (yeah, I don't know what to call it), the concept of "What is a Block" has taken a lot of exploration of the code base to figure out. I would also note the Block Attribute reference section could be a lot more detailed. I am very willing to help with this effort. |
Beta Was this translation helpful? Give feedback.
-
Hey @tomdevisser, @johnhooks Thanks for your suggestions and offer of help. I'm currently undertaking an analysis of the handbook with a view to exploring how best to re-organise and/or restructure the content. I'm going to do this in the form of a mindmap so that we have a visual representation of how the handbook is now, so it will be easier to conceptualise and visualise how it can be made better. If you're interested in getting involved with this I'd be delighted to have you aboard. Perhaps we could each target different sections of the handbook - I'm currently working through the Getting Started section. Another job that I think is important is to identify what are the key concepts and knowledge that a developer new to blocks needs to learn. It would be great to get a list of these key things together with a view to ordering them into a structured learning path or curriculum of learning. What do you think? |
Beta Was this translation helpful? Give feedback.
-
My comments here from a design/UX perspective:
I see several problems here.
I am not a fan of the Unified Theory of Documentation because it is restrictive, it doesn't allow for growth and software development needs a different structure when it is in continuous development. The structure proposed by @tomdevisser is a good starting point. There are definitely no blockages in creating a new structure to the documentation if it is going to improve the DX. I suggest looking into the list of articles (documentation) available now and define where in the process each goes, which is pretty much what Tomas did. |
Beta Was this translation helpful? Give feedback.
-
I've set up a Zoom meeting to discuss restructuring / rewriting the handbook as per the forgoing discussion. I've scheduled it for 15:00 UTC tomorrow 04 April 2023. Come with your amazing ideas, thoughts on what can be improved, and where you think there are gaps that need to be filled. All welcome. I look forward to seeing you all and moving this project forward. Zoom 3 is inviting you to a scheduled Zoom meeting. Topic: Block Editor Handbook structure Join Zoom Meeting Meeting ID: 840 2152 5365 Dial by your location |
Beta Was this translation helpful? Give feedback.
-
I've uploaded the video from the meeting to YouTube. I don't think I'll have the time to write up the notes this side of the Easter break, but if someone else wants to have a go, feel free and post the notes as a reply to this. |
Beta Was this translation helpful? Give feedback.
-
My initial thoughts after watching the discussion:
As a developer, I am most interesting in a detailed, versioned, interlinked, and searchable API reference (anything like the Code Reference would be a huge improvement). To make sure it stays up to date I would think it needs to be part of the release cycle and most of it generated from JSDoc comments. |
Beta Was this translation helpful? Give feedback.
-
I understand there is a difference between a good API reference and the Handbook, but the handbook is where the current Block API reference is located. Like @ndiego and @fabiankaegy, I find myself looking through the Gutenberg repository for basic information which should be in the reference. Thought because the README.md files are not interlinked, it can be a struggle to jump from the documentation of one package to the next. It also requires checking out the appropriate git release branch to make sure the documentation and code is from a specific version. Should pursuing this goal be separate from the Handbook, just in the same way the WordPress Code Reference is independent from its Handbooks? |
Beta Was this translation helpful? Give feedback.
-
I am adding the following comment from @alexstine in here, as a reference for the changes we are suggesting, he has good points regarding accessibility that will be handy when we review content
|
Beta Was this translation helpful? Give feedback.
-
Adding to this, it is not an accessibility concern alone as much as it is a development concern. No developer wants to waste time in the block editor when they could simply open the docs and know exactly how to build the proper JSON structure in templates. Gutenberg is a JSON generator, it is what it does in practice. That does not mean there should not be docs around what each attribute does. WordPress is really how I learned PHP because the project is documented so well. I hate to see Gutenberg move us away from helpful learning materials. |
Beta Was this translation helpful? Give feedback.
-
@ndiego Yes, that is exactly what I am after. Something with details. Take this example page. https://developer.wordpress.org/reference/functions/get_the_title/ Now, instead of PHP, think about how this format could work for each block. Columns block Having everything on 1 page also feels a little overly messy to me especially given how the project will progress in the future. Thanks. |
Beta Was this translation helpful? Give feedback.
-
Especially for the block attributes, the current reference does not give enough information; it doesn't even say if it's a string or a boolean, etc. It doesn't give an example of how or even if that attribute is written in the block markup. |
Beta Was this translation helpful? Give feedback.
-
After discussing some ideas for the Block Editor Handbook with @ryanwelcher, we thought the best next step would be to open a discussion for everyone to join in.
First of all, thanks everyone who is working on the documentation. I know it's a huge effort to get everything right and that the ratio of the team size and the amount of work that needs to be done is not common. Every feedback I have is based on potential I'm seeing, not to criticize anything that's been done so far.
The main documentation issue
The main issue I have with the documentation is how everything is so scattered, which is a result of having such a modular system with many different NPM packages. The generated docs are fine as a reference, but they're all isolated and I think we need a place that explains how these different packages work together.
It also has to be in a more chronological way, instead of taking a single isolated subject and putting everything there is to know, from beginner info to the most advanced inner workings, all on one page.
The Block Editor Handbook
I think the Block Editor Handbook would be the right place for this so that will be the focus of this discussion, but to be just that I think there needs to be some change in it's structure.
The Block Editor Handbook issues
One issue is with consistency, I think we need a place where we can see what words we're using, if we use British English or American English and how we capitalize stuff. A few simple examples: I see
block
Block
block editor
Block Editor
etc. all over the place. It's also confusing to call something theBlock Editor Handbook
and then start the first sentence withGutenberg
. Question a lot of new devs will have: What is Gutenberg and what is the Block Editor, are they the same or not? Why are we getting all this phases info about Gutenberg when learning about the Block Editor?The structure
Right now the structure has these chapters:
Especially for non-native English speakers, this can be confusing. E.g. what's the difference between an explanation and a how-to? And why is getting started not a how to? I know there are nuances in these words, but they're not super clear for everyone.
I rewrote an outline for a new structure. The main goals for this restructure are to take away some confusion, pointing people to other places when there already is a documentation (DRY), and create a chronological handbook people can follow, but still give them the opportunity to dive into deeper subjects right away.
I would love to hear everyone's thoughts on this!
Beta Was this translation helpful? Give feedback.
All reactions