Skip to content

Commit b6bc21e

Browse files
committed
search feature
1 parent c3ba207 commit b6bc21e

8 files changed

Lines changed: 591 additions & 481 deletions

File tree

README.md

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ This approach allows for more complex user interactions and immediate feedback t
103103
- Professional experience showcase
104104
- Local craft services section
105105
- MDX-based blog system with RSC support
106+
- **Blog search functionality** - Search blog posts by title, description, and tags
107+
- **Resources search functionality** - Search free resources by title, description, and features
106108
- Vibe Coding Cheatsheet - Professional TailwindCSS showcase & developer resource (Freebie)
107109
- Sourdough Corner - Local craft baking resource and guide (Freebie)
108110
- Enhanced error handling with user feedback
@@ -148,7 +150,20 @@ Your content here...
148150
</CodeBlock>
149151
```
150152

151-
4. RSS Feed:
153+
4. Search Functionality:
154+
155+
The blog includes a powerful search feature that allows users to find posts by:
156+
- **Title** - Search through post titles
157+
- **Description** - Search through post descriptions
158+
- **Tags** - Search through post tags
159+
160+
The search works seamlessly with the existing tag filter system, allowing users to combine tag filtering with text search. Search queries are synced with the URL, making search results shareable. The search interface includes:
161+
- Real-time filtering as you type
162+
- Result count display
163+
- Clear button to reset search
164+
- "No results" messaging when no posts match
165+
166+
5. RSS Feed:
152167

153168
The blog includes an RSS feed for subscribers to stay updated with new posts. The feed is available at `/feed.xml` and includes:
154169
- Full post content
@@ -327,6 +342,55 @@ The project uses the following environment variables:
327342
- `NEXT_PUBLIC_HOTJAR_ID` - Hotjar tracking ID
328343
- Additional environment variables can be added in `.env.local`
329344

345+
## Resources Page
346+
347+
The resources page (`/resources`) provides a comprehensive collection of free resources for digital wellness, automation, and neurodivergent-friendly tech solutions.
348+
349+
### Resource Management
350+
351+
Resources are managed through structured data in `src/lib/resources.ts` using TypeScript types defined in `src/types/resources.ts`. Each resource includes:
352+
- Title and subtitle
353+
- Description
354+
- Features list
355+
- Links to full resource pages
356+
- Download links (where applicable)
357+
- Visual styling (border colors, emojis)
358+
359+
### Search Functionality
360+
361+
The resources page includes a search feature that filters resources by:
362+
- **Title** - Search through resource titles
363+
- **Subtitle** - Search through resource subtitles
364+
- **Description** - Search through resource descriptions
365+
- **Features** - Search through resource feature lists
366+
367+
The search interface provides:
368+
- Real-time filtering as you type
369+
- Result count display
370+
- Clear button to reset search
371+
- "No results" messaging when no resources match
372+
- Maintains existing styling and layout
373+
374+
### Adding New Resources
375+
376+
To add a new resource, update the `freeResources` array in `src/lib/resources.ts`:
377+
378+
```typescript
379+
{
380+
id: 'unique-resource-id',
381+
title: 'Resource Title',
382+
subtitle: 'Resource Subtitle',
383+
description: 'Resource description...',
384+
emoji: '🎯',
385+
features: ['Feature 1', 'Feature 2'],
386+
href: '/resource-page',
387+
downloadHref: '/path/to/download.pdf', // Optional
388+
downloadLabel: 'Download PDF', // Optional
389+
borderColor: 'green' | 'purple',
390+
type: 'free',
391+
}
392+
```
393+
330394
## Sections
331395

332396
1. Hero - Introduction and primary CTAs
@@ -335,9 +399,10 @@ The project uses the following environment variables:
335399
4. Experience - Professional background
336400
5. Contact - Booking options and rates
337401
6. Newsletter - Industry insights signup
338-
7. Blog - Technical articles and resources
339-
8. Vibe Coding Cheatsheet - Professional TailwindCSS showcase & developer resource (Freebie)
340-
9. Sourdough Corner - Local craft baking resource and guide (Freebie)
402+
7. Blog - Technical articles and resources with search functionality
403+
8. Resources - Free resources hub with search functionality
404+
9. Vibe Coding Cheatsheet - Professional TailwindCSS showcase & developer resource (Freebie)
405+
10. Sourdough Corner - Local craft baking resource and guide (Freebie)
341406

342407
## Code Standards
343408

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/feed.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<link>https://pythonessprogrammer.com</link>
66
<description>Thoughts on technology, accessibility, and the human experience.</description>
77
<language>en</language>
8-
<lastBuildDate>Sun, 09 Nov 2025 21:33:11 GMT</lastBuildDate>
8+
<lastBuildDate>Wed, 12 Nov 2025 19:19:37 GMT</lastBuildDate>
99
<atom:link href="https://pythonessprogrammer.com/feed.xml" rel="self" type="application/rss+xml" />
1010

1111
<item>

0 commit comments

Comments
 (0)