justin.deal/src/scripts/search/contentSearch.js

39 lines
1.2 KiB
JavaScript

/**
* Content search module for articles and projects
* Provides specialized search functionality for content items
*/
import { initializeBaseSearch } from './baseSearch.js';
/**
* Initialize search functionality for articles
* @returns {Object} Alpine.js data object with search functionality
*/
export function initializeArticlesSearch() {
return initializeBaseSearch('.article-item', {
nameAttribute: 'data-title',
tagsAttribute: 'data-tags',
additionalAttributes: ['data-description'],
noResultsMessage: 'No articles found',
allItemsMessage: 'Showing all articles',
resultCountMessage: (count) => `Found ${count} articles`,
itemLabel: 'articles'
});
}
/**
* Initialize search functionality for projects
* @returns {Object} Alpine.js data object with search functionality
*/
export function initializeProjectsSearch() {
return initializeBaseSearch('.project-item', {
nameAttribute: 'data-title',
tagsAttribute: 'data-tags',
additionalAttributes: ['data-description', 'data-github', 'data-live'],
noResultsMessage: 'No projects found',
allItemsMessage: 'Showing all projects',
resultCountMessage: (count) => `Found ${count} projects`,
itemLabel: 'projects'
});
}