asafarim-navlinks
Version:
A versatile React navigation component with unlimited multi-level dropdowns, four alignment options, mobile responsiveness, and customizable styling. Perfect for modern web applications.
89 lines (60 loc) • 2.56 kB
Markdown
# GitHub Pages Deployment Guide for asafarim-navlinks Demo
This document explains how the demo site for `asafarim-navlinks` is deployed to GitHub Pages.
## Automated Deployment
The demo is automatically built and deployed to GitHub Pages using a GitHub Actions workflow whenever changes are pushed to the main branch.
### How It Works
1. The GitHub Actions workflow (`.github/workflows/static.yml`) is triggered on:
- Push to the main branch
- Manual run from the Actions tab
2. The workflow:
- Checks out the repository
- Sets up Node.js and PNPM
- Installs dependencies for both the package and demo
- Builds the package
- Builds the demo
- Deploys the demo build to GitHub Pages
## Manual Deployment
You can also manually deploy the demo:
```bash
# Build the package and the demo for GitHub Pages
pnpm run demo:build-gh-pages
# Deploy to GitHub Pages using gh-pages
pnpm run demo:deploy
```
## Configuration Details
### GitHub Actions Workflow
The `.github/workflows/static.yml` file contains the complete GitHub Actions workflow.
### Vite Configuration
The `demo/vite.config.ts` file includes GitHub Pages-specific settings:
```ts
export default defineConfig({
// ...
base: './', // Set the base path for GitHub Pages deployment
build: {
outDir: 'dist',
assetsDir: 'assets',
// ...
}
// ...
})
```
### Asset References
All asset paths in the demo have been updated to use relative paths:
- In `index.html`, favicon path changed to `./assets/favicon.ico`
- In `App.tsx`, logo path changed to `./assets/logoT.svg`
### Special Files
- `demo/public/.nojekyll`: Prevents GitHub Pages from processing the site with Jekyll
- `demo/public/_redirects`: Ensures proper routing for single-page application
## Live Demo URL
The live demo is available at: [https://alisafari-it.github.io/asafarim-navlinks/](https://alisafari-it.github.io/asafarim-navlinks/)
## Troubleshooting
If the deployment fails or the demo doesn't work as expected:
1. Check the GitHub Actions workflow run for error messages
2. Verify that all asset paths are using relative paths (`./` prefix)
3. Make sure the Vite config has `base: './'` set
4. Confirm that the `.nojekyll` file exists in the build output
## Updating the Demo
1. Make your changes to the code
2. Test locally using `pnpm run demo`
3. Push changes to the main branch, which will trigger automatic deployment
4. Or manually deploy with `pnpm run demo:deploy`