facebook / docusaurus

Easy to maintain open source documentation websites.
https://docusaurus.io
MIT License
55.94k stars 8.39k forks source link

Showcase analysis: most common site customizations #6115

Open slorber opened 2 years ago

slorber commented 2 years ago

Analyzing our site showcase

Let's use this issue to analyze our site showcase open-source sites and their CSS / swizzle customizations.

Interesting customizations can be reported here: https://github.com/facebook/docusaurus/discussions/5468

Here's an exhaustive list to track progress and be able to split the work more easily.

We probably don't need to analyze deeply all those sites (particularly custom CSS), but if we can at least find some common patterns, that can be useful)


Sites with dedicated customization issues

For some sites, it's simpler to open an issue on the doc site directly so that a discussion can start with site maintainers.


Exhaustive list

Not every site needs to be analyzed deeply, and we don't need to analyze all of them either.

Feel free to skip sites using an older version of Docusaurus, as the customizations are harder to inspect and less relevant.


Script used to generate this list:

console.log(
  sortedUsers
    .filter((user) => user.source)
    .map(
      (user) =>
        `- [ ] [${user.title}](${user.website}) ([source](${user.source}))`,
    )
    .join('\n'),
);
Josh-Cena commented 2 years ago

Made a little script to crawl these sites. Not sure how useful it is, but helped my make #6293

import Crawler from 'crawler';
import pico from 'picocolors';

const c = new Crawler({
  maxConnections: 10,
  callback(error, res, done) {
    if (error) {
    } else {
      const $ = res.$;
      if (!($("#__docusaurus").text())) {
        console.log(pico.red('FAIL: ' + res.options.uri));
      } else {
        console.log(pico.green('PASS: ' + res.options.uri));
      }
    }
    done();
  }
});

c.queue(sortedUsers.map((user) => user.website))

How are we going to do this? Should we just look into src/css/custom.css and src/theme and ignore sites that have neither?

slorber commented 2 years ago

Made a little script to crawl these sites. Not sure how useful it is, but helped my make #6293

Not strictly related to this issue but having such a script is definitively something we could maintain in the future. Being able to extract a static json from our showcase list could help to detect and maintain currently used version, language and a few features... probably worth opening a dedicated issue to brainstorm ideas.


How are we going to do this? Should we just look into src/css/custom.css and src/theme and ignore sites that have neither?

A good first step could be to check all sites that have neither of those yes 🤪

The remaining sites would have to be handled one by one.

We probably don't need to go through 100% of them for now, and just focus on the low hanging fruits

slorber commented 2 years ago

Started analyzing a few of those sites and started to open dedicated issues on site repos directly to start a discussion.

The original issue will be edited to link to those opened sub-issues.

For example here's one opened on the Ionic doc: https://github.com/ionic-team/ionic-docs/issues/2295