diff --git a/app/page.tsx b/app/page.tsx index 15a5b43a..5cd72fde 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -19,6 +19,7 @@ import { Newspaper, Mail, Users, + Mic, } from "lucide-react"; const allowRtf = process.env.ALLOW_RTF === "true"; @@ -141,6 +142,35 @@ export default function Home() { + {/* Transcriptions */} + + + +
+
+ +
+
+ + Transcriptions + + + Lectures & conversations + +
+ Coming Soon +
+
+ +

+ Transcriptions of Śrīla Prabhupāda's lectures, morning + walks, room conversations, and dialogues — the living voice of + the Founder-Ācārya preserved in text. +

+
+
+ + {/* Disciples */} diff --git a/app/transcriptions/page.tsx b/app/transcriptions/page.tsx new file mode 100644 index 00000000..fd285e71 --- /dev/null +++ b/app/transcriptions/page.tsx @@ -0,0 +1,58 @@ +import type { Metadata } from "next"; +import Link from "next/link"; +import { PageHeader } from "@/components/page-header"; +import { buildOgMeta } from "@/lib/og"; +import { Mic, Clock } from "lucide-react"; + +export function generateMetadata(): Metadata { + return buildOgMeta({ + title: "Transcriptions", + detail: "Lectures & conversations", + quote: + "Transcriptions of Śrīla Prabhupāda's lectures, morning walks, room conversations, and dialogues — the living voice of the Founder-Ācārya preserved in text.", + }); +} + +export default function TranscriptionsPage() { + return ( +
+ + + ← Home + +

+ Transcriptions +

+

+ Lectures & conversations of Śrīla Prabhupāda +

+
+ +
+
+
+ +
+ +

+ Coming Soon +

+ +

+ We are working on indexing thousands of transcriptions of Śrīla + Prabhupāda's lectures, morning walks, room conversations, and + dialogues into our database. This section will be available shortly. +

+ +
+ + Under active development +
+
+
+
+ ); +} diff --git a/lib/og.ts b/lib/og.ts index 80096a4a..25e3a65c 100644 --- a/lib/og.ts +++ b/lib/og.ts @@ -84,6 +84,8 @@ const CONTENT_TYPE_DESCRIPTIONS: Record = { "Back to Godhead — the magazine founded by Śrīla Prabhupāda in 1944 to present the timeless science of Kṛṣṇa consciousness.", "other-documents": "Writings and analyses by His Divine Grace A.C. Bhaktivedanta Swami Prabhupāda.", + transcriptions: + "Transcriptions of Śrīla Prabhupāda's lectures, morning walks, room conversations, and dialogues — the living voice of the Founder-Ācārya preserved in text.", }; function getFallbackQuote(title: string, code?: string): string { @@ -263,6 +265,24 @@ export function ogForOtherDocument(docTitle: string, chapterTitle?: string) { }); } +/** OG metadata for a transcription. */ +export function ogForTranscription(name: string, meta?: string) { + return buildOgMeta({ + title: name, + detail: meta || undefined, + quote: CONTENT_TYPE_DESCRIPTIONS.transcriptions, + }); +} + +/** OG metadata for the transcriptions index. */ +export function ogForTranscriptions() { + return buildOgMeta({ + title: "Transcriptions", + detail: "Lectures & conversations", + quote: CONTENT_TYPE_DESCRIPTIONS.transcriptions, + }); +} + /** OG metadata for the disciples directory. */ export function ogForDisciples() { return buildOgMeta({ diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 43a564c2..ad6c909a 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -324,3 +324,74 @@ model Disciple { @@index([tags]) @@map("disciples") } + +// --------------------------------------------------------------------------- +// ContentBlock — embedded document for rich text content within transcriptions +// +// text: the actual text content (may contain inline HTML for bold/italic) +// format: formatting hint — "paragraph" | "heading" | "quote" | "verse" | "note" +// alignment: text alignment — "left" | "center" | "right" (default: left) +// speaker: who is speaking this block (for dialogues — e.g., "Prabhupāda", "Devotee") +// --------------------------------------------------------------------------- +type ContentBlock { + text String + format String @default("paragraph") + alignment String @default("left") + speaker String? +} + +// --------------------------------------------------------------------------- +// Transcription — lectures and conversations of Śrīla Prabhupāda +// +// slug: URL-friendly unique identifier (e.g., "720911-lecture-los-angeles") +// name: display title (e.g., "Lecture on Bhagavad-gītā 2.13") +// type: "lecture" | "conversation" +// date: date of the transcription +// year: extracted year for filtering/grouping +// month: extracted month (1-12) for filtering +// day: extracted day for filtering +// place: location where it was delivered (e.g., "Los Angeles", "Vṛndāvana") +// context: additional context (e.g., "Morning Walk", "Room Conversation", "Arrival Address") +// reference: scripture reference if applicable (e.g., "BG 2.13", "SB 1.2.6") +// summary: brief description of the content (for OG images, search results) +// content: array of ContentBlock embedded documents (the actual transcription) +// tags: array of tags for categorization (e.g., ["science", "reincarnation", "guru"]) +// participants: array of named participants (e.g., ["Prabhupāda", "Bob Cohen", "Śyāmasundara"]) +// language: primary language of the transcription (default: "en") +// source: origin of the transcription (e.g., "Vedabase", "BBT Archives") +// durationMinutes: approximate duration in minutes (if known) +// isPublished: whether the transcription is ready for public display +// notes: internal editorial notes (not shown in UI) +// --------------------------------------------------------------------------- +model Transcription { + id String @id @default(auto()) @map("_id") @db.ObjectId + slug String @unique + name String + type String // "lecture" | "conversation" + date String? // date as written (e.g., "September 11, 1972") + year Int? + month Int? + day Int? + place String? + context String? + reference String? + summary String? + content ContentBlock[] + tags String[] + participants String[] + language String @default("en") + source String? + durationMinutes Int? + isPublished Boolean @default(false) + notes String? + + @@index([type]) + @@index([year]) + @@index([year, month]) + @@index([place]) + @@index([tags]) + @@index([reference]) + @@index([participants]) + @@index([isPublished]) + @@map("transcriptions") +}