-
Notifications
You must be signed in to change notification settings - Fork 2
Terminal Feature
An interactive terminal-style navigation system built into the portfolio website, providing a unique command-line interface for browsing content.
The Terminal feature transforms the traditional breadcrumb navigation into an interactive command-line interface that allows users to navigate and interact with the portfolio using Unix-like terminal commands. It appears at the top of every page and provides an engaging, developer-friendly way to explore the site.
- Interactive Command Line: Type commands directly in the navigation bar
- Auto-completion: Tab completion for commands and paths
- Context-Aware Navigation: Intelligent suggestions based on current location
- Command History: Track and recall previous commands
- Built-in Commands: 25+ commands for navigation and interaction
- Customizable: Configure prompt symbol, username, and more
- Theme Integration: Follows your active theme colors
-
Keyboard Shortcut: Press
Ctrl+\`` (orCmd+`` on Mac) to focus the terminal
The terminal is always visible at the top of every page as part of the navigation bar. Simply:
- Click anywhere on the terminal bar to focus
-
Press
Ctrl+\`` (Windows/Linux) orCmd+`` (Mac) to focus from anywhere -
Type your command and press
Enter - Use Tab for auto-completion
Navigate between pages using familiar Unix-style paths.
# Navigate to specific pages
cd about-me
cd projects
cd blogs
cd gallery
cd admin
# Navigate home
cd ~
cd home
# Go back one level
cd ..
# Navigate to specific blog by title
cd blogs/My Blog Title
# Navigate to admin sections
cd admin/dashboard
cd admin/themesContext-Aware Features:
- When on
/blogs, you cancddirectly to blog titles - When in
/admin, you can navigate to admin sections - Tab completion suggests valid paths based on your location
Display available navigation options from current location.
ls # Shows available pages/sectionsDynamic Listing:
- Root (
/): Shows all main sections (about-me, blogs, projects, etc.) -
/blogs: Fetches and displays all blog titles -
/admin: Shows admin panel sections (dashboard, themes, config, etc.)
Display current page path.
pwd # Example output: /projects# Show current date and time
date
# Display user information
whoami
# View command history (last 10 commands)
history
# Get system information (browser, OS, theme, resolution)
sysinfo# Open resume in new tab
resume
# Copy email to clipboard
email
# List social media links
socials
# Navigate to projects page
projects# View current theme
theme
# Switch to light mode
theme light
# Switch to dark mode
theme dark# Print text to output
echo Hello, World!
# Show help menu with all commands
help
# Clear terminal output
clear# Display random ASCII art
ascii
# Roll a 6-sided die
roll
# Flip a coin
flip
# Ask the Magic 8-Ball a question
magic8 Will I get the job?
# Tell a programming joke
joke
# Party mode! (Rapid theme cycling with confetti)
discoThe terminal features intelligent Tab completion:
Type partial command and press Tab:
cd [Tab] # Suggests available paths
th [Tab] # Completes to "theme"
his [Tab] # Completes to "history"Context-aware path suggestions:
cd proj [Tab] # Completes to "projects"
cd blogs/My Bl [Tab] # Completes to full blog title
cd admin/th [Tab] # Completes to "themes"cd blogs/ [Tab] # Shows blog titles
cd admin/ [Tab] # Shows admin sectionsConfigure the terminal behavior in the Admin Panel under Config section:
{
"terminal": {
"promptSymbol": "โ", // Custom prompt symbol
"username": "Visitor", // Display name for whoami
"showGitBranch": true, // Show git:(master) indicator
"asciiArts": [ // Custom ASCII art
{
"name": "custom",
"art": " your\n ascii\n here"
}
]
}
}- Navigate to Admin Panel โ Config
- Locate the
terminalsection - Modify settings as needed
- Click Save Configuration
| Command | Description | Example |
|---|---|---|
cd [path] |
Navigate to path | cd projects |
ls |
List contents | ls |
pwd |
Print working directory | pwd |
| Command | Description | Example |
|---|---|---|
whoami |
Display user info | whoami |
date |
Show current date | date |
history |
Show command history | history |
sysinfo |
System information | sysinfo |
help |
Show all commands | help |
| Command | Description | Example |
|---|---|---|
resume |
Open resume | resume |
email |
Copy email | email |
socials |
List social links | socials |
projects |
Go to projects | projects |
theme [mode] |
Switch theme | theme dark |
echo [text] |
Print text | echo Hello! |
clear |
Clear output | clear |
reboot |
Reload page | reboot |
| Command | Description | Example |
|---|---|---|
ascii |
Random ASCII art | ascii |
roll |
Roll a die | roll |
flip |
Flip a coin | flip |
magic8 [q] |
Magic 8-Ball | magic8 Will it rain? |
joke |
Tell a joke | joke |
disco |
Party mode | disco |
- `Ctrl/Cmd + `` - Focus terminal from anywhere
-
Tab- Auto-complete command or path -
Enter- Execute command
-
cd ~orcd home- Return to homepage -
cd ..- Go back one level -
cd /path- Navigate from root (leading slash)
-
Quick Blog Access:
cd blogs/[Tab]then select from suggestions -
Admin Navigation:
cd admin/themesto jump directly to theme editor -
Multi-word Paths: Use exact titles:
cd blogs/My Blog Post Title
- Output appears in an overlay below the terminal
- Auto-dismisses after a few seconds
- Click
[Close]to dismiss manually - New command clears previous output
-
Component:
TerminalPath.jsinsrc/app/components/admin/ - Framework: Next.js with React hooks
- Styling: Tailwind CSS with CSS variables for theming
- Dependencies: canvas-confetti for disco mode
- Blog Caching: Fetches blog list once for better performance
- Context Awareness: Suggests paths based on current location
- Command History: Stores all executed commands
-
Async Operations: Fetches blogs dynamically for
lscommand - Theme Integration: Uses ThemeContext for dynamic theming
- Keyboard-first navigation
- Screen reader compatible
- Focus management
- High contrast support via theme
cd blogs # Navigate to blogs page
ls # List all blog titles
cd My First Blog # Open specific blogcd admin # Go to admin panel
ls # See admin sections
cd themes # Open theme editoremail # Copy contact email
socials # View all social links
resume # Open resume in new tabwhoami # Check current user
sysinfo # View system details
theme dark # Switch to dark mode- Ensure you're typing a valid command prefix
- Check if you're in the correct context (e.g., blogs path requires being on /blogs)
- Press
Enterto execute command - Verify command syntax with
help
- Ensure blogs exist in database
- Use exact blog title for navigation
- Check network tab for API errors
- Use
theme lightortheme dark(lowercase) - Verify theme system is properly configured
- Terminal commands are client-side only
- No server-side command execution
-
sudocommand intentionally blocked with humorous message - Admin navigation requires proper authentication
Potential features for future releases:
- Command aliases (e.g.,
clearโcls) - Arrow keys for command history navigation
- Search command for content
- Bookmark favorite paths
- Command scripting/macros
- Multi-line commands
- Output history scrollback
-
Global Search:
Ctrl/Cmd + K- Search all content instantly - Terminal: `Ctrl/Cmd + `` - Command-line navigation
- Complementary navigation methods for different use cases
- Global Search for finding content, Terminal for quick navigation
| Feature | Shortcut | Best For |
|---|---|---|
| Global Search | Ctrl/Cmd + K |
Finding specific content by keywords |
| Terminal | `Ctrl/Cmd + `` | Quick page navigation with commands |
- Global Search - Fast command palette search
- Admin Panel Guide - Learn about admin features
- Configuration Guide - Configure site settings
- Quick Start Guide - Get started quickly
Found a bug or have a feature request for the terminal?
- Check existing issues
- Submit detailed bug reports
- Suggest new commands or improvements
Note: The terminal feature is designed to enhance user experience while maintaining familiar Unix-like command patterns. It's both functional and fun, providing a unique way to explore the portfolio.
Portfolio Website Wiki โข Made with โค๏ธ by Aiyu Ayaan
Quick Links: ๐ Home โข โก Quick Start โข ๐ Installation โข โ๏ธ Admin Panel โข ๐ง API Docs โข ๐ Deploy โข ๐ Help
Need Help? Open an Issue โข Join Discussions โข Email: ayaan35200@gmail.com
ยฉ 2025 Aiyu Ayaan โข Privacy Policy โข Contributing Guidelines