diff --git a/.gitignore b/.gitignore index f40fbd8..fdda7be 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ _site .jekyll-cache .jekyll-metadata vendor +.DS_Store diff --git a/_blogs/README.md b/_blogs/README.md new file mode 100644 index 0000000..c10f6bf --- /dev/null +++ b/_blogs/README.md @@ -0,0 +1,312 @@ +# Blog System Guide + +This directory contains all blog posts for the Wolverine Robotics website. + +## Quick Start: Adding a New Blog Post + +### Step 1: Create Blog Directory Structure + +Each blog post must be in its own directory with the following structure: + +```bash +_blogs/your-blog-title/ +├── blog.md # Your blog content +└── assets/ + └── thumbnail.png # Required thumbnail image (800x600 recommended) +``` + +**Create the structure:** +```bash +mkdir -p _blogs/your-blog-title/assets +touch _blogs/your-blog-title/blog.md +``` + +**Naming convention**: Use lowercase with hyphens (e.g., `my-awesome-robot-build`) + +### Step 2: Add Thumbnail Image + +**IMPORTANT**: Place a `thumbnail.jpg` file in the `assets/` folder. This image will be: +- Displayed as a card thumbnail on the blog index page +- Used as a hero banner on the blog post page (350px height, limited to 50% viewport height) + +**Recommended specs:** +- Filename: `thumbnail.jpg` (exactly - required) +- Dimensions: 800x600 pixels (or 4:3 aspect ratio recommended) +- Format: JPG, PNG, or SVG +- Size: Under 500KB for faster loading + +**Pro Tip:** During development, you can duplicate `thumbnail.jpg` to create placeholder images: +```bash +# Create placeholder images for your blog +cp _blogs/your-blog-title/assets/thumbnail.jpg _blogs/your-blog-title/assets/placeholder-image.jpg +``` +Then replace them with real images later! + +### Step 3: Add Front Matter + +At the top of your blog file, add the following front matter: + +```yaml +--- +layout: blog-post +title: "Your Blog Post Title" +subtitle: "A short subtitle describing the post" +date: 2025-11-12 +author: "Your Name" +excerpt: "A brief summary of the blog post that appears on the blog index page." +--- +``` + +**Required fields**: +- `layout`: Must be `blog-post` +- `title`: The main title of your blog post +- `date`: Publication date in YYYY-MM-DD format + +**Optional fields**: +- `subtitle`: Appears below the title on the blog post page +- `author`: Name of the author +- `excerpt`: Summary text shown on the blog index page + +### Step 4: Write Your Content + +After the front matter in `blog.md`, write your blog content using Markdown: + +```markdown +## Your First Section + +Write your content here using **Markdown** formatting. + +### Subsection + +- Bullet points +- Are easy to create + +1. Numbered lists +2. Work too + +### Code Examples + +You can include code blocks: + +\```java +public void autonomousInit() { + robot.resetSensors(); +} +\``` +``` + +### Step 5: Add Additional Images (Optional) + +You can add more images beyond the thumbnail: + +1. **Add your images** to the assets folder: + ```bash + _blogs/your-blog-title/assets/image1.jpg + _blogs/your-blog-title/assets/robot-photo.png + ``` + +2. **Reference images** in your blog post: + ```markdown +  + ``` + +**Quick Tip for Development:** +If you don't have all your images ready yet, duplicate `thumbnail.jpg`: +```bash +cp _blogs/your-blog-title/assets/thumbnail.jpg _blogs/your-blog-title/assets/temp-image.jpg +``` +This lets you preview your blog layout while you gather real photos! + +## Blog Post Structure + +### Recommended Structure + +```markdown +--- +layout: blog-post +title: "Your Title" +date: 2025-11-12 +author: "Your Name" +excerpt: "Brief summary" +--- + +## Introduction + +Start with an engaging introduction. + +## Main Content + +### Section 1 +Content here... + +### Section 2 +More content... + +## Conclusion + +Wrap up your post. + +--- + +*Additional notes or credits* +``` + +## Markdown Formatting Guide + +### Headers +```markdown +## Level 2 Header +### Level 3 Header +#### Level 4 Header +``` + +### Text Formatting +```markdown +**Bold text** +*Italic text* +***Bold and italic*** +`Inline code` +``` + +### Links +```markdown +[Link Text](https://example.com) +[Internal Link]({{ '/blog/' | relative_url }}) +``` + +### Images +```markdown + +``` + +### Lists +```markdown +- Unordered +- List +- Items + +1. Ordered +2. List +3. Items +``` + +### Code Blocks +````markdown +```language +code here +``` +```` + +Supported languages: `java`, `python`, `javascript`, `bash`, `cpp`, etc. + +### Blockquotes +```markdown +> This is a quote +> It can span multiple lines +``` + +### Tables +```markdown +| Header 1 | Header 2 | +|----------|----------| +| Cell 1 | Cell 2 | +| Cell 3 | Cell 4 | +``` + +### Horizontal Rule +```markdown +--- +``` + +## Examples + +See the existing blog posts for examples: +- `my-first-blog.md` - Basic blog post structure +- `competition-recap-2024.md` - Blog with code examples and sections + +## Testing Your Blog Post + +After creating your blog post: + +1. **Build the site**: + ```bash + bundle exec jekyll build + ``` + +2. **Serve locally** (optional): + ```bash + bundle exec jekyll serve + ``` + Then visit `http://localhost:4000/blog/` in your browser + +3. **Check for errors** in the build output + +## Tips for Great Blog Posts + +1. **Use descriptive titles** - Make it clear what the post is about +2. **Write engaging excerpts** - This appears on the blog index, make it compelling +3. **Break up long content** - Use headers to organize your content +4. **Include visuals** - Images make posts more engaging +5. **Add code examples** - Technical posts benefit from code snippets +6. **Proofread** - Check for spelling and grammar errors +7. **Link to related content** - Connect to other pages or resources +8. **Update dates** - Use the actual publication date + +## Complete Blog Workflow + +### Standard Workflow (With Thumbnail) + +```bash +# 1. Create the folder structure +mkdir -p _blogs/my-new-post/assets + +# 2. Create the blog file +touch _blogs/my-new-post/blog.md + +# 3. Add thumbnail image (REQUIRED) +cp ~/Desktop/my-thumbnail.jpg _blogs/my-new-post/assets/thumbnail.jpg + +# 4. (Optional) Add additional images +cp ~/Desktop/robot-photo.jpg _blogs/my-new-post/assets/ + +# 5. Edit blog.md and add your content +# (Use your favorite text editor) + +# 6. Build and test +bundle exec jekyll build +``` + +### Example Complete Blog Structure + +``` +_blogs/ +└── competition-recap-2024/ + ├── blog.md # Main blog content + └── assets/ + ├── thumbnail.jpg # Required thumbnail (shows on index & banner) + ├── robot-field.jpg # Additional images + └── pit-crew.jpg # More images +``` + +## Troubleshooting + +### Blog post not showing up? +- Check that the date is not in the future +- Verify the front matter is correctly formatted +- Ensure the file is in the `_blogs` directory +- Check for YAML syntax errors in the front matter + +### Images not displaying? +- Verify the image path is correct +- Make sure you're using the `relative_url` filter +- Check that the image file exists in the assets folder +- Try rebuilding the site + +### Build errors? +- Check YAML front matter syntax (proper indentation, quotes) +- Look for unclosed code blocks +- Verify all liquid tags are properly formatted + +## Questions? + +If you have questions about adding blog posts, contact the webmaster or check the Jekyll documentation at https://jekyllrb.com/docs/ diff --git a/_blogs/competition-recap-2024/assets/pit-crew.jpg b/_blogs/competition-recap-2024/assets/pit-crew.jpg new file mode 100644 index 0000000..ef07ffe Binary files /dev/null and b/_blogs/competition-recap-2024/assets/pit-crew.jpg differ diff --git a/_blogs/competition-recap-2024/assets/thumbnail.jpg b/_blogs/competition-recap-2024/assets/thumbnail.jpg new file mode 100644 index 0000000..ef07ffe Binary files /dev/null and b/_blogs/competition-recap-2024/assets/thumbnail.jpg differ diff --git a/_blogs/competition-recap-2024/blog.md b/_blogs/competition-recap-2024/blog.md new file mode 100644 index 0000000..4825fa5 --- /dev/null +++ b/_blogs/competition-recap-2024/blog.md @@ -0,0 +1,90 @@ +--- +layout: blog-post +title: "2024 Regional Competition Recap" +subtitle: "Our journey through the regional championships" +date: 2024-10-15 +author: "Team Captain" +excerpt: "A detailed look at our performance at the 2024 regional competition, including our strategies, challenges, and key takeaways." +--- + +## Competition Day 1: Qualification Matches + +Our first day at regionals was intense! We competed in 6 qualification matches and learned a lot about our robot's capabilities. + +### Match Highlights + +- **Match 1**: Started strong with a 15-point autonomous routine +- **Match 3**: Alliance victory with a combined score of 145 points +- **Match 5**: Recovered from a mechanical issue mid-match + +### Technical Challenges + +During Match 4, we experienced an issue with our intake mechanism. Our pit crew worked quickly between matches to diagnose and fix the problem: + +```python +def diagnose_intake(): + # Check motor current draw + if intake_motor.current > MAX_CURRENT: + print("Motor overheating - check for obstructions") + return False + + # Check encoder readings + if abs(intake_encoder.position - target_position) > TOLERANCE: + print("Encoder drift detected - recalibrate") + return False + + return True +``` + +## Competition Day 2: Alliance Selection & Playoffs + +After qualifying in 8th place, we were selected by the 3rd seed alliance! + +### Playoff Performance + +Our alliance made it to the semifinals. While we didn't advance to finals, we learned valuable lessons: + +1. **Communication is key**: Clear driver-operator coordination improved our cycle times +2. **Defensive strategy**: Successfully defended against opposing alliances in crucial moments +3. **Adaptability**: Adjusted our strategy based on alliance partners' strengths + +### By the Numbers + +- Total matches: 11 +- Win-Loss record: 7-4 +- Average score: 82 points +- Highest score: 128 points + +## Competition Photos + +Here are some photos from the competition: + + +*Our robot in action during a qualification match* + + +*The amazing pit crew working hard between matches* + +*Note: These are placeholder images. Replace with actual competition photos!* + +## Lessons Learned + +1. **Mechanical reliability** is crucial - redundancy in critical systems +2. **Practice makes perfect** - more drive team practice needed +3. **Scouting data** helped us understand our competition +4. **Team spirit** kept us motivated through challenges + +## Looking Forward + +We're already planning improvements for the next competition: + +- Redesigning the intake system for better reliability +- Adding sensors for improved autonomous accuracy +- Strengthening the climbing mechanism +- Expanding our autonomous routine options + +Thank you to our mentors, sponsors, and families for supporting us throughout this competition! + +--- + +*Want to learn more? Check out our other blog posts or contact us!* diff --git a/_blogs/my-first-blog/assets/example-image.jpg b/_blogs/my-first-blog/assets/example-image.jpg new file mode 100644 index 0000000..ef07ffe Binary files /dev/null and b/_blogs/my-first-blog/assets/example-image.jpg differ diff --git a/_blogs/my-first-blog/assets/team-photo.jpg b/_blogs/my-first-blog/assets/team-photo.jpg new file mode 100644 index 0000000..ef07ffe Binary files /dev/null and b/_blogs/my-first-blog/assets/team-photo.jpg differ diff --git a/_blogs/my-first-blog/assets/thumbnail.jpg b/_blogs/my-first-blog/assets/thumbnail.jpg new file mode 100644 index 0000000..ef07ffe Binary files /dev/null and b/_blogs/my-first-blog/assets/thumbnail.jpg differ diff --git a/_blogs/my-first-blog/blog.md b/_blogs/my-first-blog/blog.md new file mode 100644 index 0000000..2c10e9d --- /dev/null +++ b/_blogs/my-first-blog/blog.md @@ -0,0 +1,64 @@ +--- +layout: blog-post +title: "My First Blog Post" +subtitle: "An introduction to our robotics team's blog" +date: 2025-11-12 +author: "Team 5596" +excerpt: "Welcome to the Wolverine Robotics blog! This is our first post where we introduce our team and share what we're working on." +--- + +## Welcome to Our Blog! + +This is an example blog post for **Wolverine Robotics Team 5596**. We're excited to share our journey, experiences, and technical insights with the robotics community. + +### What We'll Be Sharing + +- Competition updates and results +- Technical tutorials and build logs +- Team events and community outreach +- Behind-the-scenes looks at our robot development + +### Our Robot This Season + +We've been hard at work designing and building our competition robot. Here are some highlights: + +1. **Drive System**: We implemented a swerve drive for maximum maneuverability +2. **Intake Mechanism**: Custom-designed to handle game pieces efficiently +3. **Autonomous Programming**: Utilizing computer vision and path planning + +### Including Images + +You can add images from your blog's assets folder like this: + + + +Here's another example with a team photo: + + + +*Note: In production, replace these placeholder images with your actual photos!* + +### Code Examples + +Here's a sample of our autonomous code: + +```java +public void autonomousInit() { + // Initialize autonomous mode + robot.resetSensors(); + pathPlanner.loadPath("auto-path-1"); +} + +public void autonomousPeriodic() { + // Run autonomous commands + pathPlanner.followPath(); +} +``` + +### Conclusion + +Stay tuned for more updates as we progress through the season. Follow us on social media and check back here regularly for new content! + +--- + +*Posted by {{ page.author }} on {{ page.date | date: "%B %d, %Y" }}* diff --git a/_config.yml b/_config.yml index af1248f..35d9540 100644 --- a/_config.yml +++ b/_config.yml @@ -16,13 +16,13 @@ collections: permalink: /:name/ blogs: output: true - permalink: /blog/:title/ + permalink: /blog/:path/ defaults: - scope: path: "" type: blogs values: - layout: post + layout: blog-post header_pages: - _pages/home.html - _pages/about.html diff --git a/_layouts/.gitkeep b/_layouts/.gitkeep deleted file mode 100644 index 01baf9f..0000000 --- a/_layouts/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -Empty folder but to be filled out later \ No newline at end of file diff --git a/_layouts/base.html b/_layouts/base.html index 4cef610..9a46616 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -4,6 +4,7 @@
Posts are pulled automatically from files inside the _blogs/ directory.
No posts yet. Add markdown files to _blogs/ to populate this section.
{{ post.excerpt | strip_html | truncate: 160 }}
- + {% assign blog_path_parts = blog.path | split: '/' %} + {% assign blog_folder = blog_path_parts[1] %} + {% capture thumbnail_url %}/blog/{{ blog_folder }}/assets/thumbnail.jpg{% endcapture %} + {% if blog.path contains '/' %} + +{{ blog.excerpt }}
+ {% endif %} + +No blog posts yet!
+Check back soon for updates from Team 5596.
+Keep contributors inspired with recurring story themes.
+We write about a variety of topics related to FIRST Robotics and our team: