feat: enhance podcast functionality and build pipeline

- Dynamically resolve image paths for podcast episodes in `episodes.11tydata.js`
- Add podcast metadata handling with inferred URLs for MP3 and transcripts
- Introduce search functionality with Lunr.js and a search index generator
- Update Eleventy path prefix handling to support environment variable override
- Add `.mp4` files to `.gitignore`
- Expand VSCode settings to include Markdown-Eleventy support and improved terminal history
- Add deployment script (`deploy.sh`) with remote rsync-based deployment and permission handling
- Adjust episode layout to use dynamic image paths and updated podcast metadata
- Add search and members page updates, including new URLs and search integration
- Update dependencies to include `html-to-text` and related packages for search indexing
This commit is contained in:
2024-12-23 13:30:22 -06:00
parent 5cdb6a4c88
commit 385694fb75
16 changed files with 405 additions and 34 deletions

View File

@@ -0,0 +1,23 @@
import markdownit from 'markdown-it';
import { convert } from 'html-to-text';
const md = markdownit({html: true})
class SearchIndex {
data() {
return {eleventyExcludeFromCollections:["episode"], layout: null}
}
render (data) {
const documents = data.collections.episode.map((episode)=>{
return {
url:`${this.url(episode.url)}`,
title: episode.data.title,
text: convert (episode.content),
season: episode.data.season,
episode: episode.data.episode
}})
return JSON.stringify(documents);
}
}
export default SearchIndex