Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
20b7ce2
feat(site-astro): add Astro port of the Pharos site
brentswisher Aug 7, 2026
42d32c8
docs(site-astro): add modernization backlog
brentswisher Aug 7, 2026
4208b63
fix(site-astro): stop gitignore from swallowing the Astro site's src/lib
brentswisher Aug 7, 2026
84c98f2
fix(site-astro): key line-height example sizes by token name
brentswisher Aug 7, 2026
559dcda
refactor(site-astro): consolidate the design-token tables
brentswisher Aug 7, 2026
dfb7157
feat(site-astro): fail the build when the sidenav and pages disagree
brentswisher Aug 7, 2026
66d9048
docs(site-astro): mark Tier 1 complete in the modernization backlog
brentswisher Aug 7, 2026
a6ac5c1
fix(site-astro): prevent a flash of unstyled custom elements
brentswisher Aug 7, 2026
6ef33a9
refactor(site-astro): convert site content to MDX
brentswisher Aug 7, 2026
eb091c9
fix(site-astro): disable gfm to prevent links from rendering incorrec…
brentswisher Aug 17, 2026
c29597d
fix(site-astro): correct component examples broken by MDX conversion
brentswisher Aug 17, 2026
8d0bfb8
refactor(site-astro): replace inline styles with named CSS
brentswisher Aug 18, 2026
0b6d139
refactor(site-astro): move component pages to a content collection
brentswisher Aug 18, 2026
0d7c63f
feat(site-astro): lint .astro files with eslint
brentswisher Aug 19, 2026
98eb796
refactor(site-astro): serve images through astro:assets
brentswisher Aug 19, 2026
a0b824d
build: format .astro files with prettier-plugin-astro
brentswisher Aug 19, 2026
823f417
fix(site-astro): protect all MDX from prettier, not just src/pages
brentswisher Aug 19, 2026
9f174d2
fix(site-astro): correct defects inherited from the Gatsby source
brentswisher Aug 19, 2026
5cf91be
chore(site-astro): drop the preserveSymlinks no-op from astro config
brentswisher Aug 20, 2026
a7d1622
refactor(site-astro): drop PageSection's unused sub-section props
brentswisher Aug 20, 2026
dbdc947
chore(site-astro): delete unreferenced files from public/images
brentswisher Aug 20, 2026
20500c1
build(site-astro): move markdown options onto a unified() processor
brentswisher Aug 20, 2026
053497f
docs(site-astro): drop the Gatsby port headers
brentswisher Aug 20, 2026
4652b8f
docs(site-astro): drop Gatsby references that no longer explain anything
brentswisher Aug 20, 2026
825092d
fix(site-astro): correct two defects inherited from the Gatsby source
brentswisher Aug 20, 2026
a645914
fix(site): fix link pointing to local host
brentswisher Aug 28, 2026
7287398
fix(site): fix malformed link
brentswisher Aug 28, 2026
114e9f4
feat(site-astro): link the JSTOR terms page in the sidenav
brentswisher Aug 28, 2026
75211fb
fix(site-astro): make the token-name color coding render, and pass AA
brentswisher Aug 28, 2026
5c4e397
fix(site-astro): number the token-name segments so colour is not the …
brentswisher Aug 28, 2026
63ea31f
fix(site-astro): drop the UA indent on the token-segment description …
brentswisher Aug 28, 2026
a774428
feat(site-astro): link the design tokens overview page in the sidenav
brentswisher Aug 28, 2026
fd4f032
ci: build and deploy the astro site from netlify
brentswisher Aug 28, 2026
2e68d2b
fix(site): don't mangle component name on build, which breaks some st…
brentswisher Aug 28, 2026
97c79fd
chore(site): shorten up comments
brentswisher Aug 28, 2026
5611a96
docs(site-astro): migrate remaining component pages and preserve name…
satya-achanta-venkata Aug 28, 2026
097930d
Merge branch 'develop' into explore/astro-site
brentswisher Aug 28, 2026
1b37fd0
fix(site): allow lint error in site
brentswisher Aug 31, 2026
b4cbaa3
Merge branch 'develop' into explore/astro-site
brentswisher Aug 31, 2026
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
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,18 @@ dist/
.storybook-static/
coverage/
lib/
# `lib/` above targets compiled build output, but is unanchored, so it also
# swallowed the Astro site's hand-written src/lib/ — leaving that source
# untracked and the package unbuildable from a fresh clone.
!packages/pharos-site-astro/src/lib/
packages/**/package-lock.json
packages/pharos-site/public/
packages/pharos-site/.cache/
packages/pharos-site-astro/.astro/
# Brand-asset archives carried over from the Gatsby site's static/ directory.
# Nothing in the source or the built HTML links to them, so they are kept out of
# git history here rather than duplicating the ~7.4MB the Gatsby package tracks.
packages/pharos-site-astro/public/files/**/*.zip
react-components/
packages/pharos/src/styles/**/*.ts
packages/pharos/src/styles/_variables.scss
Expand Down
13 changes: 13 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ packages/pharos/custom-elements.json
packages/**/package-lock.json
packages/pharos-site/public/
packages/pharos-site/.cache/
packages/pharos-site-astro/.astro/
# Prettier is not safe on any MDX in this package. It rewrites MDX comment
# delimiters ({/* */} -> {/_ _/}), which produces invalid JSX and fails the
# build outright, and it reflows elements such as <li>/<dd>/<code> onto several
# lines. MDX treats a tag whose content spans multiple lines as Markdown and
# wraps it in a generated <p>, so a purely cosmetic reflow silently adds
# paragraph margins to the rendered page.
#
# This must match src/** and not just src/pages/**: the component pages moved
# to src/content/ in the collection refactor, and a src/pages-only glob left
# all 32 of them unprotected. {/* prettier-ignore */} is not an alternative --
# prettier corrupts the marker's own delimiters before it can take effect.
packages/pharos-site-astro/src/**/*.mdx
package.json
package-lock.json
.changeset/
Expand Down
3 changes: 3 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
module.exports = {
// `.astro` has no built-in parser; without this prettier reports
// "No parser could be inferred" and silently formats none of them.
plugins: ['prettier-plugin-astro'],
printWidth: 100,
trailingComma: 'es5',
tabWidth: 2,
Expand Down
2 changes: 1 addition & 1 deletion build-ignore.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ then
git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF packages/pharos/ .storybook/ package.json yarn.lock netlify.toml
elif [ "$SITE_NAME" == "pharos" ]
then
git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF packages/pharos-site/ package.json yarn.lock netlify.toml
git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF packages/pharos/ packages/pharos-site-astro/ package.json yarn.lock netlify.toml
fi
22 changes: 22 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import js from '@eslint/js';
import astroPlugin from 'eslint-plugin-astro';
import reactPlugin from 'eslint-plugin-react';
import prettierPlugin from 'eslint-plugin-prettier';
import storybookPlugin from 'eslint-plugin-storybook';
Expand All @@ -12,6 +13,7 @@ const globalIgnores = [
'packages/pharos/src/styles/**/*.ts',
'packages/pharos-site/public/',
'packages/pharos-site/.cache/',
'packages/pharos-site-astro/.astro/',
'**/dist/',
'**/node_modules/',
'**/*.css.ts',
Expand Down Expand Up @@ -84,10 +86,30 @@ const tsxConfig = {
},
};

const astroConfig = [
...astroPlugin.configs.recommended,
...astroPlugin.configs['jsx-a11y-recommended'],
{
files: ['**/*.astro'],
plugins: {
'@typescript-eslint': typeScriptEsLint,
},
rules: {
// TypeScript resolves identifiers itself, and `no-undef` cannot see
// type-only names, so it only fires falsely in frontmatter.
'no-undef': 'off',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': ['error'],
'@typescript-eslint/no-explicit-any': ['error'],
},
},
];

export default [
{ ignores: globalIgnores },
js.configs.recommended,
pharosConfig,
tsConfig,
tsxConfig,
...astroConfig,
];
1 change: 1 addition & 0 deletions lint-staged.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
module.exports = {
'packages/pharos/assets/icons/*.svg': [`svglint --ci`],
'*.{ts,tsx,js,mjs}': ['eslint --fix'],
'*.astro': ['eslint --fix'],
'*.{scss,css}': ['stylelint --fix'],
'**/!(.changeset)/*.md': (filenames) =>
filenames.map((filename) => `yarn markdown-toc -i '${filename}'`),
Expand Down
11 changes: 8 additions & 3 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
[build]
command = "yarn site-astro:build"
publish = "packages/pharos-site-astro/dist"
ignore = "bash ./build-ignore.sh"

[build.environment]
NODE_VERSION = "24"

[[redirects]]
from = "/storybook"
to = "https://pharos-storybooks.netlify.app/main/"
Expand Down Expand Up @@ -39,6 +47,3 @@
[headers.values]
Access-Control-Allow-Origin = "*"
X-Frame-Options = "SAMEORIGIN"

[build]
ignore = "bash ./build-ignore.sh"
16 changes: 14 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
"build:tokens": "yarn workspace @ithaka/pharos build:tokens",
"analyze": "yarn workspace @ithaka/pharos analyze",
"format": "prettier packages/* --write",
"lint": "yarn lint:lit-analyzer && yarn lint:eslint && yarn lint:styles && yarn lint:icons",
"lint:eslint": "eslint 'packages/**/*.{ts,tsx,js,jsx,mjs}'",
"lint": "yarn lint:lit-analyzer && yarn lint:eslint && yarn lint:styles && yarn lint:icons && yarn lint:astro",
"lint:astro": "yarn workspace @ithaka/pharos-site-astro check",
"lint:eslint": "eslint 'packages/**/*.{ts,tsx,js,jsx,mjs,astro}'",
"lint:lit-analyzer": "lit-analyzer 'packages/*/src/**/!(*.css|*.test).ts' --strict --rules.no-missing-import off --rules.no-unknown-tag-name off",
"lint:styles": "stylelint 'packages/**/*.{scss,css}'",
"lint:icons": "svglint --ci packages/pharos/assets/icons/*.svg",
Expand Down Expand Up @@ -42,6 +43,13 @@
"site:develop": "yarn presite:develop && yarn workspace @ithaka/pharos-site develop",
"site:serve": "yarn workspace @ithaka/pharos-site serve",
"site:clean": "yarn workspace @ithaka/pharos-site clean",
"presite-astro:build": "yarn build:core",
"site-astro:build": "yarn presite-astro:build && yarn workspace @ithaka/pharos-site-astro build",
"presite-astro:develop": "yarn build:core",
"site-astro:develop": "yarn presite-astro:develop && yarn workspace @ithaka/pharos-site-astro develop",
"site-astro:serve": "yarn workspace @ithaka/pharos-site-astro preview",
"site-astro:check": "yarn workspace @ithaka/pharos-site-astro check",
"site-astro:clean": "yarn workspace @ithaka/pharos-site-astro clean",
"release": "changeset publish",
"prepare": "husky install"
},
Expand Down Expand Up @@ -80,10 +88,12 @@
"@typescript-eslint/parser": "^8.67.0",
"@vitejs/plugin-react": "^6.1.0",
"all-contributors-cli": "^6.26.1",
"astro-eslint-parser": "^3.1.0",
"concurrently": "^10.0.5",
"cssnano": "^8.0.7",
"eslint": "^10.9.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-astro": "^3.1.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-lit": "^2.3.1",
"eslint-plugin-prettier": "^5.5.6",
Expand All @@ -102,6 +112,7 @@
"postcss-media-minmax": "^5.0.0",
"postcss-preset-env": "^11.4.0",
"prettier": "^3.9.6",
"prettier-plugin-astro": "0.14.1",
"pretty-quick": "^4.2.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
Expand All @@ -113,6 +124,7 @@
"stylelint-scss": "^7.2.0",
"svglint": "^4.2.1",
"typescript": "^6.0.3",
"typescript-eslint": "^8.65.0",
"vite": "^8.2.2"
},
"resolutions": {
Expand Down
Loading
Loading