This guide will help you customize your robotics engineering portfolio website to match your personal style and showcase your unique projects. The website is built with Jekyll and designed to be easily customizable without requiring extensive coding knowledge.
- Basic Configuration
- Adding Your Projects
- Customizing the Theme
- Modifying Page Content
- Customizing the Layout
- Adding Custom Features
- Maintenance Tips
The main configuration file for your website is _config.yml. This file controls the site-wide settings.
Open _config.yml and modify these key settings:
title: Your Name - Robotics Engineering Portfolio
description: A showcase of my robotics engineering projects and skills
url: "https://yourusername.github.io"
baseurl: "" # Leave empty if using yourusername.github.io, or add /repository-name if using a project repository
# Social media profiles - update with your own
social:
github: yourusername
linkedin: yourlinkedinusername
email: your.email@example.comProjects are stored as Markdown files in the _projects directory. Each project has its own file with front matter and content.
- Create a new Markdown file in the
_projectsdirectory, e.g.,my-new-project.md - Add the following front matter at the top of the file:
---
layout: project
title: Your Project Title
date: 2025-04-01
categories: [category1, category2]
featured: true # Set to true to display on the homepage
image: /assets/images/projects/your-project-image.jpg
excerpt: A brief description of your project that will appear in the project grid.
gallery:
- url: /assets/images/projects/project-image-1.jpg
alt: Image description
caption: Optional caption for the image
- url: /assets/images/projects/project-image-2.jpg
alt: Another image description
caption: Another optional caption
video: https://www.youtube.com/embed/your-video-id # Optional YouTube embed
---- Below the front matter, add your project content using Markdown:
## Project Overview
Describe your project here. You can use Markdown formatting for **bold**, *italic*, and other styles.
## Technical Specifications
- Item 1
- Item 2
- Item 3
## Development Process
Explain your development process here.
## Challenges and Solutions
Discuss challenges you faced and how you solved them.
## Results
Share the outcomes of your project.
## Future Improvements
List potential future enhancements.- Add your project images to the
assets/images/projects/directory
| Option | Description |
|---|---|
layout |
Always use project for project pages |
title |
The title of your project |
date |
The completion date (YYYY-MM-DD format) |
categories |
Array of categories for filtering (e.g., [autonomous, industrial]) |
featured |
Set to true to display on the homepage |
image |
Main image path for the project card and header |
excerpt |
Brief description for the project card |
gallery |
Array of additional images with captions |
video |
YouTube embed URL (optional) |
The main colors and styling variables are defined in the CSS files in the assets/css/ directory.
To change the color scheme:
- Open
assets/css/main.css - Locate the
:rootsection at the top - Modify the color variables:
:root {
--primary-color: #2563eb; /* Change to your preferred primary color */
--secondary-color: #4b5563; /* Change to your preferred secondary color */
--accent-color: #10b981; /* Change to your preferred accent color */
--background-color: #ffffff; /* Change for background */
--text-color: #1f2937; /* Change for main text */
}To change the fonts:
- Open
assets/css/visual-enhancements.css - Locate the font import at the top:
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Roboto+Mono:wght@400;500&display=swap');- Replace with your preferred Google Fonts
- Update the font-family in the body selector in
main.css:
body {
font-family: 'Your-Font-Name', sans-serif;
/* other properties */
}To modify the homepage:
- Open
index.html - Update the hero section content:
<section class="hero">
<div class="container">
<div class="hero-content">
<h1>Your Custom Headline</h1>
<p>Your custom introduction text goes here</p>
<a href="{{ '/projects' | relative_url }}" class="btn btn-primary">View Projects</a>
</div>
</div>
</section>- The featured projects section will automatically display projects with
featured: truein their front matter
To update your about page:
- Open
about.html - Modify the content sections:
- Profile information
- Education
- Skills
- Experience
To update your contact page:
- Open
contact.html - Update your contact information
- For the contact form to work, update the Formspree endpoint:
<form id="contact-form" action="https://formspree.io/f/your-formspree-endpoint" method="POST">- Sign up at Formspree to get your endpoint
To modify the header and navigation:
- Open
_includes/header.html - Update the navigation links as needed:
<nav class="site-nav">
<ul>
<li><a href="{{ '/' | relative_url }}" class="{% if page.url == '/' %}active{% endif %}">Home</a></li>
<li><a href="{{ '/projects' | relative_url }}" class="{% if page.url contains '/projects' %}active{% endif %}">Projects</a></li>
<li><a href="{{ '/about' | relative_url }}" class="{% if page.url == '/about' %}active{% endif %}">About</a></li>
<li><a href="{{ '/contact' | relative_url }}" class="{% if page.url == '/contact' %}active{% endif %}">Contact</a></li>
<!-- Add more links as needed -->
</ul>
</nav>To modify the footer:
- Open
_includes/footer.html - Update the footer content and social links:
<div class="footer-social">
<ul>
<li><a href="https://github.com/yourusername" target="_blank" rel="noopener noreferrer">GitHub</a></li>
<li><a href="https://linkedin.com/in/yourusername" target="_blank" rel="noopener noreferrer">LinkedIn</a></li>
<!-- Add more social links as needed -->
</ul>
</div>To add a blog to your portfolio:
- Create a
_postsdirectory in the root of your project - Add the following to your
_config.yml:
collections:
posts:
output: true
permalink: /blog/:year/:month/:day/:title/- Create a
blog.htmlfile in the root directory:
---
layout: default
title: Blog
permalink: /blog/
---
<section class="blog-section">
<div class="container">
<h1 class="page-title">Blog</h1>
<div class="blog-posts">
{% for post in site.posts %}
<div class="blog-post">
<h2 class="post-title"><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h2>
<p class="post-date">{{ post.date | date: "%B %d, %Y" }}</p>
<p class="post-excerpt">{{ post.excerpt }}</p>
<a href="{{ post.url | relative_url }}" class="btn btn-outline">Read More</a>
</div>
{% endfor %}
</div>
</div>
</section>- Create a
_layouts/post.htmlfile for blog post layout - Add blog posts as Markdown files in the
_postsdirectory with the naming conventionYYYY-MM-DD-title.md
To add a resume page:
- Create a
resume.htmlfile in the root directory - Add your resume content using HTML and CSS
- Add a link to the resume page in the navigation menu
To keep your portfolio fresh and relevant:
- Update Projects: Add new projects as you complete them
- Refresh Content: Periodically review and update your about page and skills
- Check Links: Ensure all links are working correctly
- Update Dependencies: Periodically update Jekyll and its dependencies
Always maintain a backup of your portfolio content:
- Keep a local copy of all files
- Use Git version control to track changes
- Consider using a private repository as an additional backup
To ensure your site loads quickly:
-
Optimize Images: Compress images before uploading
- Use tools like TinyPNG or ImageOptim
- Keep image dimensions appropriate for their display size
- Consider using WebP format for better compression
-
Minimize JavaScript: Combine and minify JavaScript files
- Use tools like Terser for JavaScript minification
-
Optimize CSS: Combine and minify CSS files
- Use tools like cssnano for CSS optimization
-
Enable Caching: Add appropriate cache headers
- Create a
.htaccessfile for Apache servers or configure Netlify/Vercel settings
- Create a
To maintain security:
- Keep Jekyll Updated: Regularly update Jekyll and its dependencies
- Use HTTPS: Ensure your site uses HTTPS (GitHub Pages provides this automatically)
- Sanitize User Inputs: If you add any forms or interactive elements
- Avoid Exposing Sensitive Information: Don't include private data in your repository
Regularly test your website:
- Cross-Browser Testing: Check your site in different browsers (Chrome, Firefox, Safari, Edge)
- Mobile Testing: Verify responsiveness on various device sizes
- Accessibility Testing: Use tools like WAVE to check accessibility
- Performance Testing: Use Google PageSpeed Insights to evaluate performance