Skip to content

Commit 03e0bff

Browse files
authored
Layout polish, About improvements, and site-wide component refactors (#9)
* feat(resume): updated resume * build: added mdx-js to render mdx files * feat(resume): made education displayed in header mobile-friendly * build: updated dependencies * lint: define rules in eslintrc * lint: apply linting rules defined in previous commit * lint: add prettier for code formatting * lint: add eslint plugin for organizing and validating whole import statements * lint: add Prettier plugin for sorting Tailwind class names * ci: added lint-staged as pre-commit hook using husky * lint: add pre-commit hook and run as intended * lint: modify lint-staged and disable linting during production builds * ci: move lint-staged settings from package.json to .lintstagedrc.js * lint: run set lint commands to lint entire project * ci: add workflow for linting (ESLint & Prettier) & type checking * ci: modify workflow to fix issue with jobs not working as intended on push * style: improve responsibilities list with cleaner bullet styling * feat: move company logo outside margins and reveal on hover * refactor: rename isDesktop to isTablet for 768px breakpoint * feat: make company logo backdrop transparent and adjust image size for large screens * style: adjust spacing between - positions with/(out) responsibilities and between given position and responsibility * chore: update Education component to use RecordTile * feat: implement generic RecordTile component for experience and education * refactor: improve readability of heading rendering logic in jobDescriptorSection * refactor: rename details to body in RecordTile * chore: update Education component to use EducationTile * feat: use RecordTile in EducationTile with combined degree and major * refactor: update ExperienceTile to use generic RecordTile component * style: decrease padding around highlighted text by Highlighter component * refactor(highlight): simplify color logic using color map * feat: add StrikeHighlight component for colorful strikethrough-style text highlights * feat: add and customize Accordion component from shadcn * feat: convert extra info paragraphs to AccordionForExtraInfo component in About component Refactored the static informational paragraphs into a dynamic Accordion component. * style: replace Iconify icon with lucide-react icon in ExperienceTile for better visibility * ci: avoid deploying on any push to main & add CODEOWNERS file * ci: add automatic, scheduled, and manual PR labeling with labeler * Revert "ci: add automatic, scheduled, and manual PR labeling with labeler" This reverts commit c6fda59.
1 parent 8f29260 commit 03e0bff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+4306
-2183
lines changed

.eslintrc.json

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,41 @@
11
{
22
"extends": [
33
"next/core-web-vitals",
4-
"next/typescript"
5-
]
4+
"next/typescript",
5+
"plugin:prettier/recommended",
6+
"plugin:import/errors",
7+
"plugin:import/warnings",
8+
"plugin:import/typescript"
9+
],
10+
"plugins": ["prettier", "import"],
11+
"rules": {
12+
// Code quality
13+
"no-console": "warn",
14+
"no-debugger": "error",
15+
"no-unused-vars": "off", // Handled by TS version above
16+
17+
// Import sorting and cleanliness
18+
"import/order": [
19+
"error",
20+
{
21+
"groups": [
22+
"builtin",
23+
"external",
24+
"internal",
25+
"parent",
26+
"sibling",
27+
"index",
28+
"object",
29+
"type"
30+
],
31+
"newlines-between": "always",
32+
"alphabetize": { "order": "asc", "caseInsensitive": true }
33+
}
34+
],
35+
"import/newline-after-import": "error",
36+
"import/no-duplicates": "error",
37+
38+
// Prettier takes over formatting rules now
39+
"prettier/prettier": "error"
40+
}
641
}

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @steadyfall

.github/workflows/deploy.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ name: Deploy to GitHub Pages
22

33
on:
44
push:
5-
branches: [main]
5+
tags:
6+
- 'v[0-9]+.[0-9]+.[0-9]+'
67

78
jobs:
89
build-and-deploy:

.github/workflows/lint-and-check.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: Lint and Type-checking
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- dev
8+
pull_request:
9+
branches:
10+
- main
11+
- dev
12+
13+
jobs:
14+
lint:
15+
name: ESLint & Prettier
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Setup Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: '18'
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Determine base branch
31+
id: vars
32+
run: |
33+
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
34+
echo "BASE_BRANCH=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV
35+
else
36+
echo "BASE_BRANCH=${{ github.ref_name }}" >> $GITHUB_ENV
37+
fi
38+
39+
- name: Fetch base branch
40+
run: |
41+
git fetch origin $BASE_BRANCH
42+
43+
- name: Get list of changed files
44+
id: files
45+
run: |
46+
echo "CHANGED_FILES=$(git diff --name-only --diff-filter=ACMRT origin/$BASE_BRANCH | tr '\n' ' ')" >> $GITHUB_ENV
47+
48+
- name: Lint JS/TS files with ESLint (no auto-fix)
49+
if: ${{ env.CHANGED_FILES != ''}}
50+
run: |
51+
FILES=$(echo "$CHANGED_FILES" | tr ' ' '\n' | grep -E '\.(js|jsx|ts|tsx)$' | xargs)
52+
if [ -n "$FILES" ]; then
53+
echo "Running ESLint on:"
54+
echo "$FILES"
55+
npx next lint --file $FILES
56+
else
57+
echo "No JS/TS files to lint."
58+
fi
59+
60+
- name: Format other files with Prettier (no auto-fix)
61+
if: ${{ env.CHANGED_FILES != ''}}
62+
run: |
63+
FILES=$(echo "$CHANGED_FILES" | tr ' ' '\n' | grep -E '\.(json|md|css|scss|html)$' | xargs)
64+
if [ -n "$FILES" ]; then
65+
echo "Running Prettier on:"
66+
echo "$FILES"
67+
npx prettier --check $FILES
68+
else
69+
echo "No files to format with Prettier."
70+
fi
71+
72+
type-check:
73+
name: Type Checking
74+
runs-on: ubuntu-latest
75+
76+
steps:
77+
- name: Checkout code
78+
uses: actions/checkout@v4
79+
80+
- name: Setup Node.js
81+
uses: actions/setup-node@v4
82+
with:
83+
node-version: '18'
84+
85+
- name: Install dependencies
86+
run: npm ci
87+
88+
- name: Type Check
89+
run: |
90+
echo "Running TypeScript type checking..."
91+
npx tsc --noEmit

.husky/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
npx lint-staged

.lintstagedrc.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const path = require('path');
2+
3+
const buildEslintCommand = (filenames) =>
4+
`next lint --fix --file ${filenames
5+
.map((f) => path.relative(process.cwd(), f))
6+
.join(' --file ')}`;
7+
8+
module.exports = {
9+
'*.{js,jsx,ts,tsx}': [buildEslintCommand, 'prettier --write'],
10+
'*.{json,md,css,scss,html}': ['prettier --write'],
11+
};

.prettierrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"singleQuote": true,
3+
"semi": true,
4+
"trailingComma": "all",
5+
"printWidth": 100,
6+
"tabWidth": 2,
7+
"arrowParens": "always",
8+
"plugins": ["prettier-plugin-tailwindcss"]
9+
}

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
11
# steadyfall.github.io
22

33
## color-palette
4+
45
main:
6+
57
- `text-pink-500`
68
- `text-thunderbird-600`
79
- `text-azure-radiance-600`
810
- `text-neon-green-500 dark:text-neon-green-400`
911

1012
across_colors:
13+
1114
- `text-midnight-blue-500`
1215
- `text-pink-500`
1316
- `text-orange-500`
1417
- `text-blue-violet-500`
1518

1619
highlighter:
20+
1721
- cyan: `bg-cyan-300 dark:bg-cyan-500/30`
1822
- pink/violet-web: `bg-[#ff77e4]`
1923
- slate-blue: `bg-[#7777ff]`
2024
- red: `bg-[#ff7777]`
2125
- yellow/lemon/laser-lemon: `bg-[#ffff77]`
2226

2327
## to-do:
28+
2429
- [x] check out about highlighting words
2530
- [ ] YAML file parser for experience, projects
2631
- [x] skills, education section

next.config.mjs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
/** @type {import('next').NextConfig} */
22
const nextConfig = {
3-
output: 'export',
3+
eslint: {
4+
ignoreDuringBuilds: true,
5+
},
46
};
57

68
export default nextConfig;
9+
10+
// import withMDX from '@next/mdx';
11+
12+
// /** @type {import('next').NextConfig} */
13+
// const nextConfig = {
14+
// output: 'export',
15+
// pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],
16+
// };
17+
18+
// export default withMDX()(nextConfig);

0 commit comments

Comments
 (0)