1
0
mirror of https://github.com/snachodog/just-the-docs.git synced 2025-04-10 14:01:22 -06:00
Matt Wang d7e4a808b5
Fix incorrect HTML in theme & docs; validate HTML in CI ()
This PR is motivated from https://github.com/just-the-docs/just-the-docs/pull/1259#issuecomment-1655899503. It adds a new workflow (`CI / Validate HTML (3.1)`) that validates the output of `bundle exec jekyll build`. It does this with two separate tools:

1. The [`html5validator-action`](https://github.com/Cyb3r-Jak3/html5validator-action), which is a wrapper (Docker image + argument forwarding) around the [Nu HTML checker](https://github.com/validator/validator), which is what is used by the [W3C markup validation service](https://validator.w3.org/)
2. [`html-proofer`](https://github.com/gjtorikian/html-proofer), which performs auxiliary checks on the validity of script, image, and link *values*, but not the markup itself
    - note: prior versions of `html-proofer` did use nokogiri to also validate HTML, but the author has elected to remove that feature in versions 4+

I then fix a few issues that are flagged by these tools. I'll split this into,

**changes affecting users**:
- strictly incorrect: in `_layouts/minimal.html`, a `<div>` had duplicate `id`s. I've removed the incorrect one, which is related to...
- semantically wrong (but not technically incorrect): in both `minimal` and `default` layouts, we had two `<div>` tags with `id="main-content-wrap"`. These don't do anything; the associated styling is with the *class* `main-content-wrap`. I've elected to remove these `id`s to avoid confusion and keep the layouts in sync; however, **this is technically a breaking change**
    - observe that `#main-content` is used for the "skip to main content" feature, which I missed in an earlier iteration of this PR

**changes affecting only our documentation**
- a broken link to mermaid docs (I've changed it to a valid one)
- an incorrectly-specified `aux_link` to our own repository
- various links that point to the bare URL `another-page`, which is clearly invalid; I've changed these to point to our homepage
- an incorrect header link
- various links to `http://example.com`, which I've changed to point to our homepage
- an incorrect link to `@flyx`'s profile for the AsciiDoctor gist
- a handful of (otherwise-valid) `http` links that should be `https`: the lunr docs, and patrick's personal website

The commit history shows the Nu validator flagging issues in CI properly in commits [4128b23](4128b23ef2) and [3527220](35272203ba).

## relevant configuration

- I exclude `github.com` URLs from external link checks with `html-proofer`. This is because GitHub does not like it when we ping too frequently, and rate limits us, which in turn provides many false positives. This is aligned with their documentation, which uses this ignore.
- I've pinned the hash for the 3rd-party action that wraps the W3C markup validation service. This aligns with , but means that we'll have to keep an eye on it for updates.
2023-08-19 21:17:26 -04:00
2023-08-18 20:35:14 +02:00
2019-01-14 14:43:16 -05:00
2023-08-18 20:35:14 +02:00
2022-12-26 14:15:12 -08:00
2022-07-04 12:15:10 -07:00
2023-08-18 20:35:14 +02:00
2019-05-13 16:40:14 -04:00
2017-03-09 13:16:08 -05:00
2017-06-04 17:54:54 -04:00

Gem version CI Build status Netlify Status



Just the Docs

A modern, highly customizable, and responsive Jekyll theme for documentation with built-in search.
Easily hosted on GitHub Pages with few dependencies.

See it in action!




A video walkthrough of various Just the Docs features

https://user-images.githubusercontent.com/85418632/211225192-7e5d1116-2f4f-4305-bb9b-437fe47df071.mp4

Installation

Use the template

The Just the Docs Template provides the simplest, quickest, and easiest way to create a new website that uses the Just the Docs theme. To get started with creating a site, just click "use the template"!

Note: To use the theme, you do not need to clone or fork the Just the Docs repo! You should do that only if you intend to browse the theme docs locally, contribute to the development of the theme, or develop a new theme based on Just the Docs.

You can easily set the site created by the template to be published on GitHub Pages the template README file explains how to do that, along with other details.

If Jekyll is installed on your computer, you can also build and preview the created site locally. This lets you test changes before committing them, and avoids waiting for GitHub Pages.1 And you will be able to deploy your local build to a different platform than GitHub Pages.

More specifically, the created site:

  • uses a gem-based approach, i.e. uses a Gemfile and loads the just-the-docs gem
  • uses the GitHub Pages / Actions workflow to build and publish the site on GitHub Pages

Other than that, you're free to customize sites that you create with the template, however you like. You can easily change the versions of just-the-docs and Jekyll it uses, as well as adding further plugins.

Use RubyGems

Alternatively, you can install the theme as a Ruby Gem, without creating a new site.

Add this line to your Jekyll site's Gemfile:

gem "just-the-docs"

And add this line to your Jekyll site's _config.yml:

theme: just-the-docs

And then execute:

$ bundle

Or install it yourself as:

$ gem install just-the-docs

Alternatively, you can run it inside Docker while developing your site

$ docker-compose up

Usage

View the documentation for usage information.

Contributing

Bug reports, proposals of new features, and pull requests are welcome on GitHub at https://github.com/just-the-docs/just-the-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Submitting code changes:

  • Submit an Issue that motivates the changes, using the appropriate template
  • Discuss the proposed changes with other users and the maintainers
  • Open a Pull Request
  • Ensure all CI tests pass
  • Provide instructions to check the effect of the changes
  • Await code review

Design and development principles of this theme:

  1. As few dependencies as possible
  2. No build script needed
  3. First class mobile experience
  4. Make the content shine

Development

To set up your environment to develop this theme: fork this repo, the run bundle install from the root directory.

A modern devcontainer configuration for VSCode is included.

Your theme is set up just like a normal Jekyll site! To test your theme, run bundle exec jekyll serve and open your browser at http://localhost:4000. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.

When this theme is released, only the files in _layouts, _includes, and _sass tracked with Git will be included in the gem.

License

The theme is available as open source under the terms of the MIT License.

Description
A modern, high customizable, responsive Jekyll theme for documentation with built-in search.
Readme 9.6 MiB
Languages
SCSS 39.8%
HTML 26.8%
JavaScript 14.8%
Liquid 11.2%
Ruby 4.8%
Other 2.6%