Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,6 @@
// Enable / Disable compound words like 'errormessage'.
"cSpell.allowCompoundWords": true,

// Words to be ignored and not suggested.
"cSpell.ignoreWords": ["behaviour"],

// Specify paths/files to ignore.
"cSpell.ignorePaths": [".git/", "node_modules/"],

Expand Down
8 changes: 4 additions & 4 deletions _assets/styles/_about.scss
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// The about page: the question the project started from, how the community
// is organised, and where things stand.
// is organized, and where things stand.

// It reads at the same 1200px width as docs and home, and sets its own
// offset under the fixed navbar. Colours come from _sublime-theme.scss;
// offset under the fixed navbar. Colors come from _sublime-theme.scss;
// $about-muted matches the tone _home.scss and _docs.scss give secondary
// copy, so all three pages read alike.

Expand Down Expand Up @@ -118,7 +118,7 @@ $about-hairline: rgb(167 151 139 / 55%);
text-wrap: balance;
}

// The four verbs recur sitewide, coloured here as home colours them in its
// The four verbs recur sitewide, colored here as home colors them in its
// masthead.
.about-question em {
font-style: normal;
Expand Down Expand Up @@ -169,7 +169,7 @@ $about-hairline: rgb(167 151 139 / 55%);

// A rule between the columns rather than above each: the three are parallel
// and carry equal weight. Spacing comes from padding rather than a column
// gap, so the rule sits centred between two columns and the outer edges stay
// gap, so the rule sits centered between two columns and the outer edges stay
// flush with the heading above.
.about .tenet {
padding-inline: clamp(1rem, 2.2vw, 2rem);
Expand Down
4 changes: 2 additions & 2 deletions _assets/styles/_docs.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// The docs index: what is written, and what is still open.

// This page reads wider than the 48ch column the rest of the site uses, so it
// sets its own width and its own offset under the fixed navbar. Colours come
// sets its own width and its own offset under the fixed navbar. Colors come
// from _sublime-theme.scss; $docs-muted is the tone _home.scss gives secondary
// copy, so the two pages read alike.

Expand Down Expand Up @@ -291,7 +291,7 @@ $docs-flag-text: shade-color($quaternary, 25%);
line-height: 1.6;
}

// The chip carries the state in text, so it does not rest on colour alone.
// The chip carries the state in text, so it does not rest on color alone.
.docs-index .rule-flag {
padding: 0.0625rem 0.4375rem;
font-family: $font-family-monospace;
Expand Down
4 changes: 2 additions & 2 deletions _assets/styles/_home.scss
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,9 @@
pointer-events: none;
opacity: 0.14;

// Up by a fifth, not a third. At a third the circle's centre sits behind
// Up by a fifth, not a third. At a third the circle's center sits behind
// the fixed navbar on a phone, so all that shows is the cap below its
// widest point, and a cap reads as an oval. A fifth keeps the centre clear
// widest point, and a cap reads as an oval. A fifth keeps the center clear
// of the navbar at every width, so the curve is legible as a circle.
transform: translate(30%, -20%);
}
Expand Down
2 changes: 1 addition & 1 deletion _assets/styles/_nav.scss
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ bento-sidebar {
margin-block: calc(var(--bs-navbar-padding-y) * -1);
}

// Marks the current page beside `aria-current`, so it is not colour alone.
// Marks the current page beside `aria-current`, so it is not color alone.
.navbar-dark .nav-link.active {
border-bottom: 2px solid $primary;
}
6 changes: 3 additions & 3 deletions _assets/styles/_news-item.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// the same 1200px width as the rest of the site; the prose between them sits
// at a reading measure instead, because this page is for reading.

// Colours come from _sublime-theme.scss and match the tone _news.scss gives
// Colors come from _sublime-theme.scss and match the tone _news.scss gives
// the archive, so the two pages agree on what a category and a date look
// like.
$news-item-wrap: 1200px;
Expand Down Expand Up @@ -70,7 +70,7 @@ $news-item-hairline: rgb(167 151 139 / 55%);
margin: 0;
}

// The same flat, opaque chip as the archive's, recoloured for the ink it
// The same flat, opaque chip as the archive's, recolored for the ink it
// sits on: ink text on the light accent.
.news-item .entry-cat {
display: inline-block;
Expand Down Expand Up @@ -213,7 +213,7 @@ $news-item-hairline: rgb(167 151 139 / 55%);
}

/* --- Foot: prev/next ----------------------------------------------------
Only rendered when a neighbour exists (see the layout's own condition), so
Only rendered when a neighbor exists (see the layout's own condition), so
it never shows on a lone post.
*/

Expand Down
4 changes: 2 additions & 2 deletions _assets/styles/_news.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// earlier as a plain list. Reads at the same 1200px width as home, docs, and
// about, with its own offset under the fixed navbar.

// Colours come from _sublime-theme.scss. $news-muted matches the tone the
// Colors come from _sublime-theme.scss. $news-muted matches the tone the
// other pages give secondary copy; $news-link doubles as the category chip's
// fill, so the chip and every link on the page draw from one dark teal.
$news-wrap: 1200px;
Expand Down Expand Up @@ -120,7 +120,7 @@ $news-quiet-bg: color.mix($tertiary, $body-bg, 12%);
}

/* --- Category chip ---------------------------------------------------
Flat and opaque: one fixed pair of colours, so it reads the same in the
Flat and opaque: one fixed pair of colors, so it reads the same in the
featured band and in the list below.
*/

Expand Down
2 changes: 1 addition & 1 deletion _assets/styles/_sublime-theme.scss
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ $spacer: 1rem;
$body-color: #1d1916;

// The navbar is `bg-dark`, which until now meant Bootstrap's own #212529: a
// colour this palette never chose. Against parchment nobody could tell, but
// color this palette never chose. Against parchment nobody could tell, but
// a page with a dark section under the navbar puts a cool grey directly on
// our warm ink and it reads as a mistake. Our dark is the ink.
$dark: $body-color;
Expand Down
6 changes: 3 additions & 3 deletions build/shared/commit-message.mts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
*
* Each is spelt so that it is drawn as an emoji and no more: the characters
* that would otherwise come out as flat text carry U+FE0F, and the ones
* already drawn in colour do not carry one they have no use for. A test holds
* already drawn in color do not carry one they have no use for. A test holds
* the list to that.
*/
export const CATEGORIES: Record<string, string> = {
Expand Down Expand Up @@ -107,14 +107,14 @@ const countGraphemes = (text: string) => [...SEGMENTER.segment(text)].length;
/**
* A trailer is `Token: value` with no whitespace in the token. Written out
* rather than taken from a list of known tokens, so that a line *meant* as a
* trailer is recognised as one and can be reported as misspelt.
* trailer is recognized as one and can be reported as misspelt.
*/
const TRAILER_LINE = /^(?<token>[A-Za-z][\w-]*):[ \t]*(?<value>.*)$/;

/**
* `Assisted-by` names a tool, not a person, and so takes neither a name nor an
* address: the Linux kernel defines it as `AGENT_NAME:MODEL_VERSION` followed
* by any specialised analysis tools, and nodejs/node lands it that way. Basic
* by any specialized analysis tools, and nodejs/node lands it that way. Basic
* development tools are left out.
*/
const ASSISTED_BY_VALUE = /^[^\s:]+:\S+( \S+)*$/;
Expand Down
6 changes: 3 additions & 3 deletions build/shared/commit-message.test.mts
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ describe('validateCommitMessage: against what landed', () => {

describe('readTrailers', () => {
test('agrees with git about where the trailers are', () => {
// The rules describe git's behaviour, so git is the thing to check them
// The rules describe git's behavior, so git is the thing to check them
// against. Every disagreement found in review is in this table.
const messages = [
'🏗️🔧:fix it',
Expand Down Expand Up @@ -323,8 +323,8 @@ describe('readTrailers', () => {
describe('the vocabulary', () => {
test('is spelt so that every entry is drawn as an emoji, and no more', () => {
// Two ways to get this wrong, and both leave a second spelling of one
// symbol: a character that needs U+FE0F to be drawn in colour and does
// not carry it, and one drawn in colour already that carries a selector
// symbol: a character that needs U+FE0F to be drawn in color and does
// not carry it, and one drawn in color already that carries a selector
// it has no use for.
for (const emoji of [...Object.keys(CATEGORIES), ...Object.keys(ACTIONS)]) {
const [base = ''] = [...emoji];
Expand Down
2 changes: 1 addition & 1 deletion build/tasks/compile/siteify-health-files.mts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ const getHealthFileContents = (file: string) => {
};

/**
* Add site metdata to document frontmatter and copy to collection dir.
* Add site metadata to document frontmatter and copy to collection dir.
* @param {string} file
* @param {string} destDir
* @param {!(Object | undefined)} frontmatterOverrides
Expand Down
2 changes: 1 addition & 1 deletion build/tasks/verify/verify-filenames.mts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const KEBAB_CASE = /^_?[a-z0-9]+(?:-[a-z0-9]+)*$/;
/**
* The shouted names convention reserves for metadata that sits beside the
* work rather than being part of it: `README.md`, `AUTHORS`, `LICENSE/`, and
* the licence identifiers inside it, such as `CC-BY-SA-4.0.txt`.
* the license identifiers inside it, such as `CC-BY-SA-4.0.txt`.
*/
const METADATA_CASE = /^[A-Z][A-Z0-9_-]*$/;

Expand Down
1 change: 0 additions & 1 deletion build/tasks/verify/verify-md.mts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ const scripts = [
`prettier --check ${markdownFiles.join(' ')}`,
`markdownlint-cli2 ${markdownFiles.join(' ')}`,
`remark -f --silently-ignore ${markdownFiles.join(' ')}`,
`cspell lint ${markdownFiles.join(' ')}`,
];

for (const element of scripts) {
Expand Down
33 changes: 33 additions & 0 deletions build/tasks/verify/verify-spelling.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/**
* @file Verify prose everywhere is spelt the way this project spells it.
* @author The OpenINF Authors & Friends
* @license MIT OR Apache-2.0 OR BlueOak-1.0.0
* @module {type ES6Module} build/tasks/verify/verify-spelling
*/

import { exec, glob } from '@openinf/portal/build/utils';

// Comments and template prose are read as often as the documentation is, and
// cspell's `en` dictionary is the American one, so this is also what holds the
// project to American spelling: a British variant is an unknown word to it.
const files = await glob([
'**/*.{md,html,liquid,scss,mts,mjs,json,yml,yaml,sh}',
'!node_modules/',
'!_site/',
'!.pnpm-store/',
// Other people's words, reproduced verbatim: a license is not ours to edit,
// and a lockfile is not prose.
'!**/COPYING.md',
'!**/LICENSE/**',
'!pnpm-lock.yaml',
// Generated by compile.siteifyHealthFiles from the OpenINF/.github
// repository. Fixes applied here are overwritten on the next build; the
// source files are the place to change them.
'!collections/_docs/code-of-conduct.md',
'!collections/_docs/contributing.md',
'!collections/_docs/security.md',
'!collections/_docs/support.md',
'!collections/_pages/vision.md',
]);

process.exitCode = await exec(`cspell lint ${files.join(' ')}`);
4 changes: 2 additions & 2 deletions collections/_pages/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
layout: default
permalink: /about/
description:
The question OpenINF formed around, how the work is organised, and where
The question OpenINF formed around, how the work is organized, and where
things currently stand.
body_classes:
- about
Expand All @@ -29,7 +29,7 @@ <h1 class="about-title">About</h1>
</section>

<!--
================= how it is organised ============================
================= how it is organized ============================
Three things true of the community itself, rather than of anything it
publishes. The home page covers what is being built.
-->
Expand Down
2 changes: 1 addition & 1 deletion collections/_pages/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ <h2 class="section-title" id="work-title">How we work</h2>
>
</p>
<p class="work-what">
Open issues across the organisation marked as suitable to pick up.
Open issues across the organization marked as suitable to pick up.
See also
<a
href="https://github.com/search?q=org%3Aopeninf+is%3Aissue+is%3Aopen+label%3A%22help+wanted%22"
Expand Down
9 changes: 8 additions & 1 deletion cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@
"_site/**",
"node_modules/**",
".pnpm-store/**",
"**/COPYING.md"
"**/COPYING.md",
"**/LICENSE/**",
"pnpm-lock.yaml",
"collections/_docs/code-of-conduct.md",
"collections/_docs/contributing.md",
"collections/_docs/security.md",
"collections/_docs/support.md",
"collections/_pages/vision.md"
]
}
2 changes: 1 addition & 1 deletion eleventy.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ export default async function (eleventyConfig) {

// Ignoring these directories outright, as .eleventyignore used to, also
// takes them out of the watch, so an edited image sat there until the next
// restart. Only the licence notice among the icons needs keeping out, and
// restart. Only the license notice among the icons needs keeping out, and
// only from being rendered as a page -- passthrough still publishes it
// beside the icons it covers.
eleventyConfig.ignores.add(`${PATHS.assetsDir}**/*.md`);
Expand Down
Loading
Loading