Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
bc31ebe
Initialize project structure with Next.js, Tailwind CSS, and essentia…
rudra-iitm Mar 17, 2025
370eab4
Add new components and enhance layout with smooth scrolling and anima…
rudra-iitm Mar 25, 2025
b38b1aa
Downgrade rehype-slug dependency from version 8.0.0 to 6.0.0
rudra-iitm Mar 25, 2025
be8ea41
Refactor footer and info section components for improved layout and s…
rudra-iitm Mar 25, 2025
62af8d9
feat(authors): introduce reusable AuthorCard component (#5)
gativarshney Nov 15, 2025
52f78af
Revert "feat(authors): introduce reusable AuthorCard component (#5)" …
rudra-iitm Nov 15, 2025
03ffd43
feat(ci): add GitHub Actions workflow for building and testing Next.j…
rudra-iitm Nov 15, 2025
39fc589
feat(authors): add reusable AuthorCard component and fix linting issu…
gativarshney Nov 16, 2025
77e2fb7
feat(news): integrate AuthorCard into news post layout (#9)
gativarshney Nov 27, 2025
7bc801e
feat(layout): add Navbar component to RootLayout and comment out Navb…
rudra-iitm Dec 7, 2025
64083d9
Remove Navbar component from page
rudra-iitm Dec 12, 2025
49a893f
feat(assets): update image paths to use basePath for production envir…
rudra-iitm Dec 12, 2025
2ea808d
feat(news): migrate all posts from old Jekyll site into Next.js setup…
gativarshney Dec 14, 2025
63f5532
fix(config): ensure trailingSlash is set to true in Next.js configura…
rudra-iitm Dec 14, 2025
f403043
feat(posts): display post publication date on article pages (#21)
gativarshney Mar 5, 2026
25844d5
feat(posts): add automatic redirect support for previous slugs (#20)
gativarshney Mar 5, 2026
bf73641
feat(search): implement build-time indexed client-side search system …
gativarshney Mar 6, 2026
e4abb22
fix(search): include generated search index for GitHub Pages deployme…
gativarshney Mar 6, 2026
41f0160
Make homepage fully functional and align with current OpenPrinting si…
gativarshney Mar 8, 2026
d8084e8
feat(ui): revamp entire site UI with modern minimalistic design (#23)
rudra-iitm Mar 9, 2026
8b43294
feat(config): add environment variable for base path and update image…
rudra-iitm Mar 9, 2026
4499d64
fix(news-section): update link href to use item slug directly for imp…
rudra-iitm Mar 9, 2026
8abe0ee
refactor(news-section): remove hardcoded base path for improved envir…
rudra-iitm Mar 9, 2026
7c3aa34
refactor(downloads): introduce dynamic base path for image sources ba…
rudra-iitm Mar 9, 2026
364a848
refactor(assets): streamline image path handling with dynamic base pa…
rudra-iitm Mar 9, 2026
8802e4b
refactor(news-page): enhance layout and styling for improved readabil…
rudra-iitm Mar 9, 2026
7168cb6
fix: Improve text wrapping for prose content and update the search in…
rudra-iitm Mar 9, 2026
c3dde4f
feat: Embed YouTube videos directly using iframes and add documentati…
rudra-iitm Mar 9, 2026
393d860
git: Ignore generated static search index file.
rudra-iitm Mar 9, 2026
497a05a
feat: remove static search index file
rudra-iitm Mar 9, 2026
fca3847
Revert "feat: remove static search index file"
rudra-iitm Mar 9, 2026
7e1c6d0
feat: Display author information and formatted dates on news posts an…
rudra-iitm Mar 9, 2026
643dddc
feat: Adjust hero section layout, alignment, and height.
rudra-iitm Mar 9, 2026
605f308
docs: update README with a comprehensive project description, setup i…
rudra-iitm Mar 9, 2026
06e658f
refactor: remove `generatedAt` field from static search index.
rudra-iitm Mar 9, 2026
8e3d8d8
feat: Implement theme switching functionality with a new theme toggle…
rudra-iitm Mar 9, 2026
c616b7b
feat: Adjust hero section minimum height for responsiveness, remove v…
rudra-iitm Mar 9, 2026
c16e6d7
style: Add responsive styling for iframes within prose content.
rudra-iitm Mar 9, 2026
8d0dc7d
feat: extend search index to cover documentation, projects and pages …
harshvns Mar 9, 2026
b89c1fa
feat: add static search index and include it in version control
rudra-iitm Mar 9, 2026
706fb81
feat: Replace Disqus comment system with Giscus comments. (#38)
rudra-iitm Mar 9, 2026
097b491
feat: Add a desktop hamburger menu with a popover for additional navi…
rudra-iitm Mar 10, 2026
116c6e3
feat(gsoc): migrate and polish GSoC experience with year/project page…
sam-shubham Mar 11, 2026
d03eb53
Fix/issue 43 missing routes and data (#44)
ishpreet404 Mar 11, 2026
5f4433c
fix(blog): update author avatars in blog post author boxes (#51)
gativarshney Mar 12, 2026
40d6721
feat(news): add author avatars to front page news boxes (#52)
gativarshney Mar 12, 2026
94b73dc
fix: Prefix author image sources with basePath for correct asset load…
rudra-iitm Mar 12, 2026
8418b5b
Mentor's Image Not loading in production due to unconfigured basepath…
sam-shubham Mar 12, 2026
8222549
refactor: Migrate dynamic route from `[slug]` to `[...slug]` for catc…
rudra-iitm Mar 12, 2026
6cafce1
Improve hero banner appearance in light theme (#53)
gativarshney Mar 12, 2026
7c5ef4e
fix(escape-identifier): Remove backslashes from titles in post metada…
sam-shubham Mar 20, 2026
48a4736
feat(Teaser image) added support for teaser image (#55)
sam-shubham Mar 20, 2026
7675670
feat(gsod): complete and finalize GSoD page with content, layout, and…
gativarshney Mar 20, 2026
bf811f2
fix(static-index): remove backslashes from title in search index
rudra-iitm Mar 20, 2026
3259fb7
Initial plan
Copilot Mar 24, 2026
e194b15
Initial plan
Copilot Mar 24, 2026
dd8a349
Add RSS 2.0 feed for blog posts
Copilot Mar 24, 2026
ff4b1b6
feat: add not-found page with trailing slash redirect for GitHub Pages
Copilot Mar 24, 2026
e221e9a
Merge pull request #68 from rudra-iitm/copilot/add-rss-feed-notification
rudra-iitm Mar 24, 2026
7d158ca
Merge pull request #67 from rudra-iitm/copilot/audit-routes-and-funct…
rudra-iitm Mar 24, 2026
8757cc7
feat: add UI components and utility functions for printer management
rudra-iitm Apr 3, 2026
07963b0
Refactor PrinterSearch component and UI elements
rudra-iitm Apr 3, 2026
98fcb95
feat: enhance accessibility and improve UI elements across components
rudra-iitm Apr 3, 2026
c3d2e83
Fix build command in deploy workflow
rudra-iitm Apr 3, 2026
6193bcf
refactor: centralize site configuration and environment-specific URL …
rudra-iitm Apr 3, 2026
bc34bd3
feat: update page styles for improved accessibility and visual consis…
rudra-iitm Apr 3, 2026
5761bfa
fix: adjust padding in PpdViewerClient for improved layout
rudra-iitm Apr 3, 2026
d9d9787
feat: enhance search functionality with Foomatic integration and impr…
rudra-iitm Apr 22, 2026
b9ecc1e
fix: update link for Printers in Navbar to point to Foomatic
rudra-iitm Apr 22, 2026
69f984c
refactor: migrate foomatic scripts to TypeScript and restructure data…
rudra-iitm Apr 22, 2026
1c975af
Add OOSC 4.0 IIIT Allahabad news post; adopt Yarn 4 node-modules linker
rudra-iitm Jun 4, 2026
df7f3d2
Configure site for production deployment to OpenPrinting org repo
rudra-iitm Jun 4, 2026
2d9d876
Migrate site to the Next.js rebuild (preserve full history)
rudra-iitm Jun 4, 2026
90247e1
ci: use Yarn 4 via Corepack in build/deploy workflows
rudra-iitm Jun 4, 2026
07b2f5e
ci: drop setup-node yarn cache so Corepack pin doesn't abort
rudra-iitm Jun 4, 2026
ba6df71
build: run data generation explicitly (Yarn 4 skips prebuild hook)
rudra-iitm Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM node:20-bookworm

ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8

RUN apt-get update && apt-get install -y \
foomatic-db-engine \
foomatic-db-compressed-ppds \
cups-filters \
ghostscript \
bsdmainutils \
libxml2-utils \
xsltproc \
python3 \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
18 changes: 18 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "openprinting-github-io",
"build": {
"dockerfile": "Dockerfile"
},
"forwardPorts": [3000],
"postCreateCommand": "yarn install && yarn foomatic:data:generate",
"remoteUser": "node",
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"bradlc.vscode-tailwindcss"
]
}
}
}
80 changes: 80 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Build & Test Next.js site

on:
pull_request:
types: [opened, synchronize, reopened]

push:
branches: [master]

workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Detect package manager
id: pm
run: |
# Prefer pnpm, then yarn, otherwise npm
if [ -f pnpm-lock.yaml ]; then
echo "manager=pnpm" >> $GITHUB_OUTPUT
echo "install=install --frozen-lockfile" >> $GITHUB_OUTPUT
echo "runner=pnpm run" >> $GITHUB_OUTPUT
elif [ -f yarn.lock ]; then
echo "manager=yarn" >> $GITHUB_OUTPUT
echo "install=install --immutable" >> $GITHUB_OUTPUT
echo "runner=yarn" >> $GITHUB_OUTPUT
else
echo "manager=npm" >> $GITHUB_OUTPUT
echo "install=ci" >> $GITHUB_OUTPUT
echo "runner=npm run" >> $GITHUB_OUTPUT
fi

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20

# Corepack must be enabled *after* setup-node so the Yarn 4 shim attaches
# to the Node that runs the build. (setup-node's built-in `cache: yarn`
# is intentionally omitted: its `yarn cache dir` probe runs the runner's
# Yarn 1, which aborts on the `packageManager: yarn@4` pin.)
- name: Enable Corepack
run: corepack enable

- name: Install Foomatic system packages
run: |
sudo apt-get update
sudo apt-get install -y \
foomatic-db-engine \
foomatic-db-compressed-ppds \
cups-filters \
ghostscript \
bsdmainutils \
libxml2-utils \
xsltproc \
python3 \
python3-pip

- name: Install dependencies
run: ${{ steps.pm.outputs.manager }} ${{ steps.pm.outputs.install }}

- name: Run linter
run: ${{ steps.pm.outputs.runner }} lint

- name: Build Next.js
run: ${{ steps.pm.outputs.runner }} build
93 changes: 93 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Deploy Next.js site to Pages

on:
push:
branches: [master]

workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Detect package manager
id: detect-package-manager
run: |
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
echo "manager=yarn" >> $GITHUB_OUTPUT
echo "command=install --immutable" >> $GITHUB_OUTPUT
echo "runner=yarn" >> $GITHUB_OUTPUT
exit 0
elif [ -f "${{ github.workspace }}/package.json" ]; then
echo "manager=npm" >> $GITHUB_OUTPUT
echo "command=ci" >> $GITHUB_OUTPUT
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
exit 0
else
echo "Unable to determine package manager"
exit 1
fi
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
# Enable Corepack after setup-node so the Yarn 4 shim attaches to the
# active Node. setup-node's `cache: yarn` is omitted because its
# `yarn cache dir` probe runs Yarn 1 and aborts on the packageManager pin.
- name: Enable Corepack
run: corepack enable
- name: Install Foomatic system packages
run: |
sudo apt-get update
sudo apt-get install -y \
foomatic-db-engine \
foomatic-db-compressed-ppds \
cups-filters \
ghostscript \
bsdmainutils \
libxml2-utils \
xsltproc \
python3 \
python3-pip
- name: Setup Pages
uses: actions/configure-pages@v5
with:
static_site_generator: next
- name: Restore cache
uses: actions/cache@v4
with:
path: |
.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-
- name: Install dependencies
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
- name: Build with Next.js
run: ${{ steps.detect-package-manager.outputs.runner }} build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./out

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
75 changes: 44 additions & 31 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,32 +1,45 @@
# General
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
Gemfile.lock
*.pem
/cache
/public/foomatic-db
/public/ppds
/public/feed.xml

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
Loading
Loading