Skip to content
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 home page: organization? #46

Closed
Blind4Basics opened this issue Jul 14, 2020 · 11 comments
Closed

Docs home page: organization? #46

Blind4Basics opened this issue Jul 14, 2020 · 11 comments
Labels
question Further information is requested

Comments

@Blind4Basics
Copy link
Contributor

Blind4Basics commented Jul 14, 2020

To get a better idea about how the thing will eventually work:

Currently:

image

Suggestions/questions:

So, I guess every "entry point" for documentation will land as an icon in the bottom part of the screen. This leads to some questions:

1) how are they organized?

reading through https://github.com/codewars/docs/blob/master/src/pages/Index.vue, it seems they are automatically displayed in the order the components are inserted into this file (g-link parts). Right?

2) is it possible to visually separate them?

Like, to have line separations or something in the home page to split some icons from others?

3) when more things will be there, what general organization should we use?

On this, and if the previous point is possible, I'd see the following:

  • first icons: glossary/category/tags/supported languages (on the same line if possible)
  • an horizontal line
  • all other topics by alphabetial order

4) what other topics?

Here is the critical point, imo. 'Time to define some ways of splitting the docs so that we can have a better idea about where we are going.

I'd go for the followings (in random order and non exhaustive, ofc), the idea being that those categories could contain sub parts possibly used at several different places:


Here are my 2 cents...

@kazk: is that in your line of thougths for the docs?


Some other ideas randomly stored there

@Blind4Basics Blind4Basics added the question Further information is requested label Jul 14, 2020
@hobovsky
Copy link
Contributor

hobovsky commented Jul 14, 2020

My idea:

Main page can be as empty as possible, with a couple of ways to search for eventually interesting articles:

  • Getting started for ones not knowing how to start,
  • Glossary for people hunting for some specific thing - this makes important that entries in glossary have some links to doc area which documents topic of the term in details
  • Categories as a kind of coarse ToC with additional benefit of more than one direction cutting through the set of articles
  • Tags as finer grained search

What you described makes IMO good candidates for Categories, so for example an article about kata trainer could be placed in both Solving and GUI. Generally I think that GUI is not even a good category, because... who'd need a reference to "whole" GUI in one place? Main direction docs are laid out IMO should be functions, activities and motivations of users reading them.

Going this way, I would make Tutorials and FAQs a category. The question is, if they will stand out prominently enough to be easy to find by people searching for help.

But this idea has a problem that I do not know if categories list can be composed in some nice way, or is it just a blob of links. If we could have some nice thumbnails etc. it would be great. But I do not know what's possible with our docs system, I didn't get too familiar with it, yet :(

@Blind4Basics
Copy link
Contributor Author

About the functionnality aspects, I agree with you. But, thing is, this way, you push the accessibility of the info one link further (even if these categories/tags/... things can be made something else that the blob of links) and most users won't like the idea to do that extra click.

But you're right about keeping the number of icons as little as possible, to increase readability.

@hobovsky
Copy link
Contributor

I agree that it unfortunately brings things one click further, but maybe we could save/hint them this one additional click:

image

@Blind4Basics
Copy link
Contributor Author

Blind4Basics commented Jul 14, 2020

not really fond of the idea...

Another one, keeping the "one click further" thing, but allowing to have a complete/detailed page: just add one item Table of contents and set up what I suggested in that page?

EDIT: maybe even a second button under "get started", making the "table of contents" more obvious in the page?

@kazk
Copy link
Member

kazk commented Jul 14, 2020

category was a bad name to organize documents by type (#8). I was thinking something like this:

image

I'll rename category to type (or doc_type) and add topic to classify by the main subject.


@Blind4Basics

  1. how are they organized?

Not sure if I'm understanding your question, but the code for those 4 links are here:

docs/src/pages/Index.vue

Lines 32 to 80 in cbbd483

<div class="flex flex-wrap justify-center -mx-4">
<g-link
to="/categories/"
class="flex flex-col items-center px-4 mb-8 text-center w-full md:w-1/3"
>
<FolderIcon size="3x" class="mb-6 text-ui-primary" />
<span
class="text-xl font-bold leading-snug tracking-wide uppercase text-ui-typo"
>
View Categories
</span>
</g-link>
<g-link
to="/languages/"
class="flex flex-col items-center px-4 mb-8 text-center w-full md:w-1/3"
>
<BookOpenIcon size="3x" class="mb-6 text-ui-primary" />
<span
class="text-xl font-bold leading-snug tracking-wide uppercase text-ui-typo"
>
Supported Languages
</span>
</g-link>
<g-link
to="/tags/"
class="flex flex-col items-center px-4 mb-8 text-center w-full md:w-1/3"
>
<TagIcon size="3x" class="mb-6 text-ui-primary" />
<span
class="text-xl font-bold leading-snug tracking-wide uppercase text-ui-typo"
>
View Tags
</span>
</g-link>
<g-link
to="/glossary/"
class="flex flex-col items-center px-4 mb-8 text-center w-full md:w-1/3"
>
<BookIcon size="3x" class="mb-6 text-ui-primary" />
<span
class="text-xl font-bold leading-snug tracking-wide uppercase text-ui-typo"
>
View Glossary
</span>
</g-link>
</div>

As I said before, we're going to iterate on this and optimize as we go.

  1. is it possible to visually separate them?
    Like, to have line separations or something in the home page to split some icons from others?

That's possible. We can change any styles.

  1. when more things will be there, what general organization should we use?

I wasn't planning to add too much on the landing. The search will be super useful once we switch to DocSearch (#4) too.

@hobovsky

But this idea has a problem that I do not know if categories list can be composed in some nice way, or is it just a blob of links. If we could have some nice thumbnails etc. it would be great. But I do not know what's possible with our docs system, I didn't get too familiar with it, yet :(

Pretty much anything is possible because this is fully customizable (just a Vue app).

I wasn't going to focus too much on organizing and styling yet until we have more docs, but we can start discussing it or consider start doing some of them.

@hobovsky
Copy link
Contributor

I was thinking something like this: [picture]

That's exactly what I thought categories to be, I was just wondering about presentation , if we could get such tiles or something. If we can, then great!

@Blind4Basics
Copy link
Contributor Author

  1. how are they organized?

I was just talking about their order. But since it's fully customizable, "whatever".

Topic/categories: looks great, in that case, yeah.
Though, I still think a full "table of content" somewhere would be useful to some users.

@kazk
Copy link
Member

kazk commented Jul 14, 2020

@Blind4Basics Can you elaborate on full table of contents? Is it a list of all pages and links to them? We should be able to generate one from the data.

@Blind4Basics
Copy link
Contributor Author

yes something like that, but with formatting, sections, and mostly a wanted order (just like in a book).

It's surely doable automatically, yes, but I'mp not sure it's that easy to do. Maybe by adding an index to each main page/topic, then study the graph dependency, yes. But cycles will happen at some point... => ?

@kazk
Copy link
Member

kazk commented Jul 14, 2020

Yeah, we should be able to do that dynamically by storing some information for ordering within the page data (or infer from prev/next links). Topic and Type can be declared in the desired order and sort by that.

  1. Get all pages grouped by topic and sort the groups by topic
  2. For each group, group pages by type and sort the groups by type
  3. For each subgroup, sort the pages by some information (some extra field or links)

Another way is to have something statically defined like the sidebar:

docs/gridsome.config.js

Lines 23 to 41 in 319c219

sidebar: [
{
name: "docs",
sections: [
{
title: "Getting Started",
items: [
"/docs/",
"/docs/installation/",
"/docs/writing-content/",
"/docs/deploying/",
],
},
{
title: "Configuration",
items: ["/docs/settings/", "/docs/sidebar/"],
},
],
},

This is simple and pretty flexible about what to include and how to order, but can be annoying to keep updating. This is why I added a way to automatically generate a sidebar for pages related to the language with sidebar: "language:id".

Anyways, we can do whatever that fits our needs and I think we should wait until we have more docs to understand what's best.

@kazk
Copy link
Member

kazk commented Jul 15, 2020

The landing looks like this now:

image

Let's open a new issue for topics if you'd like to start collecting them.

For documentation kinds, let's continue at #8.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants