import dotenv from 'dotenv' import config from '../nuxt.config.js' import VideoPlayer from '../components-eleventy/video/player.js' import VideoRow from '../components-eleventy/video/row.js' import { getRouteType } from '../helpers/app-derived.js' import { buildVideoStructuredData } from '../helpers/structured-data.js' // Setup dotenv dotenv.config() export const myChannelId = 'UCB3jOb5QVjX7lYecvyCoTqQ' export const makeTitle = function ( name ) { // console.log('tvEntry', tvEntry) return `${ name } - ${ config.head.title }` } export const makeDescription = function ( tvEntry ) { if ( tvEntry.payload.featuredApps.length === 0 ) return 'Apple Silicon performance and support videos' const featuredAppsString = tvEntry.payload.featuredApps.slice(0, 5).map(app => app.name).join(', ') // console.log('tvEntry.payload.featuredApps', tvEntry.payload.featuredApps) return `Apple Silicon performance and support videos for ${ featuredAppsString }` } function renderFeaturedApps ( featuredApps ) { return /* html */`
` } class TV { // or `async data() {` // or `get data() {` data () { return { layout: 'default.11ty.js', pagination: { data: 'eleventy-endpoints', size: 1, alias: 'tvEntry', before: function( endpoint ) { // console.log('Before runs') return endpoint.filter( entry => { const routeType = getRouteType( entry.route ) return routeType === 'tv' }) }, }, // tags: [ 'tv' ], eleventyComputed: { title: data => { // Declare dependencies for Eleventy // https://www.11ty.dev/docs/data-computed/#declaring-your-dependencies data.tvEntry return makeTitle( data.tvEntry.payload.video.name ) }, description: ( data ) => { // Declare dependencies for Eleventy // https://www.11ty.dev/docs/data-computed/#declaring-your-dependencies data.tvEntry return makeDescription( data.tvEntry ) }, headLinkTags: data => { // Declare dependencies for Eleventy // https://www.11ty.dev/docs/data-computed/#declaring-your-dependencies data.tvEntry return [ // Preload video thumbnail // { 'rel': 'preload', 'as': 'image', 'href': `https://i.ytimg.com/vi_webp/${ data.tvEntry.payload.video.id }/sddefault.webp` }, ] }, structuredData: data => { // Declare dependencies for Eleventy // https://www.11ty.dev/docs/data-computed/#declaring-your-dependencies data.tvEntry return buildVideoStructuredData( data.tvEntry.payload.video, data.tvEntry.payload.featuredApps, { siteUrl: process.env.URL } ) } }, permalink: ( data ) => { return data.tvEntry.route.substring(1) + '/' } } } async render( data ) { const { tvEntry: { // route, payload: { video, relatedVideos = [], featuredApps = [] } }, // 'device-list': deviceList } = data // console.log('video.payload', Object.keys(video.payload)) const coverBottomHtml = /* html */`